@withmata/blueprints 0.2.0 → 0.3.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 (46) hide show
  1. package/{.opencode/commands/audit.md → .claude/skills/audit/SKILL.md} +8 -6
  2. package/.claude/skills/blueprint-catalog/SKILL.md +63 -0
  3. package/.claude/{commands/discover.md → skills/discover/SKILL.md} +8 -3
  4. package/{.cursor/commands/new-blueprint.md → .claude/skills/new-blueprint/SKILL.md} +13 -8
  5. package/{.cursor/commands/new-project.md → .claude/skills/new-project/SKILL.md} +11 -6
  6. package/.claude/{commands/scaffold-auth.md → skills/scaffold-auth/SKILL.md} +24 -23
  7. package/{.cursor/commands/scaffold-db.md → .claude/skills/scaffold-db/SKILL.md} +17 -16
  8. package/.claude/skills/scaffold-env/SKILL.md +222 -0
  9. package/.claude/{commands/scaffold-foundation.md → skills/scaffold-foundation/SKILL.md} +17 -16
  10. package/.claude/skills/scaffold-tailwind/SKILL.md +177 -0
  11. package/.claude/skills/scaffold-ui/SKILL.md +206 -0
  12. package/ENGINEERING.md +2 -2
  13. package/blueprints/features/env-t3/BLUEPRINT.md +332 -0
  14. package/blueprints/features/env-t3/files/nextjs/.env.example +17 -0
  15. package/blueprints/features/env-t3/files/nextjs/.env.local +0 -0
  16. package/blueprints/features/env-t3/files/nextjs/env/client.ts +13 -0
  17. package/blueprints/features/env-t3/files/nextjs/env/server.ts +12 -0
  18. package/blueprints/features/env-t3/files/server/.env.example +14 -0
  19. package/blueprints/features/env-t3/files/server/.env.local +0 -0
  20. package/blueprints/features/env-t3/files/server/env.ts +17 -0
  21. package/blueprints/features/tailwind-v4/BLUEPRINT.md +262 -12
  22. package/blueprints/features/tailwind-v4/files/tailwind-config/package.json +20 -0
  23. package/blueprints/features/tailwind-v4/files/tailwind-config/shared-styles.css +131 -0
  24. package/blueprints/features/ui-shared-components/BLUEPRINT.md +350 -13
  25. package/blueprints/features/ui-shared-components/files/ui/components.json +21 -0
  26. package/blueprints/features/ui-shared-components/files/ui/package.json +42 -0
  27. package/blueprints/features/ui-shared-components/files/ui/styles/globals.css +2 -0
  28. package/blueprints/features/ui-shared-components/files/ui/tsconfig.json +9 -0
  29. package/blueprints/features/ui-shared-components/files/ui/utils/cn.ts +6 -0
  30. package/blueprints/features/ui-shared-components/files/ui/utils/cva.ts +4 -0
  31. package/dist/index.js +210 -166
  32. package/package.json +6 -7
  33. package/.claude/commands/audit.md +0 -179
  34. package/.claude/commands/new-blueprint.md +0 -265
  35. package/.claude/commands/new-project.md +0 -230
  36. package/.claude/commands/scaffold-db.md +0 -270
  37. package/.cursor/commands/audit.md +0 -179
  38. package/.cursor/commands/discover.md +0 -92
  39. package/.cursor/commands/scaffold-auth.md +0 -310
  40. package/.cursor/commands/scaffold-foundation.md +0 -158
  41. package/.opencode/commands/discover.md +0 -96
  42. package/.opencode/commands/new-blueprint.md +0 -269
  43. package/.opencode/commands/new-project.md +0 -234
  44. package/.opencode/commands/scaffold-auth.md +0 -314
  45. package/.opencode/commands/scaffold-db.md +0 -274
  46. package/.opencode/commands/scaffold-foundation.md +0 -162
@@ -6,24 +6,274 @@ Feature
6
6
 
7
7
  ## Status
8
8
 
9
- Planned.
9
+ Complete.
10
10
 
11
11
  ## Problem
12
12
 
