# nuxt3-awesome-starter3 **Repository Path**: xiaolinlu/nuxt3-awesome-starter3 ## Basic Information - **Project Name**: nuxt3-awesome-starter3 - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: add-unit-testing - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-12 - **Last Updated**: 2025-04-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Nuxt 3 Awesome Starter a Nuxt 3 starter template or boilerplate with a lot of useful features. and integrated with TailwindCSS 3. > **WARNING** \ > Nuxt 3 is still in beta and is not recommended for production use. ## Features - [x] 💨 [Tailwind CSS v3](https://tailwindcss.com/) - [x] ✨ [Headless UI](https://headlessui.dev/) - [x] 🔔 [Icon Pack Component (unplugin-icons)](https://icones.js.org/) - [x] 🛹 [State & Store Management (Pinia)](https://pinia.vuejs.org/) - [x] 🚩 [Localization (i18n) by @intlify](https://github.com/intlify/nuxt3) - [x] 🌙 Switch Theme (light, dark, system, realtime) - [x] 🇮🇩 Language Switcher - [x] 🪝 Built-in Component & Layout - [x] Eslint & Prettier - [x] Husky & Commitlint - [ ] Http Request (axios ?) . | . :-------------------------:|:-------------------------: ![Preview](https://github.com/viandwi24/nuxt3-awesome-starter/blob/main/assets/images/preview.png?raw=true) | ![Preview On Mobile](https://github.com/viandwi24/nuxt3-awesome-starter/blob/main/assets/images/preview_mobile.png?raw=true) ## Demo [Demo](https://nuxt3-awesome-starter.vercel.app/) ## Table of Contents - [Nuxt 3 Awesome Starter](#nuxt-3-awesome-starter) * [Built-in Components](#built-in-components) * [Quick Start](#quick-start) * [Notes](#notes) + [Styles](#styles) + [Theme (Dark Mode)](#theme--dark-mode-) + [Localization](#localization) + [Icons](#icons) + [Precommit and Postmerge](#precommit-and-postmerge) * [License](#license) ## Built-in Components - [x] Footer - [x] Button - [x] Anchor (link) - [x] Navbar - [x] Navbar Builder - [x] Drawer (on mobile) - [x] Options (on mobile) - [x] Action Sheet - [x] Theme Toggle / Switcher - [x] Page Layout - [x] Wrapper - [x] Header - [x] Title - [x] Body - [x] Section - [x] Section Wrapper - [x] Section Title - [x] Dashboard Layout - [x] Sidebar - [ ] Modal - [ ] Alert ## Quick Start * Clone this project to your computer `git clone https://github.com/viandwi24/nuxt3-awesome-starter` * Install dependencies `npm install` * Run `npm run dev` to start development server and open `http://localhost:3000` in your browser * Run `npm run build` to build project and `npm run start` to start production server Checkout the [deployment documentation](https://v3.nuxtjs.org/docs/deployment). ## Notes ### Styles Tailwindcss import in : ``` /path/to/assets/sass/vendor.scss ``` and you can add custom styles in : ``` /path/to/assets/sass/app.scss ``` ### Theme (Dark Mode) ThemeManager is a plugin that allows you to switch between themes. this lib in : ``` /path/to/utils/theme.ts ``` `Thememanager` is a function-class construct when app.vue before mounted. theme construct inside `AppSetup()` in `/path/to/app.vue` : ```vue ``` To change theme, you can direct set theme from state `theme.setting`, example : ```vue ``` When you change state `theme.setting`, it will automatically change theme. Theme Setting have 4 options : - `light` - `dark` - `system` (operating system theme) - `realtime` (realtime theme, if 05:00 - 17:00, it will change to light theme, otherwise dark) We have state `theme.current`, this state return `light` or `dark` theme. basically it's process from `theme.setting`. dont change theme with this state. ### Localization Localization is a plugin that allows you to switch between languages. this lib in : ``` /path/to/utils/lang.ts ``` `LanguageManager` is a function-class construct when app.vue before mounted. this lib depend on [@intlify/nuxt3](https://github.com/intlify/nuxt3) lang construct inside `AppSetup()` in `/path/to/app.vue` : To change language, you can direct set language from state `lang.setting`, example : ```vue ``` When you change state `locale.setting`, it will automatically change language. ### Icons This project using unplugin-icons for auto generate and import icon as component. You can see collection icon list in : [https://icones.js.org/](https://icones.js.org/) you can use `` or ``. in this project, configuration prefix as a "icon", you can see in `nuxt.config.ts` : ```js export default defineNuxtConfig({ ... vite: { plugins: [ UnpluginComponentsVite({ dts: true, resolvers: [ IconsResolver({ prefix: 'Icon', }), ], }), ], }, ... }) ``` Example : ```vue // use icon from collection "Simple Icons" and name icon is "nuxtdotjs" // use icon from collection "Unicons" and name icon is "sun" ``` ### Precommit and Postmerge This project using husky and commitlint for precommit and postmerge. when you commit, it will check your commit message and running "yarn lint-staged" to check your staged files. configuration in : `/path/to/.husky/pre-commit` and `/path/to/commitlint.config.js` And when Postmerge, it will run "yarn" to automatically install new dependencies. configuration in `/path/to/.husky/post-merge` ## License This project is licensed under the MIT license, Copyright (c) 2022 Alfian Dwi Nugraha. For more information see the [LICENSE](LICENSE.md) file.