- ⚙️ Small & Fast Bundler (Vite)
- 🗝️ Typed Programming (Typescript)
- 🧩 SSR & Page Transition (Nuxt3)
- 📚 Composition API & Setup (Vue3)
- 🕋 Simple Store (Pinia)
- 📙 Use Strict Codebase (ESLint)
- 📘 Use Strict Style (StyleLint)
- 🧵 Built-in Component & Layout
- 🚰 Handle Page to Middleware
- ✨ Setting Reset Style
- ⚡️ Setting Mixin Style
- 📍 Absolute Path
- 📱 Check Device
- 📫 Page SEO
- 🪄 Dark Mode
- Bundler : Vite
- SSR : Nuxt3
- Core : Vue3
- Store : Pinia
- assets - static resource
- components - atomic stateless components
- containers - stateful components
- pages - page components(SEO)
- public - default public
- plugins - plugins
- interface - interfaces
- layouts - layouts
- server - ssr
- store - store
- styles - style set
- utils - hooks, helper, handler
npx nuxt3-starter my-project
cd my-project
npm run dev
npm run build
<template>
<h1>{{ title }}</h1>
</template>
<script setup lang="ts">
// use function
const function = () => {console.log('Hello World!')}
// use props
const props = defineProps({title})
</script>
<script setup lang="ts">
import { storeToRefs } from 'pinia';
import useDataStore from '@store/useDataStore';
// use store
const store = useDataStore();
// use store state
const { data } = storeToRefs(store);
// use store function
store.getData()
</script>
.app {
// flex set(justify-content, align-items, flex-direction)
@include flexSet('center', 'center', 'row')
// box set(width, height, border-radius)
@include boxSet(00px, 00px, 00px)
// color set(color, background-color)
@include colorSet($white, $black)
// background set(url, object-fit)
@include backgroundSet('url', 00px)
// font set(font-size, font-weight, line-height)
@include fontSet(00px, 000, 00px);
// ellipsis set(line, line-height)
@include ellipsisSet(0, 00px)
// shadow set(length, length, blur, color, opacity)
@include shadowSet(0, 0, 0, $white, 0.1)
}