13
- The foundation blueprint creates a minimal `config/tailwind-config/` package with basic theme tokens. Production apps need a complete design system: extended color palettes, dark mode strategy, animation utilities, typography scale, font loading, and component-friendly CSS custom properties. This blueprint extends the foundation's base into a full design system.
13
+ The foundation blueprint creates a minimal `config/tailwind-config/` package with basic theme tokens enough to get started but not enough for production apps. A complete design system needs: animation utilities, typography plugin, sidebar tokens for dashboard layouts, chart tokens for data visualization, scrollbar utilities, and the full shadcn/ui CSS integration. Setting up these imports and tokens correctly with Tailwind v4's CSS-based configuration is non-obvious and error-prone.
14
14
 
15
- ## Intended Scope
16
-
17
- - Extended CSS custom properties and design tokens in `config/tailwind-config/`
18
- - Dark mode setup (class-based or media-query)
19
- - Animation utilities and keyframes
20
- - Typography scale and font loading (local + variable fonts)
21
- - Color palette generation using OKLCH color space
22
- - shadcn/ui-compatible token structure
23
- - Documentation of available tokens and usage patterns
15
+ This blueprint upgrades the foundation's minimal tailwind-config into a production-ready design system.
24
16
 
25
17
  ## Blueprint Dependencies
26
18
 
27
19
  | Blueprint | Type | Why |
28
20
  |-----------|------|-----|
