create-nuxt-base 0.3.16 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/.github/workflows/publish.yml +4 -2
  2. package/.oxfmtrc.jsonc +7 -0
  3. package/CHANGELOG.md +22 -8
  4. package/nuxt-base-template/.dockerignore +44 -0
  5. package/nuxt-base-template/.env.example +1 -1
  6. package/nuxt-base-template/.nuxtrc +1 -0
  7. package/nuxt-base-template/.oxfmtrc.jsonc +8 -0
  8. package/nuxt-base-template/Dockerfile.dev +23 -0
  9. package/nuxt-base-template/README.md +127 -13
  10. package/nuxt-base-template/app/app.config.ts +67 -0
  11. package/nuxt-base-template/app/app.vue +10 -2
  12. package/nuxt-base-template/app/assets/css/tailwind.css +124 -84
  13. package/nuxt-base-template/app/components/Modal/ModalBackupCodes.vue +117 -0
  14. package/nuxt-base-template/app/components/Modal/ModalBase.vue +65 -0
  15. package/nuxt-base-template/app/components/Transition/TransitionSlide.vue +0 -2
  16. package/nuxt-base-template/app/components/Transition/TransitionSlideBottom.vue +0 -2
  17. package/nuxt-base-template/app/components/Transition/TransitionSlideRevert.vue +0 -2
  18. package/nuxt-base-template/app/components/Upload/TusFileUpload.vue +302 -0
  19. package/nuxt-base-template/app/composables/use-better-auth.ts +25 -0
  20. package/nuxt-base-template/app/composables/use-file.ts +57 -6
  21. package/nuxt-base-template/app/composables/use-share.ts +26 -10
  22. package/nuxt-base-template/app/composables/use-tus-upload.ts +278 -0
  23. package/nuxt-base-template/app/error.vue +7 -43
  24. package/nuxt-base-template/app/interfaces/upload.interface.ts +58 -0
  25. package/nuxt-base-template/app/interfaces/user.interface.ts +12 -0
  26. package/nuxt-base-template/app/layouts/default.vue +76 -4
  27. package/nuxt-base-template/app/layouts/slim.vue +5 -0
  28. package/nuxt-base-template/app/lib/auth-client.ts +135 -0
  29. package/nuxt-base-template/app/middleware/admin.global.ts +20 -6
  30. package/nuxt-base-template/app/middleware/auth.global.ts +15 -6
  31. package/nuxt-base-template/app/middleware/guest.global.ts +18 -0
  32. package/nuxt-base-template/app/pages/app/settings/security.vue +409 -0
  33. package/nuxt-base-template/app/pages/auth/2fa.vue +120 -0
  34. package/nuxt-base-template/app/pages/auth/forgot-password.vue +115 -0
  35. package/nuxt-base-template/app/pages/auth/login.vue +135 -0
  36. package/nuxt-base-template/app/pages/auth/register.vue +184 -0
  37. package/nuxt-base-template/app/pages/auth/reset-password.vue +153 -0
  38. package/nuxt-base-template/app/pages/index.vue +139 -2
  39. package/nuxt-base-template/app/utils/crypto.ts +13 -0
  40. package/nuxt-base-template/docker-entrypoint.sh +21 -0
  41. package/nuxt-base-template/docs/nuxt.config.ts +4 -0
  42. package/nuxt-base-template/docs/pages/docs.vue +663 -0
  43. package/nuxt-base-template/nuxt.config.ts +75 -30
  44. package/nuxt-base-template/openapi-ts.config.ts +18 -0
  45. package/nuxt-base-template/oxlint.json +14 -0
  46. package/nuxt-base-template/package-lock.json +11414 -15883
  47. package/nuxt-base-template/package.json +48 -50
  48. package/nuxt-base-template/tests/iam.spec.ts +247 -0
  49. package/nuxt-base-template/tsconfig.json +1 -1
  50. package/package.json +15 -12
  51. package/.eslintignore +0 -14
  52. package/.eslintrc +0 -3
  53. package/.prettierignore +0 -5
  54. package/.prettierrc +0 -6
  55. package/nuxt-base-template/app/composables/use-context-menu.ts +0 -19
  56. package/nuxt-base-template/app/composables/use-form-helper.ts +0 -41
  57. package/nuxt-base-template/app/composables/use-modal.ts +0 -84
  58. package/nuxt-base-template/app/composables/use-notification.ts +0 -29
  59. package/nuxt-base-template/app/middleware/logged-in.global.ts +0 -9
  60. package/nuxt-base-template/app/plugins/auth.server.ts +0 -72
  61. package/nuxt-base-template/app/plugins/form.plugin.ts +0 -21
  62. package/nuxt-base-template/app/plugins/pwa.plugin.ts +0 -114
  63. package/nuxt-base-template/eslint.config.mjs +0 -3
  64. package/nuxt-base-template/tailwind.config.js +0 -21
