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.
- package/.github/workflows/publish.yml +4 -2
- package/.oxfmtrc.jsonc +7 -0
- package/CHANGELOG.md +22 -8
- package/nuxt-base-template/.dockerignore +44 -0
- package/nuxt-base-template/.env.example +1 -1
- package/nuxt-base-template/.nuxtrc +1 -0
- package/nuxt-base-template/.oxfmtrc.jsonc +8 -0
- package/nuxt-base-template/Dockerfile.dev +23 -0
- package/nuxt-base-template/README.md +127 -13
- package/nuxt-base-template/app/app.config.ts +67 -0
- package/nuxt-base-template/app/app.vue +10 -2
- package/nuxt-base-template/app/assets/css/tailwind.css +124 -84
- package/nuxt-base-template/app/components/Modal/ModalBackupCodes.vue +117 -0
- package/nuxt-base-template/app/components/Modal/ModalBase.vue +65 -0
- package/nuxt-base-template/app/components/Transition/TransitionSlide.vue +0 -2
- package/nuxt-base-template/app/components/Transition/TransitionSlideBottom.vue +0 -2
- package/nuxt-base-template/app/components/Transition/TransitionSlideRevert.vue +0 -2
- package/nuxt-base-template/app/components/Upload/TusFileUpload.vue +302 -0
- package/nuxt-base-template/app/composables/use-better-auth.ts +25 -0
- package/nuxt-base-template/app/composables/use-file.ts +57 -6
- package/nuxt-base-template/app/composables/use-share.ts +26 -10
- package/nuxt-base-template/app/composables/use-tus-upload.ts +278 -0
- package/nuxt-base-template/app/error.vue +7 -43
- package/nuxt-base-template/app/interfaces/upload.interface.ts +58 -0
- package/nuxt-base-template/app/interfaces/user.interface.ts +12 -0
- package/nuxt-base-template/app/layouts/default.vue +76 -4
- package/nuxt-base-template/app/layouts/slim.vue +5 -0
- package/nuxt-base-template/app/lib/auth-client.ts +135 -0
- package/nuxt-base-template/app/middleware/admin.global.ts +20 -6
- package/nuxt-base-template/app/middleware/auth.global.ts +15 -6
- package/nuxt-base-template/app/middleware/guest.global.ts +18 -0
- package/nuxt-base-template/app/pages/app/settings/security.vue +409 -0
- package/nuxt-base-template/app/pages/auth/2fa.vue +120 -0
- package/nuxt-base-template/app/pages/auth/forgot-password.vue +115 -0
- package/nuxt-base-template/app/pages/auth/login.vue +135 -0
- package/nuxt-base-template/app/pages/auth/register.vue +184 -0
- package/nuxt-base-template/app/pages/auth/reset-password.vue +153 -0
- package/nuxt-base-template/app/pages/index.vue +139 -2
- package/nuxt-base-template/app/utils/crypto.ts +13 -0
- package/nuxt-base-template/docker-entrypoint.sh +21 -0
- package/nuxt-base-template/docs/nuxt.config.ts +4 -0
- package/nuxt-base-template/docs/pages/docs.vue +663 -0
- package/nuxt-base-template/nuxt.config.ts +75 -30
- package/nuxt-base-template/openapi-ts.config.ts +18 -0
- package/nuxt-base-template/oxlint.json +14 -0
- package/nuxt-base-template/package-lock.json +11414 -15883
- package/nuxt-base-template/package.json +48 -50
- package/nuxt-base-template/tests/iam.spec.ts +247 -0
- package/nuxt-base-template/tsconfig.json +1 -1
- package/package.json +15 -12
- package/.eslintignore +0 -14
- package/.eslintrc +0 -3
- package/.prettierignore +0 -5
- package/.prettierrc +0 -6
- package/nuxt-base-template/app/composables/use-context-menu.ts +0 -19
- package/nuxt-base-template/app/composables/use-form-helper.ts +0 -41
- package/nuxt-base-template/app/composables/use-modal.ts +0 -84
- package/nuxt-base-template/app/composables/use-notification.ts +0 -29
- package/nuxt-base-template/app/middleware/logged-in.global.ts +0 -9
- package/nuxt-base-template/app/plugins/auth.server.ts +0 -72
- package/nuxt-base-template/app/plugins/form.plugin.ts +0 -21
- package/nuxt-base-template/app/plugins/pwa.plugin.ts +0 -114
- package/nuxt-base-template/eslint.config.mjs +0 -3
- 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
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.
|
|
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
|
-
*
|
|
10
|
+
* add repository field in package.json ([1f43eae](https://github.com/lenneTech/nuxt-base-starter/commit/1f43eae4445b2f8a54cf4442c79be1bd55cf711c))
|
|
11
11
|
|
|
12
|
-
### [0.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
setups.@nuxt/test-utils="3.23.0"
|
|
@@ -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
|
|
1
|
+
# Nuxt Base Template
|
|
2
2
|
|
|
3
|
-
|
|
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
|
-
|
|
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
|
-
|
|
17
|
-
|
|
22
|
+
```bash
|
|
23
|
+
cp .env.example .env
|
|
18
24
|
```
|
|
19
25
|
|
|
20
|
-
|
|
26
|
+
Configure your `.env` file with the required values (see Environment Variables section below).
|
|
21
27
|
|
|
22
|
-
|
|
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
|
-
|
|
44
|
+
Preview production build locally:
|
|
37
45
|
|
|
38
46
|
```bash
|
|
39
47
|
npm run preview
|
|
40
48
|
```
|
|
41
49
|
|
|
42
|
-
|
|
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
|
-
<
|
|
9
|
+
<UApp :toaster="appConfig.toaster">
|
|
10
|
+
<NuxtLoadingIndicator color="var(--ui-primary)" :height="2" />
|
|
3
11
|
<NuxtLayout>
|
|
4
12
|
<NuxtPage />
|
|
5
13
|
</NuxtLayout>
|
|
6
|
-
</
|
|
14
|
+
</UApp>
|
|
7
15
|
</template>
|
|
@@ -1,98 +1,138 @@
|
|
|
1
1
|
@import 'tailwindcss';
|
|
2
|
+
@import '@nuxt/ui';
|
|
2
3
|
|
|
3
|
-
@
|
|
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
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
color
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
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
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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
|
-
|
|
97
|
-
|
|
136
|
+
html {
|
|
137
|
+
@apply scroll-pt-24;
|
|
98
138
|
}
|