UNPKG

next13-starter

Version:

Start a Next13 Zustand TypeScript project in few second!

94 lines (70 loc) โ€ข 2.31 kB
# Ryan's Next13 Awesome Starter ![Author](https://img.shields.io/badge/Author-ryan-orange.svg) ![License](https://img.shields.io/badge/License-MIT-blue.svg) ![Last Commit](https://img.shields.io/github/last-commit/ryan-ahn/npm-next13-starter) ## Features - [x] โš™๏ธ&nbsp;&nbsp;Small & Fast Bundler (Turbo) - [x] ๐Ÿ—๏ธ&nbsp;&nbsp;Typed Programming (Typescript) - [x] ๐Ÿงฉ&nbsp;&nbsp;SSR & Page Transition (Next13) - [x] ๐Ÿ•‹&nbsp;&nbsp;Simple Store (Zustand) - [x] ๐Ÿ“™&nbsp;&nbsp;Code Formatter (ESLint Airbnb & Prettier) - [x] ๐Ÿงต&nbsp;&nbsp;Built-in Component & Layout - [x] ๐Ÿšฐ&nbsp;&nbsp;Handle Page to Middleware - [x] โœจ&nbsp;&nbsp;Setting Reset Style - [x] โšก๏ธ&nbsp;&nbsp;Setting Mixin Style - [x] ๐Ÿ“&nbsp;&nbsp;Absolute Path - [x] ๐Ÿ“ซ&nbsp;&nbsp;Page SEO - [ ] ๐Ÿช„&nbsp;&nbsp;Dark Mode - [ ] ๐Ÿ“ฑ&nbsp;&nbsp;Check Device ## Frameworks - **Bundler** : Turbo - **SSR** : Next13 - **Core** : React18 - **Store** : Zustand ## Code Structure - **Static(public)** - **Root(app)** <br/> - โŽฃ&nbsp;**components** - atomic stateless components <br/> - โŽฃ&nbsp;**config** - configure <br/> - โŽฃ&nbsp;**constants** - static data <br/> - โŽฃ&nbsp;**containers** - stateful components <br/> - โŽฃ&nbsp;**interface** - interfaces <br/> - โŽฃ&nbsp;**libs** - store, hooks, utils <br/> - โŽฃ&nbsp;**styles** - style set<br/> ## Getting Started ### 1) Installation ```shell npx next13-starter my-project cd my-project ``` ### 2) Run Project ```shell npm run dev ``` ### 3) Run Deploy ```shell npm run build ``` ## Using with Store ```javascript // user store import { useDataStore } from '@store/index'; const { data, setData } = useStore(); ``` ## Using with Mixin ```javascript // use mixin import { flexSet, boxSet, colorSet, backgroundSet, fontSet } from '@styles/mixin'; const Style = styled.div` // flex set(justify-content, align-items, flex-direction) ${() => theme.flexSet('center', 'center', 'column')}; // box set(width, height, border-radius) ${() => theme.boxSet('00px', '00px', '00px')}; // color set(color, background-color) ${() => theme.colorSet('white', 'black')}; // background set(url, object-fit) ${() => theme.backgroundSet('URL','contain')}; // font set(font-size, font-weight, line-height) ${() => theme.fontSet(00, 000, 00)}; ` ```