@@ -8,6 +8,10 @@ on:
8
8
  env:
9
9
  SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
10
10
 
11
+ permissions:
12
+ id-token: write # Required for OIDC
13
+ contents: read
14
+
11
15
  jobs:
12
16
  publish:
13
17
  runs-on: ubuntu-latest
@@ -26,8 +30,6 @@ jobs:
26
30
 
27
31
  - name: Publish to npm 🚀
28
32
  run: npm publish
29
- env:
30
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
31
33
 
32
34
  - name: Deploy notification
33
35
  if: always()
package/.oxfmtrc.jsonc ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "$schema": "./node_modules/oxfmt/configuration_schema.json",
3
+ "arrowParens": "always",
4
+ "printWidth": 180,
5
+ "semi": true,
6
+ "singleQuote": true,
7
+ }
package/CHANGELOG.md CHANGED
@@ -2,33 +2,47 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
- ### [0.3.16](https://github.com/lenneTech/nuxt-base-starter/compare/v0.3.15...v0.3.16) (2025-09-05)
5
+ ### [1.0.2](https://github.com/lenneTech/nuxt-base-starter/compare/v1.0.1...v1.0.2) (2026-01-12)
6
6
 
7
7
 
8
8
  ### Bug Fixes
9
9
 
10
- * Update environment variable for bug feature toggle ([d875b3e](https://github.com/lenneTech/nuxt-base-starter/commit/d875b3eb586368499b9e628cdabd2f971e7cce7f))
10
+ * add repository field in package.json ([1f43eae](https://github.com/lenneTech/nuxt-base-starter/commit/1f43eae4445b2f8a54cf4442c79be1bd55cf711c))
11
11
 
12
- ### [0.3.15](https://github.com/lenneTech/nuxt-base-starter/compare/v0.3.14...v0.3.15) (2025-09-05)
12
+ ### [1.0.1](https://github.com/lenneTech/nuxt-base-starter/compare/v1.0.0...v1.0.1) (2026-01-12)
13
+
14
+ ## [1.0.0](https://github.com/lenneTech/nuxt-base-starter/compare/v0.3.17...v1.0.0) (2026-01-12)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * **DEV-609:** removed duplicate public folder inside app ([#10](https://github.com/lenneTech/nuxt-base-starter/issues/10)) ([25fe0fe](https://github.com/lenneTech/nuxt-base-starter/commit/25fe0fe3c53bc3400373d9c3f0a4b6705952171b))
20
+
21
+ ### [0.3.17](https://github.com/lenneTech/nuxt-base-starter/compare/v0.3.16...v0.3.17) (2025-10-17)
13
22
 
23
+ ### [0.3.16](https://github.com/lenneTech/nuxt-base-starter/compare/v0.3.15...v0.3.16) (2025-09-05)
24
+
25
+ ### Bug Fixes
26
+
27
+ - Update environment variable for bug feature toggle ([d875b3e](https://github.com/lenneTech/nuxt-base-starter/commit/d875b3eb586368499b9e628cdabd2f971e7cce7f))
28
+
29
+ ### [0.3.15](https://github.com/lenneTech/nuxt-base-starter/compare/v0.3.14...v0.3.15) (2025-09-05)
14
30
 
15
31
  ### Features
16
32
 
17
- * Add Linear API configuration and update dependencies ([291adfd](https://github.com/lenneTech/nuxt-base-starter/commit/291adfd8ee6e2c464c4b7c74e4c27531bda3892e))
33
+ - Add Linear API configuration and update dependencies ([291adfd](https://github.com/lenneTech/nuxt-base-starter/commit/291adfd8ee6e2c464c4b7c74e4c27531bda3892e))
18
34
 
19
35
  ### [0.3.14](https://github.com/lenneTech/nuxt-base-starter/compare/v0.3.13...v0.3.14) (2025-08-01)
20
36
 
21
-
22
37
  ### Bug Fixes
23
38
 
24
- * **DEV-446:** Replace pnpm with npm for dependency installation and project commands ([8274c25](https://github.com/lenneTech/nuxt-base-starter/commit/8274c255384b841862d2d70a12c19ea30ecbb9d8))
39
+ - **DEV-446:** Replace pnpm with npm for dependency installation and project commands ([8274c25](https://github.com/lenneTech/nuxt-base-starter/commit/8274c255384b841862d2d70a12c19ea30ecbb9d8))
25
40
 
26
41
  ### [0.3.13](https://github.com/lenneTech/nuxt-base-starter/compare/v0.3.12...v0.3.13) (2025-07-24)
27
42
 
28
-
29
43
  ### Bug Fixes
30
44
 
31
- * Update [@lenne](https://github.com/lenne).tech/nuxt-base dependency to latest version ([71dd666](https://github.com/lenneTech/nuxt-base-starter/commit/71dd6669fd9ec25671a102b4d2ad294ac88daa10))
45
+ - Update [@lenne](https://github.com/lenne).tech/nuxt-base dependency to latest version ([71dd666](https://github.com/lenneTech/nuxt-base-starter/commit/71dd6669fd9ec25671a102b4d2ad294ac88daa10))
32
46
 
33
47
  ### [0.3.12](https://github.com/lenneTech/nuxt-base-starter/compare/v0.3.11...v0.3.12) (2025-07-24)
34
48
 
@@ -0,0 +1,44 @@
1
+ # Dependencies
2
+ node_modules
3
+ .npm
4
+
5
+ # Build output
6
+ .nuxt
7
+ .output
8
+ dist
9
+
10
+ # IDE
11
+ .idea
12
+ .vscode
13
+ *.swp
14
+ *.swo
15
+
16
+ # Logs
17
+ *.log
18
+ npm-debug.log*
19
+
20
+ # Testing
21
+ coverage
22
+ test-results
23
+ playwright-report
24
+
25
+ # Environment
26
+ .env.local
27
+ .env.*.local
28
+
29
+ # Git
30
+ .git
31
+ .gitignore
32
+
33
+ # Docker
34
+ Dockerfile*
35
+ docker-compose*
36
+ .dockerignore
37
+
38
+ # Documentation
39
+ *.md
40
+ !README.md
41
+
42
+ # Misc
43
+ .DS_Store
44
+ *.tgz
@@ -9,4 +9,4 @@ GENERATE_TYPES=0
9
9
 
10
10
  LINEAR_API_KEY=
11
11
  LINEAR_TEAM_NAME=
12
- LINEAR_PROJECT_NAME=
12
+ LINEAR_PROJECT_NAME=
@@ -0,0 +1 @@
1
+ setups.@nuxt/test-utils="3.23.0"
@@ -0,0 +1,8 @@
1
+ {
2
+ "$schema": "./node_modules/oxfmt/configuration_schema.json",
3
+ "arrowParens": "always",
4
+ "printWidth": 180,
5
+ "semi": true,
6
+ "singleQuote": true,
7
+ "ignorePatterns": [".nuxt", ".output", "node_modules", "dist"],
8
+ }
@@ -0,0 +1,23 @@
1
+ FROM node:22-alpine
2
+
3
+ WORKDIR /app
4
+
5
+ # Install dependencies for native modules
6
+ RUN apk add --no-cache python3 make g++
7
+
8
+ # Copy package files first for better caching
9
+ COPY package*.json ./
10
+ COPY .npmrc ./
11
+
12
+ # Install dependencies
13
+ RUN npm ci
14
+
15
+ # Copy entrypoint script
16
+ COPY docker-entrypoint.sh /docker-entrypoint.sh
17
+ RUN chmod +x /docker-entrypoint.sh
18
+
19
+ # Expose port
20
+ EXPOSE 3001
21
+
22
+ ENTRYPOINT ["/docker-entrypoint.sh"]
23
+ CMD ["npm", "run", "dev", "--", "--host", "0.0.0.0"]
@@ -1,25 +1,33 @@
1
- # Nuxt 3 Minimal Starter
1
+ # Nuxt Base Template
2
2
 
3
- Look at the [Nuxt 3 documentation](https://nuxt.com/docs/getting-started/introduction) to learn more.
3
+ A modern Nuxt 4 SSR starter template with TypeScript, Tailwind CSS v4, and NuxtUI.
4
+
5
+ ## Requirements
6
+
7
+ - Node.js >= 22
8
+ - npm >= 10
4
9
 
5
10
  ## Setup
6
11
 
7
- Make sure to install the dependencies:
12
+ Install dependencies:
8
13
 
9
14
  ```bash
10
- # yarn
11
- yarn install
12
-
13
- # npm
14
15
  npm install
16
+ # or
17
+ npm run init
18
+ ```
19
+
20
+ Copy environment variables:
15
21
 
16
- # pnpm
17
- pnpm install
22
+ ```bash
23
+ cp .env.example .env
18
24
  ```
19
25
 
20
- ## Development Server
26
+ Configure your `.env` file with the required values (see Environment Variables section below).
21
27
 
22
- Start the development server on http://localhost:3000
28
+ ## Development
29
+
30
+ Start the development server on http://localhost:3001
23
31
 
24
32
  ```bash
25
33
  npm run dev
@@ -33,10 +41,116 @@ Build the application for production:
33
41
  npm run build
34
42
  ```
35
43
 
36
- Locally preview production build:
44
+ Preview production build locally:
37
45
 
38
46
  ```bash
39
47
  npm run preview
40
48
  ```
41
49
 
42
- Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.
50
+ Build for specific environments:
51
+
52
+ ```bash
53
+ npm run build:develop # Development environment
54
+ npm run build:test # Test environment
55
+ npm run build:prod # Production environment
56
+ ```
57
+
58
+ ## Code Quality
59
+
60
+ Run linting and formatting checks before committing:
61
+
62
+ ```bash
63
+ npm run check # Run lint + format check
64
+ npm run fix # Auto-fix lint + format issues
65
+ npm run lint # ESLint only
66
+ npm run format # Prettier format only
67
+ ```
68
+
69
+ ## Testing
70
+
71
+ Run E2E tests with Playwright:
72
+
73
+ ```bash
74
+ npm run test
75
+ ```
76
+
77
+ ## API Integration
78
+
79
+ Generate TypeScript types from OpenAPI schema:
80
+
81
+ ```bash
82
+ npm run generate-types
83
+ ```
84
+
85
+ ## Tech Stack
86
+
87
+ - **Framework:** Nuxt 4.1.3 (Vue 3 Composition API)
88
+ - **Language:** TypeScript 5.9.3
89
+ - **Styling:** Tailwind CSS 4.1.14
90
+ - **UI Library:** NuxtUI 4.0.1
91
+ - **State Management:** Pinia
92
+ - **Testing:** Playwright
93
+ - **API Client:** @hey-api/client-fetch
94
+ - **Form Validation:** Valibot
95
+
96
+ ## Key Features
97
+
98
+ - ✅ Full TypeScript support with strict typing
99
+ - ✅ NuxtUI component library with semantic colors
100
+ - ✅ Dark/light mode support
101
+ - ✅ SEO optimization (sitemap, robots.txt, OG images)
102
+ - ✅ Auto-generated API client from OpenAPI schema
103
+ - ✅ E2E testing with Playwright
104
+ - ✅ ESLint + Prettier configuration
105
+ - ✅ Plausible Analytics integration
106
+ - ✅ Image optimization with NuxtImage
107
+ - ✅ Bug reporting to Linear (dev only)
108
+
109
+ ## Environment Variables
110
+
111
+ Create a `.env` file with the following variables:
112
+
113
+ ```env
114
+ SITE_URL=http://localhost:3001
115
+ API_URL=http://localhost:3000
116
+ APP_ENV=development
117
+ NODE_ENV=development
118
+ ```
119
+
120
+ Optional variables:
121
+
122
+ ```env
123
+ WEB_PUSH_KEY= # Web push notifications
124
+ LINEAR_API_KEY= # Bug reporting
125
+ LINEAR_TEAM_NAME= # Bug reporting
126
+ LINEAR_PROJECT_NAME= # Bug reporting
127
+ API_SCHEMA=../api/schema.gql # API schema path
128
+ STORAGE_PREFIX=base-dev # Local storage prefix
129
+ ```
130
+
131
+ ## Project Structure
132
+
133
+ ```
134
+ app/
135
+ ├── assets/ # Tailwind CSS configuration
136
+ ├── components/ # Vue components (auto-imported)
137
+ ├── composables/ # Composables (auto-imported)
138
+ ├── interfaces/ # TypeScript interfaces (auto-imported)
139
+ ├── layouts/ # Nuxt layouts
140
+ ├── pages/ # File-based routing
141
+ └── app.config.ts # NuxtUI configuration
142
+
143
+ docs/ # Dev-only documentation layer
144
+ tests/ # Playwright E2E tests
145
+ ```
146
+
147
+ ## Development Guidelines
148
+
149
+ For detailed coding standards and architecture information, see [CLAUDE.md](./CLAUDE.md).
150
+
151
+ ## Documentation
152
+
153
+ - [Nuxt Documentation](https://nuxt.com/docs)
154
+ - [NuxtUI Documentation](https://ui.nuxt.com)
155
+ - [Tailwind CSS Documentation](https://tailwindcss.com/docs)
156
+ - [Vue 3 Documentation](https://vuejs.org)
@@ -0,0 +1,67 @@
1
+ export default defineAppConfig({
2
+ // ============================================================================
3
+ // Toast Notifications
4
+ // ============================================================================
5
+ toaster: {
6
+ duration: 5000,
7
+ expand: false,
8
+ position: 'bottom-right' as const,
9
+ },
10
+
11
+ // ============================================================================
12
+ // NuxtUI Configuration
13
+ // ============================================================================
14
+ ui: {
15
+ // Base component modifications
16
+ button: {
17
+ slots: {
18
+ base: 'cursor-pointer',
19
+ },
20
+ },
21
+ checkbox: {
22
+ slots: {
23
+ base: 'cursor-pointer',
24
+ },
25
+ },
26
+
27
+ // Semantic color palette (must match tailwind.css)
28
+ colors: {
29
+ error: 'error',
30
+ info: 'info',
31
+ neutral: 'neutral',
32
+ primary: 'primary',
33
+ secondary: 'secondary',
34
+ success: 'success',
35
+ warning: 'warning',
36
+ },
37
+
38
+ // Form field styling
39
+ formField: {
40
+ slots: {
41
+ description: 'text-sm text-neutral-400 dark:text-neutral-500',
42
+ },
43
+ },
44
+
45
+ // Dark/Light mode icons
46
+ icons: {
47
+ dark: 'i-lucide-moon',
48
+ light: 'i-lucide-sun-medium',
49
+ },
50
+
51
+ // Modal defaults
52
+ modal: {
53
+ slots: {
54
+ content: 'w-full max-w-2xl',
55
+ footer: 'flex justify-end gap-3 px-4 py-3',
56
+ },
57
+ },
58
+
59
+ // Toast notifications
60
+ toast: {
61
+ root: 'pointer-events-auto',
62
+ slots: {
63
+ close: 'text-neutral-900 dark:text-white',
64
+ },
65
+ },
66
+ },
67
+ });
@@ -1,7 +1,15 @@
1
+ <script setup lang="ts">
2
+ // ============================================================================
3
+ // Composables
4
+ // ============================================================================
5
+ const appConfig: ReturnType<typeof useAppConfig> = useAppConfig();
6
+ </script>
7
+
1
8
  <template>
2
- <div>
9
+ <UApp :toaster="appConfig.toaster">
10
+ <NuxtLoadingIndicator color="var(--ui-primary)" :height="2" />
3
11
  <NuxtLayout>
4
12
  <NuxtPage />
5
13
  </NuxtLayout>
6
- </div>
14
+ </UApp>
7
15
  </template>
@@ -1,98 +1,138 @@
1
1
  @import 'tailwindcss';
2
+ @import '@nuxt/ui';
2
3
 
3
- @config "../../../tailwind.config.js";
4
-
5
- @plugin '@tailwindcss/typography';
6
- @plugin '@tailwindcss/forms';
4
+ @plugin "@tailwindcss/typography";
7
5
 
8
6
  @custom-variant dark (&:is(.dark *));
7
+ @custom-variant light (&:is(.light *));
9
8
 
10
- @theme {
11
- --color-primary-50: #f3faf7;
12
- --color-primary-100: #d6f1e7;
13
- --color-primary-200: #ade2d0;
14
- --color-primary-300: #7cccb3;
15
- --color-primary-400: #57b39a;
16
- --color-primary-500: #37957d;
17
- --color-primary-600: #2a7765;
18
- --color-primary-700: #256052;
19
- --color-primary-800: #224d45;
20
- --color-primary-900: #20413a;
21
- --color-primary-950: #0d2621;
22
- --color-primary: #57b39a;
23
-
24
- --color-background: #ffffff;
25
- --color-foreground: #000000;
26
- --color-border: hsl(0 0% 0% / 0.5);
27
- --color-hover: hsl(0 0% 100% / 0.2);
28
- --color-active: hsl(0 0% 100% / 0.2);
29
-
9
+ @theme static {
30
10
  --breakpoint-3xl: 2400px;
31
11
 
32
- --button-radius: 24px;
33
- --button-padding-y: 3px;
34
- --button-padding-x: 16px;
35
- }
12
+ /* ============================================================================
13
+ NuxtUI Color Scales - Customize for your brand
14
+ Each semantic color requires a scale from 50 to 950
15
+ ========================================================================= */
36
16
 
37
- /*
38
- The default border color has changed to `currentColor` in Tailwind CSS v4,
39
- so we've added these compatibility styles to make sure everything still
40
- looks the same as it did with Tailwind CSS v3.
41
-
42
- If we ever want to remove these styles, we need to add an explicit border
43
- color utility to any element that depends on these defaults.
44
- */
45
- @layer base {
46
- *,
47
- ::after,
48
- ::before,
49
- ::backdrop,
50
- ::file-selector-button {
51
- border-color: var(--color-gray-200, currentColor);
52
- }
53
- }
17
+ /* Primary Color - Green (NuxtUI Default) */
18
+ --ui-color-primary-50: #f0fdf4;
19
+ --ui-color-primary-100: #dcfce7;
20
+ --ui-color-primary-200: #bbf7d0;
21
+ --ui-color-primary-300: #86efac;
22
+ --ui-color-primary-400: #4ade80;
23
+ --ui-color-primary-500: #22c55e;
24
+ --ui-color-primary-600: #16a34a;
25
+ --ui-color-primary-700: #15803d;
26
+ --ui-color-primary-800: #166534;
27
+ --ui-color-primary-900: #14532d;
28
+ --ui-color-primary-950: #052e16;
29
+
30
+ /* Secondary Color - Indigo */
31
+ --ui-color-secondary-50: #eef2ff;
32
+ --ui-color-secondary-100: #e0e7ff;
33
+ --ui-color-secondary-200: #c7d2fe;
34
+ --ui-color-secondary-300: #a5b4fc;
35
+ --ui-color-secondary-400: #818cf8;
36
+ --ui-color-secondary-500: #6366f1;
37
+ --ui-color-secondary-600: #4f46e5;
38
+ --ui-color-secondary-700: #4338ca;
39
+ --ui-color-secondary-800: #3730a3;
40
+ --ui-color-secondary-900: #312e81;
41
+ --ui-color-secondary-950: #1e1b4b;
42
+
43
+ /* Success Color - Emerald */
44
+ --ui-color-success-50: #ecfdf5;
45
+ --ui-color-success-100: #d1fae5;
46
+ --ui-color-success-200: #a7f3d0;
47
+ --ui-color-success-300: #6ee7b7;
48
+ --ui-color-success-400: #34d399;
49
+ --ui-color-success-500: #10b981;
50
+ --ui-color-success-600: #059669;
51
+ --ui-color-success-700: #047857;
52
+ --ui-color-success-800: #065f46;
53
+ --ui-color-success-900: #064e3b;
54
+ --ui-color-success-950: #022c22;
55
+
56
+ /* Info Color - Blue */
57
+ --ui-color-info-50: #eff6ff;
58
+ --ui-color-info-100: #dbeafe;
59
+ --ui-color-info-200: #bfdbfe;
60
+ --ui-color-info-300: #93c5fd;
61
+ --ui-color-info-400: #60a5fa;
62
+ --ui-color-info-500: #3b82f6;
63
+ --ui-color-info-600: #2563eb;
64
+ --ui-color-info-700: #1d4ed8;
65
+ --ui-color-info-800: #1e40af;
66
+ --ui-color-info-900: #1e3a8a;
67
+ --ui-color-info-950: #172554;
68
+
69
+ /* Warning Color - Amber */
70
+ --ui-color-warning-50: #fffbeb;
71
+ --ui-color-warning-100: #fef3c7;
72
+ --ui-color-warning-200: #fde68a;
73
+ --ui-color-warning-300: #fcd34d;
74
+ --ui-color-warning-400: #fbbf24;
75
+ --ui-color-warning-500: #f59e0b;
76
+ --ui-color-warning-600: #d97706;
77
+ --ui-color-warning-700: #b45309;
78
+ --ui-color-warning-800: #92400e;
79
+ --ui-color-warning-900: #78350f;
80
+ --ui-color-warning-950: #451a03;
81
+
82
+ /* Error Color - Red */
83
+ --ui-color-error-50: #fef2f2;
84
+ --ui-color-error-100: #fee2e2;
85
+ --ui-color-error-200: #fecaca;
86
+ --ui-color-error-300: #fca5a5;
87
+ --ui-color-error-400: #f87171;
88
+ --ui-color-error-500: #ef4444;
89
+ --ui-color-error-600: #dc2626;
90
+ --ui-color-error-700: #b91c1c;
91
+ --ui-color-error-800: #991b1b;
92
+ --ui-color-error-900: #7f1d1d;
93
+ --ui-color-error-950: #450a0a;
94
+
95
+ /* Neutral Color - Slate */
96
+ --ui-color-neutral-50: #f8fafc;
97
+ --ui-color-neutral-100: #f1f5f9;
98
+ --ui-color-neutral-200: #e2e8f0;
99
+ --ui-color-neutral-300: #cbd5e1;
100
+ --ui-color-neutral-400: #94a3b8;
101
+ --ui-color-neutral-500: #64748b;
102
+ --ui-color-neutral-600: #475569;
103
+ --ui-color-neutral-700: #334155;
104
+ --ui-color-neutral-800: #1e293b;
105
+ --ui-color-neutral-900: #0f172a;
106
+ --ui-color-neutral-950: #020617;
107
+
108
+ /* ============================================================================
109
+ NuxtUI Semantic Shortcuts
110
+ ========================================================================= */
111
+
112
+ --ui-primary: var(--ui-color-primary-500);
113
+ --ui-secondary: var(--ui-color-secondary-500);
114
+ --ui-success: var(--ui-color-success-500);
115
+ --ui-info: var(--ui-color-info-500);
116
+ --ui-warning: var(--ui-color-warning-500);
117
+ --ui-error: var(--ui-color-error-500);
118
+
119
+ /* ============================================================================
120
+ NuxtUI Global Settings
121
+ ========================================================================= */
54
122
 
55
- @layer base {
56
- body {
57
- @apply transition-colors duration-300;
58
- }
59
- h1 {
60
- @apply text-[32px] leading-[140%] lg:text-[66px] lg:leading-[140%] font-bold;
61
- }
62
- h2 {
63
- @apply text-[28px] leading-[140%] lg:text-[51px] lg:leading-[140%] font-semibold;
64
- }
65
- h3 {
66
- @apply text-[21px] leading-[140%] lg:text-[39px] lg:leading-[140%] font-bold;
67
- }
68
- h4 {
69
- @apply text-[18px] leading-[140%] lg:text-[30px] lg:leading-[140%] font-bold;
70
- }
71
- h5 {
72
- @apply text-[15px] leading-[140%] lg:text-[23px] lg:leading-[140%] font-bold;
73
- }
74
- h6 {
75
- @apply text-[16px] leading-[140%] lg:text-[18px] lg:leading-[140%] font-bold;
76
- }
77
- p {
78
- @apply text-[15px] leading-[140%] lg:text-[18px] lg:leading-[140%];
79
- }
80
- small {
81
- @apply text-[14px] leading-[140%] lg:text-[16px] lg:leading-[140%];
82
- }
83
- a {
84
- @apply text-[15px] leading-[140%] lg:text-[18px] lg:leading-[140%];
85
- }
86
- button {
87
- @apply text-[15px] leading-[140%] lg:text-[18px] lg:leading-[140%];
88
- }
123
+ --ui-radius: 0.5rem;
89
124
  }
90
125
 
91
- html,
92
- body {
93
- height: 100%;
126
+ .dark {
127
+ /* Adjust primary color for dark mode */
128
+ --ui-primary: var(--ui-color-primary-400);
129
+ --ui-secondary: var(--ui-color-secondary-400);
130
+ --ui-success: var(--ui-color-success-400);
131
+ --ui-info: var(--ui-color-info-400);
132
+ --ui-warning: var(--ui-color-warning-400);
133
+ --ui-error: var(--ui-color-error-400);
94
134
  }
95
135
 
96
- #__nuxt {
97
- height: 100%;
136
+ html {
137
+ @apply scroll-pt-24;
98
138
  }