29
- | `foundation/monorepo-turbo` | recommended | Provides the base `config/tailwind-config/` package with minimal theme tokens. Without it, this blueprint creates the config structure from scratch. Works in both monorepo and single-repo projects. |
21
+ | `foundation/monorepo-turbo` | recommended | Provides the base `config/tailwind-config/` package with minimal theme tokens. Without it, this blueprint creates the config structure from scratch. |
22
+
23
+ ---
24
+
25
+ ## Architecture
26
+
27
+ ### Core Pattern
28
+
29
+ Tailwind v4 uses **CSS-based configuration** instead of JavaScript config files. All theme tokens, custom variants, and plugin imports are defined in `shared-styles.css` — a single CSS file that serves as the design system source of truth. This file is exported from the `config/tailwind-config/` workspace package and imported by every app and package that uses Tailwind.
30
+
31
+ ### Key Decisions
32
+
33
+ - **CSS-based configuration only** (required) — Tailwind v4 uses `@theme inline`, `@custom-variant`, and `@import` directives in CSS. No `tailwind.config.js`. This is the Tailwind v4 way and enables better tree-shaking and faster builds.
34
+
35
+ - **OKLCH color space** (required) — All color tokens use the `oklch()` color function for perceptually uniform colors. This produces better gradients, more accessible contrast ratios, and a wider gamut than hex/RGB. Colors are defined as CSS custom properties in `:root` and `.dark` selectors.
36
+
37
+ - **Class-based dark mode** (required) — Uses `@custom-variant dark (&:is(.dark *))` for class-based dark mode toggling. This integrates with Next.js theme providers and gives JavaScript control over the theme (vs. media-query which follows OS preference only).
38
+
39
+ - **shadcn/ui CSS integration** (required) — Imports `shadcn/tailwind.css` which provides the CSS variable structure that shadcn components expect. This is required for any project using shadcn/ui components.
40
+
41
+ - **Animation utilities** (required) — Imports `tw-animate-css` for common animation classes (fade-in, slide-in, etc.) used by shadcn components and dialog/popover transitions.
42
+
43
+ - **Scrollbar hiding** (recommended) — Imports `tailwind-scrollbar-hide/v4` for utility classes that hide scrollbars while maintaining scroll functionality. Useful for custom scroll areas and overflow containers.
44
+
45
+ - **Typography plugin** (recommended) — `@tailwindcss/typography` is included as a dependency but imported by consuming apps (via `@plugin`) rather than the config. This allows per-app control over prose styling.
46
+
47
+ - **Sidebar tokens** (recommended) — CSS variables for sidebar-specific colors (`--sidebar`, `--sidebar-primary`, `--sidebar-accent`, etc.) for dashboard layouts. These tokens integrate with shadcn's sidebar component.
48
+
49
+ - **Chart tokens** (recommended) — CSS variables for data visualization (`--chart-1` through `--chart-5`) with OKLCH values that work well together in both light and dark modes.
50
+
51
+ - **Extended radius scale** (recommended) — Adds `--radius-3xl` and `--radius-4xl` beyond the foundation's base radius tokens, useful for larger cards and containers.
52
+
53
+ ---
54
+
55
+ ## Hard Requirements vs Recommended Defaults
56
+
57
+ **Hard requirements:**
58
+ - Tailwind CSS v4
59
+ - CSS-based configuration (`shared-styles.css`)
60
+ - OKLCH color space for all color tokens
61
+ - Class-based dark mode
62
+ - shadcn/ui CSS variable structure
63
+
64
+ **Recommended defaults — ask during scaffolding:**
65
+
66
+ | Choice | Recommended | Alternatives |
67
+ |---|---|---|
68
+ | Include sidebar tokens | Yes | No (if not building dashboards) |
69
+ | Include chart tokens | Yes | No (if not doing data visualization) |
70
+ | Include scrollbar-hide | Yes | No |
71
+ | Primary color hue | 264 (indigo/violet) | Any OKLCH hue value |
72
+
73
+ ---
74
+
75
+ ## Dependencies
76
+
77
+ ### npm packages
78
+
79
+ **config/tailwind-config:**
80
+ | Package | Version | Purpose |
81
+ |---|---|---|
82
+ | `@tailwindcss/typography` | ^0.5 | Prose styling for rich text content |
83
+ | `shadcn` | ^3 | shadcn/ui CSS integration and component CLI |
84
+ | `tailwind-scrollbar-hide` | ^4 | Utility classes for hiding scrollbars |
85
+ | `tw-animate-css` | ^1 | Animation utility classes for transitions |
86
+
87
+ **config/tailwind-config (dev):**
88
+ | Package | Version | Purpose |
89
+ |---|---|---|
90
+ | `@tailwindcss/postcss` | ^4 | PostCSS plugin for Tailwind v4 |
91
+ | `tailwindcss` | ^4 | Tailwind CSS v4 core |
92
+
93
+ ---
94
+
95
+ ## Monorepo Wiring
96
+
97
+ ### Tailwind Config Package (`config/tailwind-config/`)
98
+
99
+ **`package.json` exports:**
100
+ ```json
101
+ {
102
+ "exports": {
103
+ ".": "./shared-styles.css",
104
+ "./postcss": "./postcss.config.mjs"
105
+ }
106
+ }
107
+ ```
108
+
109
+ **File structure:**
110
+ ```
111
+ config/tailwind-config/
112
+ ├── package.json # Package config with exports and deps
113
+ ├── shared-styles.css # Full design system (tokens, colors, dark mode)
114
+ └── postcss.config.mjs # PostCSS config with @tailwindcss/postcss
115
+ ```
116
+
117
+ ### Consuming Apps
118
+
119
+ Apps import the tailwind config in their `globals.css`:
120
+
121
+ ```css
122
+ @import "tailwindcss";
123
+ @import "{{SCOPE}}/tailwind-config";
124
+ ```
125
+
126
+ Typography plugin is added per-app:
127
+ ```css
128
+ @plugin "@tailwindcss/typography";
129
+ ```
130
+
131
+ ---
132
+
133
+ ## Single-Repo Adaptation
134
+
135
+ For standalone applications without a monorepo, the tailwind config lives directly in the project.
136
+
137
+ ### Path Mapping
138
+
139
+ | Aspect | Monorepo | Single-Repo |
140
+ |--------|----------|-------------|
141
+ | Config location | `config/tailwind-config/` (workspace package) | `src/styles/` or project root |
142
+ | Import in globals.css | `@import "{{SCOPE}}/tailwind-config"` | `@import "./src/styles/shared-styles.css"` or inline |
143
+ | Package dependencies | In `config/tailwind-config/package.json` | In root `package.json` |
144
+ | PostCSS config | Exported from config package | At project root |
145
+
146
+ ### Single-Repo File Structure
147
+
148
+ ```
149
+ <project-root>/
150
+ ├── src/styles/
151
+ │ └── shared-styles.css # Full design system
152
+ ├── postcss.config.mjs # PostCSS config
153
+ ├── app/globals.css # Imports shared-styles.css directly
154
+ └── package.json # All deps at root
155
+ ```
156
+
157
+ ### What Stays the Same
158
+
159
+ - CSS-based configuration pattern
160
+ - All theme tokens, color values, dark mode setup
161
+ - `@import` chain and plugin usage
162
+ - OKLCH color space
163
+ - shadcn/ui compatibility
164
+
165
+ ---
166
+
167
+ ## File Manifest
168
+
169
+ | File | Purpose | Monorepo Target | Single-Repo Target |
170
+ |---|---|---|---|
171
+ | `files/tailwind-config/shared-styles.css` | Full design system: tokens, colors, dark mode, animations | `config/tailwind-config/shared-styles.css` | `src/styles/shared-styles.css` |
172
+ | `files/tailwind-config/package.json` | Package config with all design system deps | `config/tailwind-config/package.json` | N/A (deps go in root `package.json`) |
173
+
174
+ ---
175
+
176
+ ## Integration Steps
177
+
178
+ ### Phase 1: Upgrade Tailwind Config
179
+
180
+ **If foundation's `config/tailwind-config/` exists:**
181
+
182
+ 1. Replace `shared-styles.css` with the full version from this blueprint
183
+ 2. Merge dependencies into the existing `package.json`:
184
+ - Add `@tailwindcss/typography`, `shadcn`, `tailwind-scrollbar-hide`, `tw-animate-css` to `dependencies`
185
+ - Keep existing `devDependencies` (`@tailwindcss/postcss`, `tailwindcss`)
186
+ 3. Keep existing `postcss.config.mjs` (unchanged)
187
+
188
+ **If no existing config:**
189
+
190
+ 1. Create `config/tailwind-config/` directory
191
+ 2. Copy `shared-styles.css` — replace `{{SCOPE}}` placeholders
192
+ 3. Copy `package.json` — replace `{{SCOPE}}`
193
+ 4. Create `postcss.config.mjs` (same as foundation's version)
194
+
195
+ ### Phase 2: Dependency Installation
196
+
197
+ 5. Run `pnpm install` to fetch new dependencies
198
+ 6. Verify no peer dependency warnings
199
+
200
+ ### Phase 3: Verification
201
+
202
+ 7. Run `pnpm dev` — the app should start without CSS errors
203
+ 8. Verify dark mode works: add `class="dark"` to `<html>` and confirm colors change
204
+ 9. Verify animation classes work: try `animate-fade-in` on an element
205
+
206
+ ---
207
+
208
+ ## Maintenance Hooks
209
+
210
+ ### Design System Hooks
211
+
212
+ | When you... | Then do... | Why |
213
+ |---|---|---|
214
+ | Add a new color token | Add CSS variable to both `:root` and `.dark`, then map it in `@theme inline` | Missing from either = broken in one mode |
215
+ | Add a sidebar component | Verify sidebar tokens exist in `shared-styles.css` | Sidebar components reference `--sidebar-*` variables |
216
+ | Upgrade Tailwind CSS | Check for breaking changes in `@import` syntax or `@theme` directives | v4 API is still evolving |
217
+ | Add a new app to the monorepo | Import `{{SCOPE}}/tailwind-config` in the new app's `globals.css` | New apps don't automatically get the design system |
218
+
219
+ ### Condensed Rules for project rules file
220
+
221
+ ```markdown
222
+ ### tailwind-v4 maintenance
223
+ - After adding a new color: add CSS variable to both :root and .dark selectors in shared-styles.css, then map in @theme inline
224
+ - After adding a new app: import the tailwind-config package in the app's globals.css
225
+ - After upgrading Tailwind: check for @import, @theme, or @custom-variant breaking changes
226
+ - Never use tailwind.config.js — all configuration is CSS-based in shared-styles.css
227
+ - Colors use OKLCH color space — do not use hex or RGB
228
+ ```
229
+
230
+ ---
231
+
232
+ ## What's Configurable
233
+
234
+ - Primary color hue (OKLCH hue value)
235
+ - Whether to include sidebar tokens
236
+ - Whether to include chart tokens
237
+ - Whether to include scrollbar-hide
238
+ - Additional custom tokens can be added to `@theme inline`
239
+
240
+ ## What's Opinionated
241
+
242
+ - **Tailwind CSS v4** — CSS-based config, not JavaScript
243
+ - **OKLCH color space** — no hex or RGB color values
244
+ - **Class-based dark mode** — not media-query based
245
+ - **shadcn/ui CSS structure** — CSS variables follow shadcn conventions
246
+ - **`shared-styles.css` as single source** — one file for the entire design system, not split across multiple files
247
+
248
+ ## Project Context Output
249
+
250
+ Appends to `.project-context.md` under `## Installed Blueprints`:
251
+
252
+ ```yaml
253
+ ### tailwind-v4
254
+ blueprint: tailwind-v4
255
+ choices:
256
+ include_sidebar_tokens: true
257
+ include_chart_tokens: true
258
+ include_scrollbar_hide: true
259
+ primary_hue: 264
260
+ files_modified:
261
+ - config/tailwind-config/shared-styles.css
262
+ - config/tailwind-config/package.json
263
+ packages_added:
264
+ - "@tailwindcss/typography"
265
+ - shadcn
266
+ - tailwind-scrollbar-hide
267
+ - tw-animate-css
268
+ ```
269
+
270
+ ---
271
+
272
+ ## References
273
+
274
+ - **Tailwind CSS v4 Docs:** https://tailwindcss.com/docs
275
+ - **Tailwind v4 CSS Config:** https://tailwindcss.com/docs/theme
276
+ - **OKLCH Color Space:** https://oklch.com/
277
+ - **shadcn/ui Theming:** https://ui.shadcn.com/docs/theming
278
+ - **tw-animate-css:** https://github.com/Wombosvideo/tw-animate-css
279
+ - **tailwind-scrollbar-hide:** https://github.com/reslear/tailwind-scrollbar-hide
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "{{SCOPE}}/tailwind-config",
3
+ "version": "0.0.0",
4
+ "type": "module",
5
+ "private": true,
6
+ "exports": {
7
+ ".": "./shared-styles.css",
8
+ "./postcss": "./postcss.config.mjs"
9
+ },
10
+ "dependencies": {
11
+ "@tailwindcss/typography": "^0.5",
12
+ "shadcn": "^3",
13
+ "tailwind-scrollbar-hide": "^4",
14
+ "tw-animate-css": "^1"
15
+ },
16
+ "devDependencies": {
17
+ "@tailwindcss/postcss": "^4",
18
+ "tailwindcss": "^4"
19
+ }
20
+ }
@@ -0,0 +1,131 @@
1
+ @import "tailwindcss";
2
+ @import "tw-animate-css";
3
+ @import "shadcn/tailwind.css";
4
+ @import "tailwind-scrollbar-hide/v4";
5
+
6
+ @custom-variant dark (&:is(.dark *));
7
+
8
+ /* ==========================================================================
9
+ Theme tokens — OKLCH color space, shadcn/ui compatible
10
+ ========================================================================== */
11
+
12
+ @theme inline {
13
+ --color-background: var(--background);
14
+ --color-foreground: var(--foreground);
15
+ --font-sans: var(--font-sans);
16
+ --font-mono: var(--font-geist-mono);
17
+ --color-sidebar-ring: var(--sidebar-ring);
18
+ --color-sidebar-border: var(--sidebar-border);
19
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
20
+ --color-sidebar-accent: var(--sidebar-accent);
21
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
22
+ --color-sidebar-primary: var(--sidebar-primary);
23
+ --color-sidebar-foreground: var(--sidebar-foreground);
24
+ --color-sidebar: var(--sidebar);
25
+ --color-chart-5: var(--chart-5);
26
+ --color-chart-4: var(--chart-4);
27
+ --color-chart-3: var(--chart-3);
28
+ --color-chart-2: var(--chart-2);
29
+ --color-chart-1: var(--chart-1);
30
+ --color-ring: var(--ring);
31
+ --color-input: var(--input);
32
+ --color-border: var(--border);
33
+ --color-destructive: var(--destructive);
34
+ --color-accent-foreground: var(--accent-foreground);
35
+ --color-accent: var(--accent);
36
+ --color-muted-foreground: var(--muted-foreground);
37
+ --color-muted: var(--muted);
38
+ --color-secondary-foreground: var(--secondary-foreground);
39
+ --color-secondary: var(--secondary);
40
+ --color-primary-foreground: var(--primary-foreground);
41
+ --color-primary: var(--primary);
42
+ --color-popover-foreground: var(--popover-foreground);
43
+ --color-popover: var(--popover);
44
+ --color-card-foreground: var(--card-foreground);
45
+ --color-card: var(--card);
46
+ --radius-sm: calc(var(--radius) - 4px);
47
+ --radius-md: calc(var(--radius) - 2px);
48
+ --radius-lg: var(--radius);
49
+ --radius-xl: calc(var(--radius) + 4px);
50
+ --radius-2xl: calc(var(--radius) + 8px);
51
+ --radius-3xl: calc(var(--radius) + 12px);
52
+ --radius-4xl: calc(var(--radius) + 16px);
53
+ }
54
+
55
+ :root {
56
+ --background: oklch(1 0 0);
57
+ --foreground: oklch(0.145 0 0);
58
+ --card: oklch(1 0 0);
59
+ --card-foreground: oklch(0.145 0 0);
60
+ --popover: oklch(1 0 0);
61
+ --popover-foreground: oklch(0.145 0 0);
62
+ --primary: oklch(0.488 0.243 264.376);
63
+ --primary-foreground: oklch(0.97 0.014 254.604);
64
+ --secondary: oklch(0.967 0.001 286.375);
65
+ --secondary-foreground: oklch(0.21 0.006 285.885);
66
+ --muted: oklch(0.97 0 0);
67
+ --muted-foreground: oklch(0.556 0 0);
68
+ --accent: oklch(0.97 0 0);
69
+ --accent-foreground: oklch(0.205 0 0);
70
+ --destructive: oklch(0.58 0.22 27);
71
+ --border: oklch(0.922 0 0);
72
+ --input: oklch(0.922 0 0);
73
+ --ring: oklch(0.708 0 0);
74
+ --chart-1: oklch(0.809 0.105 251.813);
75
+ --chart-2: oklch(0.623 0.214 259.815);
76
+ --chart-3: oklch(0.546 0.245 262.881);
77
+ --chart-4: oklch(0.488 0.243 264.376);
78
+ --chart-5: oklch(0.424 0.199 265.638);
79
+ --radius: 0.625rem;
80
+ --sidebar: oklch(0.985 0 0);
81
+ --sidebar-foreground: oklch(0.145 0 0);
82
+ --sidebar-primary: oklch(0.546 0.245 262.881);
83
+ --sidebar-primary-foreground: oklch(0.97 0.014 254.604);
84
+ --sidebar-accent: oklch(0.97 0 0);
85
+ --sidebar-accent-foreground: oklch(0.205 0 0);
86
+ --sidebar-border: oklch(0.922 0 0);
87
+ --sidebar-ring: oklch(0.708 0 0);
88
+ }
89
+
90
+ .dark {
91
+ --background: oklch(0.145 0 0);
92
+ --foreground: oklch(0.985 0 0);
93
+ --card: oklch(0.205 0 0);
94
+ --card-foreground: oklch(0.985 0 0);
95
+ --popover: oklch(0.205 0 0);
96
+ --popover-foreground: oklch(0.985 0 0);
97
+ --primary: oklch(0.42 0.18 266);
98
+ --primary-foreground: oklch(0.97 0.014 254.604);
99
+ --secondary: oklch(0.274 0.006 286.033);
100
+ --secondary-foreground: oklch(0.985 0 0);
101
+ --muted: oklch(0.269 0 0);
102
+ --muted-foreground: oklch(0.708 0 0);
103
+ --accent: oklch(0.371 0 0);
104
+ --accent-foreground: oklch(0.985 0 0);
105
+ --destructive: oklch(0.704 0.191 22.216);
106
+ --border: oklch(1 0 0 / 10%);
107
+ --input: oklch(1 0 0 / 15%);
108
+ --ring: oklch(0.556 0 0);
109
+ --chart-1: oklch(0.809 0.105 251.813);
110
+ --chart-2: oklch(0.623 0.214 259.815);
111
+ --chart-3: oklch(0.546 0.245 262.881);
112
+ --chart-4: oklch(0.488 0.243 264.376);
113
+ --chart-5: oklch(0.424 0.199 265.638);
114
+ --sidebar: oklch(0.205 0 0);
115
+ --sidebar-foreground: oklch(0.985 0 0);
116
+ --sidebar-primary: oklch(0.623 0.214 259.815);
117
+ --sidebar-primary-foreground: oklch(0.97 0.014 254.604);
118
+ --sidebar-accent: oklch(0.269 0 0);
119
+ --sidebar-accent-foreground: oklch(0.985 0 0);
120
+ --sidebar-border: oklch(1 0 0 / 10%);
121
+ --sidebar-ring: oklch(0.556 0 0);
122
+ }
123
+
124
+ @layer base {
125
+ * {
126
+ @apply border-border outline-ring/50;
127
+ }
128
+ body {
129
+ @apply bg-background text-foreground;
130
+ }
131
+ }