@maz-ui/mcp 4.9.1 → 5.0.0-beta.0

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 (116) hide show
  1. package/dist/mcp.mjs +1 -1
  2. package/docs/generated-docs/maz-alert.doc.md +1 -1
  3. package/docs/generated-docs/maz-avatar.doc.md +1 -1
  4. package/docs/generated-docs/maz-badge.doc.md +8 -8
  5. package/docs/generated-docs/maz-btn.doc.md +26 -26
  6. package/docs/generated-docs/maz-card.doc.md +19 -19
  7. package/docs/generated-docs/maz-chart.doc.md +8 -8
  8. package/docs/generated-docs/maz-container.doc.md +20 -20
  9. package/docs/generated-docs/maz-drawer.doc.md +8 -8
  10. package/docs/generated-docs/maz-dropdown.doc.md +1 -1
  11. package/docs/generated-docs/maz-dropzone.doc.md +2 -2
  12. package/docs/generated-docs/maz-gallery.doc.md +15 -15
  13. package/docs/generated-docs/maz-icon.doc.md +11 -14
  14. package/docs/generated-docs/maz-input.doc.md +38 -38
  15. package/docs/generated-docs/maz-lazy-img.doc.md +18 -0
  16. package/docs/generated-docs/maz-link.doc.md +9 -9
  17. package/docs/generated-docs/maz-pagination.doc.md +9 -9
  18. package/docs/generated-docs/maz-popover.doc.md +5 -1
  19. package/docs/generated-docs/maz-radio-buttons.doc.md +17 -17
  20. package/docs/generated-docs/maz-select.doc.md +2 -2
  21. package/docs/generated-docs/maz-skeleton.doc.md +10 -10
  22. package/docs/generated-docs/maz-table.doc.md +37 -37
  23. package/docs/generated-docs/maz-textarea.doc.md +1 -1
  24. package/docs/generated-docs/maz-timeline.doc.md +1 -1
  25. package/docs/src/blog/v4.md +7 -7
  26. package/docs/src/blog/v5.md +186 -0
  27. package/docs/src/components/maz-accordion.md +1 -1
  28. package/docs/src/components/maz-alert.md +15 -15
  29. package/docs/src/components/maz-animated-counter.md +4 -4
  30. package/docs/src/components/maz-avatar.md +2 -2
  31. package/docs/src/components/maz-backdrop.md +7 -7
  32. package/docs/src/components/maz-badge.md +16 -30
  33. package/docs/src/components/maz-bottom-sheet.md +74 -74
  34. package/docs/src/components/maz-btn-group.md +17 -13
  35. package/docs/src/components/maz-btn.md +127 -90
  36. package/docs/src/components/maz-card-spotlight.md +5 -5
  37. package/docs/src/components/maz-card.md +20 -20
  38. package/docs/src/components/maz-carousel.md +14 -14
  39. package/docs/src/components/maz-chart.md +23 -4
  40. package/docs/src/components/maz-checkbox.md +3 -3
  41. package/docs/src/components/maz-checklist.md +19 -19
  42. package/docs/src/components/maz-circular-progress-bar.md +4 -4
  43. package/docs/src/components/maz-container.md +52 -37
  44. package/docs/src/components/maz-date-picker.md +7 -7
  45. package/docs/src/components/maz-dialog-confirm.md +2 -2
  46. package/docs/src/components/maz-drawer.md +14 -14
  47. package/docs/src/components/maz-dropdown.md +27 -12
  48. package/docs/src/components/maz-dropzone.md +6 -6
  49. package/docs/src/components/maz-expand-animation.md +2 -2
  50. package/docs/src/components/maz-fullscreen-loader.md +2 -2
  51. package/docs/src/components/maz-gallery.md +1 -1
  52. package/docs/src/components/maz-icon.md +113 -60
  53. package/docs/src/components/maz-input-code.md +1 -1
  54. package/docs/src/components/maz-input-phone-number.md +89 -88
  55. package/docs/src/components/maz-input-tags.md +2 -2
  56. package/docs/src/components/maz-input.md +42 -12
  57. package/docs/src/components/maz-link.md +28 -10
  58. package/docs/src/components/maz-pagination.md +2 -2
  59. package/docs/src/components/maz-popover.md +236 -235
  60. package/docs/src/components/maz-pull-to-refresh.md +2 -2
  61. package/docs/src/components/maz-radio-buttons.md +11 -11
  62. package/docs/src/components/maz-radio.md +3 -3
  63. package/docs/src/components/maz-read-more.md +7 -7
  64. package/docs/src/components/maz-select-country.md +26 -26
  65. package/docs/src/components/maz-select.md +1 -1
  66. package/docs/src/components/maz-skeleton.md +25 -25
  67. package/docs/src/components/maz-spinner.md +2 -2
  68. package/docs/src/components/maz-stepper.md +5 -5
  69. package/docs/src/components/maz-switch.md +1 -1
  70. package/docs/src/components/maz-table.md +10 -10
  71. package/docs/src/components/maz-tabs.md +17 -17
  72. package/docs/src/components/maz-textarea.md +8 -8
  73. package/docs/src/components/maz-ticker.md +37 -37
  74. package/docs/src/components/maz-timeline.md +9 -9
  75. package/docs/src/composables/use-dialog.md +1 -1
  76. package/docs/src/composables/use-display-names.md +2 -2
  77. package/docs/src/composables/use-form-validator.md +35 -35
  78. package/docs/src/composables/use-idle-timeout.md +3 -3
  79. package/docs/src/composables/use-reading-time.md +5 -5
  80. package/docs/src/composables/use-string-matching.md +4 -4
  81. package/docs/src/composables/use-swipe.md +3 -3
  82. package/docs/src/composables/use-timer.md +3 -3
  83. package/docs/src/composables/use-toast.md +1 -1
  84. package/docs/src/composables/use-user-visibility.md +1 -1
  85. package/docs/src/composables/use-wait.md +2 -2
  86. package/docs/src/directives/click-outside.md +17 -17
  87. package/docs/src/directives/lazy-img.md +5 -5
  88. package/docs/src/directives/tooltip.md +15 -15
  89. package/docs/src/directives/zoom-img.md +1 -1
  90. package/docs/src/ecosystem/eslint-config.md +100 -0
  91. package/docs/src/ecosystem/stylelint-config.md +190 -0
  92. package/docs/src/guide/browser-support.md +81 -0
  93. package/docs/src/guide/getting-started.md +23 -16
  94. package/docs/src/guide/icon-set.md +13 -13
  95. package/docs/src/guide/icons.md +35 -8
  96. package/docs/src/guide/maz-ui-provider.md +6 -6
  97. package/docs/src/guide/migration-v4.md +3 -3
  98. package/docs/src/guide/migration-v5.md +662 -0
  99. package/docs/src/guide/nuxt.md +27 -44
  100. package/docs/src/guide/resolvers.md +2 -2
  101. package/docs/src/guide/tailwind.md +154 -0
  102. package/docs/src/guide/themes.md +258 -485
  103. package/docs/src/guide/vue.md +8 -5
  104. package/docs/src/helpers/capitalize.md +4 -4
  105. package/docs/src/helpers/country-code-to-unicode-flag.md +37 -37
  106. package/docs/src/helpers/currency.md +4 -4
  107. package/docs/src/helpers/date.md +4 -4
  108. package/docs/src/helpers/get-country-flag-url.md +9 -9
  109. package/docs/src/helpers/number.md +5 -5
  110. package/docs/src/index.md +304 -246
  111. package/docs/src/made-with-maz-ui.md +5 -5
  112. package/docs/src/plugins/aos.md +6 -6
  113. package/docs/src/plugins/dialog.md +4 -4
  114. package/docs/src/plugins/toast.md +3 -3
  115. package/docs/src/plugins/wait.md +1 -1
  116. package/package.json +5 -5
@@ -14,9 +14,9 @@ description: Modern and performant theme system for Maz-UI with TypeScript, HSL
14
14
  - **Modern HSL CSS Variables** - Maximum flexibility with colors
15
15
  - **Smart Dark Mode** - Automatic support with `prefers-color-scheme`
16
16
  - **Automatic Generation** - Color scales (50-950) created automatically
17
- - **Performance Strategies** - Runtime, build-time or hybrid according to your needs
17
+ - **Performance Strategies** - Runtime injection or build-time generation according to your needs
18
18
  - **Strict TypeScript** - Complete types for perfect DX
19
- - **Zero FOUC** - Critical CSS injected inline to avoid flashes
19
+ - **Zero FOUC** - Pass the preset object up front; the full CSS is injected synchronously on first paint
20
20
  - **Flexible Presets** - Ready-to-use and customizable configurations
21
21
 
22
22
  ## Theme Editor
@@ -39,11 +39,12 @@ const app = createApp(App)
39
39
 
40
40
  app.use(MazUi, {
41
41
  theme: {
42
- preset: mazUi, // pristine | ocean | obsidian
43
- strategy: 'hybrid', // 'runtime' | 'buildtime' | 'hybrid'
42
+ preset: mazUi, // pristine | ocean | obsidian | nova
43
+ strategy: 'runtime', // 'runtime' | 'buildtime'
44
44
  darkModeStrategy: 'class', // 'class' | 'media' (only if mode is `both`)
45
45
  mode: 'both', // 'light' | 'dark' | 'both' (supported color modes)
46
46
  colorMode: 'auto', // 'auto' | 'light' | 'dark' (initial color mode, only if mode is 'both')
47
+ persistPreset: true, // remember the active preset name across reloads
47
48
  }
48
49
  })
49
50
  ```
@@ -58,8 +59,8 @@ You can also initialize the theme via the [`MazUiProvider`](./maz-ui-provider.md
58
59
  html {
59
60
  font-size: var(--maz-base-font-size);
60
61
  font-family: var(--maz-font-family);
61
- background-color: hsl(var(--maz-background));
62
- color: hsl(var(--maz-foreground));
62
+ background-color: var(--maz-surface);
63
+ color: var(--maz-foreground);
63
64
  }
64
65
  ```
65
66
 
@@ -73,9 +74,9 @@ const { toggleDarkMode, isDark, updateTheme } = useTheme()
73
74
  </script>
74
75
 
75
76
  <template>
76
- <div class="maz-bg-background maz-text-foreground">
77
+ <div class="maz:bg-surface maz:text-foreground">
77
78
  <button
78
- class="maz-rounded maz-bg-primary maz-text-primary-foreground"
79
+ class="maz:rounded-md maz:bg-primary maz:text-primary-foreground"
79
80
  @click="toggleDarkMode"
80
81
  >
81
82
  {{ isDark ? '☀️' : '🌙' }} Toggle theme
@@ -92,22 +93,46 @@ const { toggleDarkMode, isDark, updateTheme } = useTheme()
92
93
  - `darkModeStrategy` (optional): The dark mode strategy to use, only if you use mode `both`
93
94
  - `mode` (optional): The supported color modes to use (light, dark, both)
94
95
  - `colorMode` (optional): The initial color mode to use (only if mode is 'both')
96
+ - `persistPreset` (optional, default `true`): Persist the active preset name in the `maz-preset` cookie so it is restored on reload.
97
+
98
+ ### Preset persistence
99
+
100
+ When `persistPreset` is enabled (default), `@maz-ui/themes` stores the resolved preset name in a `maz-preset` cookie (1-year TTL, `SameSite=Lax`) — exactly like `maz-color-mode` for the dark/light state. The cookie is:
101
+
102
+ - **Read at boot** and used to resolve the active preset — even when `options.preset` is provided. `options.preset` (string name **or** preset object) is treated as the *default* the app boots with, while the cookie carries the user's last explicit choice. The cookie wins.
103
+ - **Written** after every successful preset resolution and after every `useTheme().updateTheme()` call (idempotent — no write if the value already matches).
104
+ - **Auto-cleared** when the saved name no longer resolves (e.g. typo, preset removed in a downgrade) — the runtime falls back to `options.preset` (or default) and clears the cookie silently.
105
+
106
+ Custom preset names are stored exactly like bundled ones: `@maz-ui/themes` does not maintain a whitelist. Switch the option off to disable any cookie read/write:
107
+
108
+ ```typescript
109
+ app.use(MazUi, {
110
+ theme: {
111
+ preset: mazUi,
112
+ persistPreset: false, // never write or read the maz-preset cookie
113
+ },
114
+ })
115
+ ```
116
+
117
+ Useful when:
118
+ - You want zero theme-related cookies (privacy / regulatory).
119
+ - The active preset is fully driven by the consumer app and no end-user switching is exposed.
95
120
 
96
121
  ## Interactive Demo
97
122
 
98
123
  <ComponentDemo title="Real-time theme control">
99
124
  <div class="demo-theme-controls">
100
- <div class="maz-space-y-4">
101
- <div class="maz-grid maz-grid-cols-1 md:maz-grid-cols-2 maz-gap-4">
125
+ <div class="maz:space-y-4">
126
+ <div class="maz:grid maz:grid-cols-1 maz:md:grid-cols-2 maz:gap-4">
102
127
  <MazBtn color="primary">Primary Button</MazBtn>
103
128
  <MazBtn color="secondary">Secondary Button</MazBtn>
104
129
  <MazBtn color="success">Success Button</MazBtn>
105
130
  <MazBtn color="warning">Warning Button</MazBtn>
106
131
  </div>
107
- <div class="theme-controls maz-space-y-4">
108
- <div class="maz-flex maz-flex-col maz-gap-4">
109
- <label class="maz-text-sm maz-font-medium">Color Mode: {{ colorMode }}</label>
110
- <div class="maz-flex maz-gap-2">
132
+ <div class="theme-controls maz:space-y-4">
133
+ <div class="maz:flex maz:flex-col maz:gap-4">
134
+ <label class="maz:text-sm maz:font-medium">Color Mode: {{ colorMode }}</label>
135
+ <div class="maz:flex maz:gap-2">
111
136
  <MazBtn
112
137
  size="sm"
113
138
  :color="colorMode === 'light' ? 'primary' : 'contrast'"
@@ -131,9 +156,9 @@ const { toggleDarkMode, isDark, updateTheme } = useTheme()
131
156
  </MazBtn>
132
157
  </div>
133
158
  </div>
134
- <div class="maz-space-y-2">
135
- <label class="maz-text-sm maz-font-medium">Preset:</label>
136
- <div class="maz-flex maz-gap-2">
159
+ <div class="maz:space-y-2">
160
+ <label class="maz:text-sm maz:font-medium">Preset:</label>
161
+ <div class="maz:flex maz:gap-2">
137
162
  <MazBtn
138
163
  size="sm"
139
164
  :color="presetName === 'maz-ui' ? 'primary' : 'contrast'"
@@ -179,16 +204,16 @@ const { presetName, updateTheme, colorMode, setColorMode } = useTheme()
179
204
 
180
205
  <template>
181
206
  <div class="demo-theme-controls">
182
- <div class="maz-space-y-4">
183
- <div class="maz-grid maz-grid-cols-1 md:maz-grid-cols-2 maz-gap-4">
207
+ <div class="maz:space-y-4">
208
+ <div class="maz:grid maz:grid-cols-1 maz:md:grid-cols-2 maz:gap-4">
184
209
  <MazBtn color="primary">Primary Button</MazBtn>
185
210
  <MazBtn color="secondary">Secondary Button</MazBtn>
186
211
  <MazBtn color="success">Success Button</MazBtn>
187
212
  <MazBtn color="warning">Warning Button</MazBtn>
188
213
  </div>
189
- <div class="theme-controls maz-space-y-4">
190
- <div class="maz-flex maz-items-center maz-gap-4">
191
- <label class="maz-text-sm maz-font-medium">Mode:</label>
214
+ <div class="theme-controls maz:space-y-4">
215
+ <div class="maz:flex maz:items-center maz:gap-4">
216
+ <label class="maz:text-sm maz:font-medium">Mode:</label>
192
217
  <MazBtn
193
218
  size="sm"
194
219
  :color="colorMode === 'light' ? 'primary' : 'secondary'"
@@ -211,9 +236,9 @@ const { presetName, updateTheme, colorMode, setColorMode } = useTheme()
211
236
  🔄 Auto
212
237
  </MazBtn>
213
238
  </div>
214
- <div class="maz-space-y-2">
215
- <label class="maz-text-sm maz-font-medium">Preset:</label>
216
- <div class="maz-flex maz-gap-2">
239
+ <div class="maz:space-y-2">
240
+ <label class="maz:text-sm maz:font-medium">Preset:</label>
241
+ <div class="maz:flex maz:gap-2">
217
242
  <MazBtn
218
243
  size="sm"
219
244
  :color="presetName === 'maz-ui' ? 'primary' : 'secondary'"
@@ -287,35 +312,19 @@ A dark and elegant theme with a focus on readability and minimalism.
287
312
  import { obsidian } from '@maz-ui/themes/presets'
288
313
  ```
289
314
 
290
- ## Rendering Strategies
291
-
292
- ### 🚀 Hybrid (Recommended)
315
+ ### Nova
293
316
 
294
- The hybrid strategy combines the best of both worlds:
295
-
296
- - **Critical CSS injected immediately** - Prevents FOUC (Flash of Unstyled Content)
297
- - **Full CSS loaded asynchronously** - Uses `requestIdleCallback` to avoid blocking the main thread
298
- - **Optimal performance** - Balance between display speed and interface fluidity
299
-
300
- The full CSS is injected via `requestIdleCallback` with a 100ms timeout, allowing the browser to prioritize critical tasks while ensuring fast loading of complete styling.
317
+ A modern startup / AI / creative preset — electric violet primary, hot coral secondary, cyan accent. Tight 0.5rem `md` radius, Geist + Inter font stack, snappy ease-out spring. Built for product / AI surfaces (think Linear, Vercel, OpenAI energy) where the UI itself should feel alive.
301
318
 
302
319
  ```typescript
303
- import { mazUi } from '@maz-ui/themes/presets'
304
-
305
- app.use(MazUi, {
306
- theme: {
307
- preset: mazUi,
308
- strategy: 'hybrid'
309
- }
310
- })
320
+ import { nova } from '@maz-ui/themes/presets'
311
321
  ```
312
322
 
313
- ### Runtime
323
+ ## Rendering Strategies
314
324
 
315
- CSS generated (critical and full) injected immediately.
325
+ ### Runtime (Recommended)
316
326
 
317
- **⚠️ Potential risks:**
318
- - **Main thread blocking** - Immediate injection can impact performance
327
+ CSS is generated and injected synchronously on first paint. Pass the preset object directly (`preset: mazUi`) so the full stylesheet is rendered before the first frame — no FOUC.
319
328
 
320
329
  ```typescript
321
330
  import { mazUi } from '@maz-ui/themes/presets'
@@ -356,15 +365,15 @@ app.use(MazUi, {
356
365
  <MazBtn @click="applyCustomTheme" color="info">
357
366
  Apply Custom Theme
358
367
  </MazBtn>
359
- <MazBtn @click="resetTheme" color="secondary" class="maz-ms-2">
368
+ <MazBtn @click="resetTheme" color="secondary" class="maz:ms-2">
360
369
  Reset
361
370
  </MazBtn>
362
371
 
363
- <div class="maz-mt-4 maz-p-4 maz-bg-primary/10 maz-rounded-[var(--maz-radius)]">
364
- <p v-if="presetName === 'custom-purple'" class="maz-text-primary maz-font-medium">
372
+ <div class="maz:mt-4 maz:p-4 maz:bg-primary/10 maz:rounded-md">
373
+ <p v-if="presetName === 'custom-purple'" class="maz:text-primary maz:font-medium">
365
374
  Custom theme applied with purple colors!
366
375
  </p>
367
- <p v-else class="maz-text-primary maz-font-medium">
376
+ <p v-else class="maz:text-primary maz:font-medium">
368
377
  Default theme
369
378
  </p>
370
379
  </div>
@@ -379,9 +388,11 @@ const customTheme = await definePreset({
379
388
  overrides: {
380
389
  name: 'custom-purple',
381
390
  foundation: {
382
- radius: '1rem'
383
391
  'font-family': 'Inter, sans-serif'
384
392
  },
393
+ scales: {
394
+ rounded: { md: '1rem' }
395
+ },
385
396
  colors: {
386
397
  light: {
387
398
  primary: '280 100% 60%',
@@ -430,21 +441,23 @@ const brandTheme = await definePreset({
430
441
  overrides: {
431
442
  name: 'brand',
432
443
  foundation: {
433
- 'radius': '0.75rem',
434
444
  'border-width': '2px',
435
445
  'font-family': 'Inter, sans-serif'
436
446
  },
447
+ scales: {
448
+ rounded: { md: '0.75rem' }
449
+ },
437
450
  colors: {
438
451
  light: {
439
452
  primary: '210 100% 50%',
440
453
  secondary: '210 40% 96%',
441
- background: '210 20% 98%',
454
+ surface: '210 20% 98%',
442
455
  accent: '280 100% 70%'
443
456
  },
444
457
  dark: {
445
458
  primary: '210 100% 60%',
446
459
  secondary: '210 40% 15%',
447
- background: '210 20% 8%',
460
+ surface: '210 20% 8%',
448
461
  accent: '280 100% 80%'
449
462
  }
450
463
  }
@@ -452,6 +465,84 @@ const brandTheme = await definePreset({
452
465
  })
453
466
  ```
454
467
 
468
+ ### Customizing scales
469
+
470
+ Each `ThemeScales` entry maps to a Tailwind utility — override the keys you care about and the rest stays untouched:
471
+
472
+ ```typescript
473
+ const denseTheme = definePreset({
474
+ base: 'maz-ui',
475
+ overrides: {
476
+ name: 'dense',
477
+ foundation: {
478
+ // Tighter spacing — every p-N / gap-N / m-N rescales
479
+ space: '0.2rem',
480
+ },
481
+ scales: {
482
+ // Sharper corners on the whole radius scale
483
+ rounded: {
484
+ 'xs': '0.0625rem',
485
+ 'sm': '0.125rem',
486
+ 'md': '0.375rem',
487
+ 'lg': '0.5rem',
488
+ 'xl': '0.75rem',
489
+ '2xl': '1rem',
490
+ '3xl': '1.5rem',
491
+ },
492
+ // Custom elevated-surface shadow
493
+ shadow: {
494
+ elevation: '0 8px 24px rgba(0, 0, 0, 0.15)',
495
+ },
496
+ },
497
+ },
498
+ })
499
+ ```
500
+
501
+ Foundation gets new optional keys for fonts and disabled-state behaviour:
502
+
503
+ ```typescript
504
+ const codeTheme = definePreset({
505
+ base: 'maz-ui',
506
+ overrides: {
507
+ foundation: {
508
+ 'font-mono-stack': '"JetBrains Mono", ui-monospace, SFMono-Regular, monospace',
509
+ 'font-display-stack': '"Cal Sans", Manrope, sans-serif',
510
+ 'disabled-opacity': '0.4',
511
+ 'disabled-cursor': 'wait',
512
+ },
513
+ },
514
+ })
515
+ ```
516
+
517
+ ### Per-component overrides
518
+
519
+ `components` is a small, validated set of per-component knobs. Every entry is per-mode where appropriate so light and dark can drift independently:
520
+
521
+ ```typescript
522
+ const surfaceTheme = definePreset({
523
+ base: 'maz-ui',
524
+ overrides: {
525
+ name: 'cool-surfaces',
526
+ components: {
527
+ btn: {
528
+ // Bias every button text heavier
529
+ 'font-weight': '600',
530
+ },
531
+ container: {
532
+ // Cards / dialogs / popovers / drawers — light = page surface, dark = a tier above
533
+ bg: { light: 'var(--maz-surface)', dark: 'var(--maz-surface-300)' },
534
+ },
535
+ input: {
536
+ // All form-control surfaces
537
+ bg: { light: 'var(--maz-surface-100)', dark: 'var(--maz-surface-400)' },
538
+ },
539
+ },
540
+ },
541
+ })
542
+ ```
543
+
544
+ Components consume these via `maz:bg-container` / `maz:bg-input` Tailwind utilities, so a single override propagates everywhere — no per-component class hunt.
545
+
455
546
  ## useTheme Composable API
456
547
 
457
548
  ```typescript
@@ -460,7 +551,7 @@ const {
460
551
  presetName, // ComputedRef<string>
461
552
  colorMode, // ComputedRef<'light' | 'dark' | 'auto'>
462
553
  isDark, // ComputedRef<boolean>
463
- strategy, // ComputedRef<'runtime' | 'buildtime' | 'hybrid'>
554
+ strategy, // ComputedRef<'runtime' | 'buildtime'>
464
555
 
465
556
  // Actions
466
557
  updateTheme, // (preset: ThemePreset | ThemePresetOverrides) => void
@@ -544,19 +635,17 @@ const customPreset = definePreset({
544
635
  const fullCSS = buildThemeCSS({
545
636
  preset: customPreset,
546
637
  mode: 'both',
547
- criticalOnly: false,
548
638
  })
549
639
 
550
640
  writeFileSync(join(_dirname, 'public/custom.css'), fullCSS)
551
641
 
552
642
  /**
553
- * Or generate theme in separate CSS files
643
+ * Or generate per-mode CSS files
554
644
  */
555
- const { critical, full } = buildSeparateThemeFiles(customPreset, {
645
+ const { full, lightOnly, darkOnly } = buildSeparateThemeFiles(customPreset, {
556
646
  darkSelector: 'class',
557
647
  })
558
648
 
559
- writeFileSync(join(_dirname, 'public/critical.css'), critical)
560
649
  writeFileSync(join(_dirname, 'public/custom-full.css'), full)
561
650
 
562
651
  /**
@@ -608,11 +697,10 @@ const customPreset = definePreset({
608
697
  const fullCSS = buildThemeCSS({
609
698
  preset: customPreset,
610
699
  mode: 'both',
611
- criticalOnly: false,
612
700
  })
613
701
 
614
- // Or generate separate CSS files
615
- const { critical, full, lightOnly, darkOnly } = buildSeparateThemeFiles(customPreset, {
702
+ // Or generate per-mode CSS files
703
+ const { full, lightOnly, darkOnly } = buildSeparateThemeFiles(customPreset, {
616
704
  darkSelector: 'class',
617
705
  })
618
706
 
@@ -664,11 +752,7 @@ export default defineConfig({
664
752
  #### 2. Include in your HTML (Only for Vue users)
665
753
 
666
754
  ```html
667
- <!-- Critical CSS first -->
668
- <link rel="stylesheet" href="/themes/custom-critical.css">
669
-
670
- <!-- Full CSS deferred -->
671
- <link rel="stylesheet" href="/themes/custom-full.css" media="print" onload="this.media='all'">
755
+ <link rel="stylesheet" href="/themes/custom-full.css">
672
756
  ```
673
757
 
674
758
  ### Utility functions
@@ -682,7 +766,6 @@ const css = buildThemeCSS({
682
766
  preset: customPreset,
683
767
  mode: 'both', // 'light' | 'dark' | 'both'
684
768
  darkSelector: 'class', // 'class' | 'media'
685
- criticalOnly: false, // true for critical CSS only
686
769
  })
687
770
  ```
688
771
 
@@ -704,12 +787,14 @@ Generates separate files for different use cases.
704
787
 
705
788
  ```typescript
706
789
  const files = buildSeparateThemeFiles(preset)
707
- // Result: { critical, full, lightOnly, darkOnly }
790
+ // Result: { full, lightOnly, darkOnly }
708
791
  ```
709
792
 
710
793
  #### `createThemeStylesheet(css, options)`
711
794
 
712
- Creates a `<style>` tag with the provided CSS.
795
+ Creates a `<style>
796
+ @reference "../../.vitepress/theme/main.css";
797
+ ` tag with the provided CSS.
713
798
 
714
799
  ```typescript
715
800
  const styleTag = createThemeStylesheet(css, {
@@ -732,38 +817,107 @@ const styleTag = createThemeStylesheet(css, {
732
817
  - Projects with multiple predefined themes
733
818
  - Applications requiring fine control over CSS loading
734
819
 
735
- ## Generated CSS Variables
736
-
737
- The system automatically generates all necessary variables:
738
-
739
- ### Base Variables
820
+ ## Token Reference
821
+
822
+ Every preset emits the same set of CSS variables on `:root` (and a `.dark` block when `mode: 'both'`). Use these names directly in your own CSS — `var(--maz-primary)`, `calc(var(--maz-space) * 4)`, etc.
823
+
824
+ ### Foundation
825
+
826
+ Single-value design tokens. Set via `foundation.<key>` on the preset.
827
+
828
+ | Preset key | CSS variable | Default | Notes |
829
+ | --- | --- | --- | --- |
830
+ | `base-font-size` | `--maz-base-font-size` | `14px` | Anchors `rem` for the whole app. Apply on `html { font-size: var(--maz-base-font-size) }`. |
831
+ | `border-width` | `--maz-border-width` | `1px` | Default border for components and the global `*::before/::after` reset. |
832
+ | `space` | `--maz-space` | `0.25rem` | Base step for every Tailwind spacing utility (`maz:p-1`, `maz:gap-2`, …). |
833
+ | `font-family` | `--maz-font-family` | preset-specific | Sans / body font stack. Bridged to Tailwind `--font-sans`. |
834
+ | `font-mono-stack` | `--maz-font-mono-stack` | `ui-monospace, …` | Monospace stack — `MazInputCode`, `<code>`, `<kbd>`. Bridged to `--font-mono`. |
835
+ | `font-display-stack` | `--maz-font-display-stack` | same as `font-family` | Display / heading stack. Bridged to `--font-display`. |
836
+ | `motion-fast` | `--maz-motion-fast` | `100ms` | Bridged to Tailwind `--duration-fast`. |
837
+ | `motion-normal` | `--maz-motion-normal` | `200ms` | Default transition duration (`--default-transition-duration`). |
838
+ | `motion-slow` | `--maz-motion-slow` | `300ms` | Bridged to `--duration-slow`. |
839
+ | `easing-out` | `--maz-easing-out` | `cubic-bezier(0.4, 0, 0.2, 1)` | Default easing (`--ease-out`, also `--default-transition-timing-function`). |
840
+ | `easing-in` | `--maz-easing-in` | `cubic-bezier(0.4, 0, 1, 1)` | Bridged to `--ease-in`. |
841
+ | `easing-in-out` | `--maz-easing-in-out` | `cubic-bezier(0.4, 0, 0.2, 1)` | Bridged to `--ease-in-out`. |
842
+ | `disabled-opacity` | `--maz-disabled-opacity` | `0.5` | Applied to disabled buttons / inputs. |
843
+ | `disabled-cursor` | `--maz-disabled-cursor` | `not-allowed` | Cursor for disabled interactive elements. |
844
+
845
+ > **Why `font-mono-stack` / `font-display-stack` / `motion-*`?** Under Tailwind v4 `prefix(maz)`, the bridge LHS gets prefixed (`--font-mono` → `--maz-font-mono`), so a same-named source token would self-cycle. The `-stack` and `motion-` suffixes break the collision.
846
+
847
+ ### Colors
848
+
849
+ Defined per mode under `colors.light` / `colors.dark`. Each base color also gets an automatic 50–950 scale.
850
+
851
+ | Preset key | CSS variable (base) | Auto scale | Notes |
852
+ | --- | --- | --- | --- |
853
+ | `surface` | `--maz-surface` | `--maz-surface-50..900` | Page / container background. |
854
+ | `foreground` | `--maz-foreground` | `--maz-foreground-50..900` | Default text color. |
855
+ | `primary` | `--maz-primary` | `--maz-primary-50..900` | Brand color. |
856
+ | `primary-foreground` | `--maz-primary-foreground` | — | Text on `bg-primary`. |
857
+ | `secondary` | `--maz-secondary` | `--maz-secondary-50..900` | |
858
+ | `secondary-foreground` | `--maz-secondary-foreground` | — | |
859
+ | `accent` | `--maz-accent` | `--maz-accent-50..900` | |
860
+ | `accent-foreground` | `--maz-accent-foreground` | — | |
861
+ | `info` | `--maz-info` | `--maz-info-50..900` | Status — informational. |
862
+ | `info-foreground` | `--maz-info-foreground` | — | |
863
+ | `success` | `--maz-success` | `--maz-success-50..900` | Status — success. |
864
+ | `success-foreground` | `--maz-success-foreground` | — | |
865
+ | `warning` | `--maz-warning` | `--maz-warning-50..900` | Status — warning. |
866
+ | `warning-foreground` | `--maz-warning-foreground` | — | |
867
+ | `destructive` | `--maz-destructive` | `--maz-destructive-50..900` | Status — error / danger. |
868
+ | `destructive-foreground` | `--maz-destructive-foreground` | — | |
869
+ | `contrast` | `--maz-contrast` | `--maz-contrast-50..900` | High-contrast accent (light = near-black, dark = near-white). |
870
+ | `contrast-foreground` | `--maz-contrast-foreground` | — | |
871
+ | `divider` | `--maz-divider` | `--maz-divider-50..900` | Default border / separator color. |
872
+ | `muted` | `--maz-muted` | `--maz-muted-50..900` | Muted / secondary text. |
873
+ | `overlay` | `--maz-overlay` | `--maz-overlay-50..900` | Backdrop / dialog scrim. |
874
+ | `shadow` | `--maz-shadow` | `--maz-shadow-50..900` | Tint used by Tailwind `shadow-*` utilities (via `--color-elevation`). |
875
+
876
+ ### Scales
877
+
878
+ Multi-step scales under `scales.<key>`.
879
+
880
+ | Preset key | CSS variables | Tailwind utility |
881
+ | --- | --- | --- |
882
+ | `rounded.xs..3xl` | `--maz-rounded-xs..3xl` | `maz:rounded-{key}` (bridged to `--radius-{key}`) |
883
+ | `shadow.{sm, md, lg, xl, elevation}` | `--maz-shadow-style-{key}` | `maz:shadow-{key}` (bridged to `--shadow-{key}`) |
884
+
885
+ > Same naming-collision avoidance as foundation: `rounded.*` (instead of `radius.*`) and `shadow-style-*` (instead of plain `shadow-*`) keep the bridge cycle-free under `prefix(maz)`.
886
+
887
+ ### Components
888
+
889
+ Per-component knobs under `components.<key>`. All optional — omit to fall back to the surface tokens.
890
+
891
+ | Preset key | CSS variable | Notes |
892
+ | --- | --- | --- |
893
+ | `btn.font-weight` | `--maz-btn-font-weight` | Font-weight on `.m-btn`. Defaults to `'500'`. |
894
+ | `container.bg.light` / `.dark` | `--maz-container-bg` (per mode) | Background of `Card`, `Container`, `Dialog`, `Popover`, `Drawer`, … Defaults to `var(--maz-surface)`. Bridged to `--color-container`. |
895
+ | `input.bg.light` / `.dark` | `--maz-input-bg` (per mode) | Background of `Input`, `Textarea`, `Select`, `Checkbox`, … Defaults to `var(--maz-surface)` light, `var(--maz-surface-400)` dark. Bridged to `--color-input`. |
896
+
897
+ ### Sample output
740
898
 
741
899
  ```css
742
900
  :root {
743
901
  /* Main colors */
744
- --maz-primary: 210 100% 56%;
745
- --maz-primary-foreground: 0 0% 100%;
746
- --maz-secondary: 164 76% 46%;
747
- --maz-background: 0 0% 100%;
748
- --maz-foreground: 210 8% 14%;
749
-
750
- /* Design tokens */
751
- --maz-radius: 0.7rem;
752
- --maz-border-width: 0.063rem;
753
- --maz-font-family: Manrope, sans-serif;
754
- }
755
- ```
756
-
757
- ### Automatic Color Scales
758
-
759
- ```css
760
- :root {
761
- /* Primary scale generated automatically */
762
- --maz-primary-50: 210 100% 95%;
763
- --maz-primary-100: 210 100% 87%;
764
- --maz-primary-200: 210 100% 79%;
765
- /* ... up to 900 */
766
- --maz-primary-900: 210 79% 17%;
902
+ --maz-primary: oklch(0.6495 0.1913 253.63);
903
+ --maz-primary-foreground: oklch(1 0 0);
904
+ --maz-surface: oklch(1 0 0);
905
+ --maz-foreground: oklch(0.2573 0.0068 248.09);
906
+
907
+ /* Foundation */
908
+ --maz-base-font-size: 14px;
909
+ --maz-border-width: 1px;
910
+ --maz-space: 0.25rem;
911
+ --maz-font-family: Manrope, sans-serif, …;
912
+ --maz-motion-normal: 200ms;
913
+
914
+ /* Scales */
915
+ --maz-rounded-md: 0.7rem;
916
+ --maz-shadow-style-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), …;
917
+
918
+ /* Auto-generated 50–950 scale */
919
+ --maz-primary-500: oklch(…);
920
+ /* ... */
767
921
  }
768
922
  ```
769
923
 
@@ -771,7 +925,7 @@ The system automatically generates all necessary variables:
771
925
 
772
926
  ```css
773
927
  .dark {
774
- --maz-background: 235 16% 15%;
928
+ --maz-surface: 235 16% 15%;
775
929
  --maz-foreground: 0 0% 85%;
776
930
  /* Variables automatically adapted */
777
931
  }
@@ -779,394 +933,12 @@ The system automatically generates all necessary variables:
779
933
  /* Or with media query */
780
934
  @media (prefers-color-scheme: dark) {
781
935
  :root {
782
- --maz-background: 235 16% 15%;
936
+ --maz-surface: 235 16% 15%;
783
937
  --maz-foreground: 0 0% 85%;
784
938
  }
785
939
  }
786
940
  ```
787
941
 
788
- ::: details View all generated CSS variables (with maz-ui preset)
789
-
790
- ```css
791
- @layer maz-ui-theme {
792
- :root {
793
- --maz-background: 0 0% 100%;
794
- --maz-foreground: 210 8% 14%;
795
- --maz-primary: 210 100% 56%;
796
- --maz-primary-foreground: 0 0% 100%;
797
- --maz-secondary: 272 99% 54%;
798
- --maz-secondary-foreground: 0 0% 100%;
799
- --maz-accent: 164 76% 46%;
800
- --maz-accent-foreground: 0 0% 100%;
801
- --maz-destructive: 356.95 95.91% 57.73%;
802
- --maz-destructive-foreground: 0 0% 100%;
803
- --maz-success: 80 61% 50%;
804
- --maz-success-foreground: 210 8% 14%;
805
- --maz-warning: 40 97% 59%;
806
- --maz-warning-foreground: 210 8% 14%;
807
- --maz-info: 188 78% 41%;
808
- --maz-info-foreground: 0 0% 100%;
809
- --maz-contrast: 235 16% 15%;
810
- --maz-contrast-foreground: 255 0% 95%;
811
- --maz-muted: 0 0% 54%;
812
- --maz-shadow: 240 5.9% 10%;
813
- --maz-border: 220 13.04% 90.98%;
814
- --maz-radius: 0.7rem;
815
- --maz-font-family: Manrope, sans-serif, system-ui, -apple-system, blinkmacsystemfont, 'Segoe UI', roboto, oxygen, ubuntu, cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
816
- --maz-base-font-size: 14px;
817
- --maz-border-width: 0.0625rem;
818
- }
819
-
820
- .dark {
821
- --maz-background: 235 16% 15%;
822
- --maz-foreground: 0 0% 85%;
823
- --maz-primary: 210 100% 56%;
824
- --maz-primary-foreground: 0 0% 100%;
825
- --maz-secondary: 272 99% 54%;
826
- --maz-secondary-foreground: 0 0% 100%;
827
- --maz-accent: 164 76% 46%;
828
- --maz-accent-foreground: 0 0% 100%;
829
- --maz-destructive: 1 100% 71%;
830
- --maz-destructive-foreground: 0 0% 100%;
831
- --maz-success: 80 61% 50%;
832
- --maz-success-foreground: 210 8% 14%;
833
- --maz-warning: 40 97% 59%;
834
- --maz-warning-foreground: 210 8% 14%;
835
- --maz-info: 188 78% 41%;
836
- --maz-info-foreground: 0 0% 100%;
837
- --maz-contrast: 0 0% 100%;
838
- --maz-contrast-foreground: 210 8% 14%;
839
- --maz-muted: 255 0% 54%;
840
- --maz-shadow: 240 3.7% 15.9%;
841
- --maz-border: 238 17% 25%;
842
- --maz-radius: 0.7rem;
843
- --maz-font-family: Manrope, sans-serif, system-ui, -apple-system, blinkmacsystemfont, 'Segoe UI', roboto, oxygen, ubuntu, cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
844
- --maz-base-font-size: 14px;
845
- --maz-border-width: 0.0625rem;
846
- }
847
- }
848
-
849
- @layer maz-ui-theme {
850
-
851
- :root {
852
- --maz-overlay: 0 0% 40%;
853
- --maz-primary-50: 210 77.5% 93.5%;
854
- --maz-primary-100: 210 80% 86%;
855
- --maz-primary-200: 210 85% 78.5%;
856
- --maz-primary-300: 210 90% 71%;
857
- --maz-primary-400: 210 95% 63.5%;
858
- --maz-primary-500: 210 100% 56%;
859
- --maz-primary-600: 210 100% 48.5%;
860
- --maz-primary-700: 210 100% 41%;
861
- --maz-primary-800: 210 100% 33.5%;
862
- --maz-primary-900: 210 100% 26%;
863
- --maz-primary-950: 210 100% 18.5%;
864
- --maz-secondary-50: 272 76.9% 91.5%;
865
- --maz-secondary-100: 272 79.4% 84%;
866
- --maz-secondary-200: 272 84.3% 76.5%;
867
- --maz-secondary-300: 272 89.2% 69%;
868
- --maz-secondary-400: 272 94.1% 61.5%;
869
- --maz-secondary-500: 272 99% 54%;
870
- --maz-secondary-600: 272 100% 46.5%;
871
- --maz-secondary-700: 272 100% 39%;
872
- --maz-secondary-800: 272 100% 31.5%;
873
- --maz-secondary-900: 272 100% 24%;
874
- --maz-secondary-950: 272 100% 16.5%;
875
- --maz-accent-50: 164 63% 83.5%;
876
- --maz-accent-100: 164 64.4% 76%;
877
- --maz-accent-200: 164 67.3% 68.5%;
878
- --maz-accent-300: 164 70.2% 61%;
879
- --maz-accent-400: 164 73.1% 53.5%;
880
- --maz-accent-500: 164 76% 46%;
881
- --maz-accent-600: 164 78.2% 38.5%;
882
- --maz-accent-700: 164 80.3% 31%;
883
- --maz-accent-800: 164 82.5% 23.5%;
884
- --maz-accent-900: 164 84.7% 16%;
885
- --maz-accent-950: 164 85.7% 8.5%;
886
- --maz-destructive-50: 357 75.2% 95.2%;
887
- --maz-destructive-100: 357 77.5% 87.7%;
888
- --maz-destructive-200: 357 82.1% 80.2%;
889
- --maz-destructive-300: 357 86.7% 72.7%;
890
- --maz-destructive-400: 357 91.3% 65.2%;
891
- --maz-destructive-500: 357 95.9% 57.7%;
892
- --maz-destructive-600: 357 99.4% 50.2%;
893
- --maz-destructive-700: 357 100% 42.7%;
894
- --maz-destructive-800: 357 100% 35.2%;
895
- --maz-destructive-900: 357 100% 27.7%;
896
- --maz-destructive-950: 357 100% 20.2%;
897
- --maz-success-50: 80 52.6% 87.5%;
898
- --maz-success-100: 80 53.6% 80%;
899
- --maz-success-200: 80 55.4% 72.5%;
900
- --maz-success-300: 80 57.3% 65%;
901
- --maz-success-400: 80 59.1% 57.5%;
902
- --maz-success-500: 80 61% 50%;
903
- --maz-success-600: 80 62.4% 42.5%;
904
- --maz-success-700: 80 63.8% 35%;
905
- --maz-success-800: 80 65.2% 27.5%;
906
- --maz-success-900: 80 66.6% 20%;
907
- --maz-success-950: 80 67.3% 12.5%;
908
- --maz-warning-50: 40 75.8% 96.5%;
909
- --maz-warning-100: 40 78.2% 89%;
910
- --maz-warning-200: 40 82.9% 81.5%;
911
- --maz-warning-300: 40 87.6% 74%;
912
- --maz-warning-400: 40 92.3% 66.5%;
913
- --maz-warning-500: 40 97% 59%;
914
- --maz-warning-600: 40 100% 51.5%;
915
- --maz-warning-700: 40 100% 44%;
916
- --maz-warning-800: 40 100% 36.5%;
917
- --maz-warning-900: 40 100% 29%;
918
- --maz-warning-950: 40 100% 21.5%;
919
- --maz-info-50: 188 64.3% 78.5%;
920
- --maz-info-100: 188 65.8% 71%;
921
- --maz-info-200: 188 68.9% 63.5%;
922
- --maz-info-300: 188 71.9% 56%;
923
- --maz-info-400: 188 75% 48.5%;
924
- --maz-info-500: 188 78% 41%;
925
- --maz-info-600: 188 80.3% 33.5%;
926
- --maz-info-700: 188 82.6% 26%;
927
- --maz-info-800: 188 84.8% 18.5%;
928
- --maz-info-900: 188 87.1% 11%;
929
- --maz-info-950: 188 88.3% 3.5%;
930
- --maz-contrast-50: 235 15.4% 52.5%;
931
- --maz-contrast-100: 235 15.5% 45%;
932
- --maz-contrast-200: 235 15.6% 37.5%;
933
- --maz-contrast-300: 235 15.7% 30%;
934
- --maz-contrast-400: 235 15.9% 22.5%;
935
- --maz-contrast-500: 235 16% 15%;
936
- --maz-contrast-600: 235 16.1% 7.5%;
937
- --maz-contrast-700: 235 16.2% 0%;
938
- --maz-contrast-800: 235 16.3% 0%;
939
- --maz-contrast-900: 235 16.4% 0%;
940
- --maz-contrast-950: 235 16.4% 0%;
941
- --maz-background-50: 0 5% 100%;
942
- --maz-background-100: 0 5% 100%;
943
- --maz-background-200: 0 5% 100%;
944
- --maz-background-300: 0 5% 100%;
945
- --maz-background-400: 0 5% 100%;
946
- --maz-background-500: 0 0% 100%;
947
- --maz-background-600: 0 5% 92.5%;
948
- --maz-background-700: 0 5% 85%;
949
- --maz-background-800: 0 5% 77.5%;
950
- --maz-background-900: 0 5% 70%;
951
- --maz-background-950: 0 5% 62.5%;
952
- --maz-foreground-50: 210 7.9% 51.5%;
953
- --maz-foreground-100: 210 7.9% 44%;
954
- --maz-foreground-200: 210 7.9% 36.5%;
955
- --maz-foreground-300: 210 7.9% 29%;
956
- --maz-foreground-400: 210 8% 21.5%;
957
- --maz-foreground-500: 210 8% 14%;
958
- --maz-foreground-600: 210 8% 6.5%;
959
- --maz-foreground-700: 210 8% 0%;
960
- --maz-foreground-800: 210 8.1% 0%;
961
- --maz-foreground-900: 210 8.1% 0%;
962
- --maz-foreground-950: 210 8.1% 0%;
963
- --maz-border-50: 220 12.7% 100%;
964
- --maz-border-100: 220 12.7% 100%;
965
- --maz-border-200: 220 12.8% 100%;
966
- --maz-border-300: 220 12.9% 100%;
967
- --maz-border-400: 220 13% 98.5%;
968
- --maz-border-500: 220 13% 91%;
969
- --maz-border-600: 220 13.1% 83.5%;
970
- --maz-border-700: 220 13.2% 76%;
971
- --maz-border-800: 220 13.2% 68.5%;
972
- --maz-border-900: 220 13.3% 61%;
973
- --maz-border-950: 220 13.3% 53.5%;
974
- --maz-muted-50: 0 5% 91.5%;
975
- --maz-muted-100: 0 5% 84%;
976
- --maz-muted-200: 0 5% 76.5%;
977
- --maz-muted-300: 0 5% 69%;
978
- --maz-muted-400: 0 5% 61.5%;
979
- --maz-muted-500: 0 0% 54%;
980
- --maz-muted-600: 0 5% 46.5%;
981
- --maz-muted-700: 0 5% 39%;
982
- --maz-muted-800: 0 5% 31.5%;
983
- --maz-muted-900: 0 5% 24%;
984
- --maz-muted-950: 0 5% 16.5%;
985
- --maz-overlay-50: 0 5% 77.5%;
986
- --maz-overlay-100: 0 5% 70%;
987
- --maz-overlay-200: 0 5% 62.5%;
988
- --maz-overlay-300: 0 5% 55%;
989
- --maz-overlay-400: 0 5% 47.5%;
990
- --maz-overlay-500: 0 0% 40%;
991
- --maz-overlay-600: 0 5% 32.5%;
992
- --maz-overlay-700: 0 5% 25%;
993
- --maz-overlay-800: 0 5% 17.5%;
994
- --maz-overlay-900: 0 5% 10%;
995
- --maz-overlay-950: 0 5% 2.5%;
996
- --maz-shadow-50: 240 5.8% 47.5%;
997
- --maz-shadow-100: 240 5.8% 40%;
998
- --maz-shadow-200: 240 5.8% 32.5%;
999
- --maz-shadow-300: 240 5.9% 25%;
1000
- --maz-shadow-400: 240 5.9% 17.5%;
1001
- --maz-shadow-500: 240 5.9% 10%;
1002
- --maz-shadow-600: 240 5.9% 2.5%;
1003
- --maz-shadow-700: 240 5.9% 0%;
1004
- --maz-shadow-800: 240 5.9% 0%;
1005
- --maz-shadow-900: 240 6% 0%;
1006
- --maz-shadow-950: 240 6% 0%;
1007
- }
1008
-
1009
- .dark {
1010
- --maz-overlay: 0 0% 15%;
1011
- --maz-primary-50: 210 77.5% 93.5%;
1012
- --maz-primary-100: 210 80% 86%;
1013
- --maz-primary-200: 210 85% 78.5%;
1014
- --maz-primary-300: 210 90% 71%;
1015
- --maz-primary-400: 210 95% 63.5%;
1016
- --maz-primary-500: 210 100% 56%;
1017
- --maz-primary-600: 210 100% 48.5%;
1018
- --maz-primary-700: 210 100% 41%;
1019
- --maz-primary-800: 210 100% 33.5%;
1020
- --maz-primary-900: 210 100% 26%;
1021
- --maz-primary-950: 210 100% 18.5%;
1022
- --maz-secondary-50: 272 76.9% 91.5%;
1023
- --maz-secondary-100: 272 79.4% 84%;
1024
- --maz-secondary-200: 272 84.3% 76.5%;
1025
- --maz-secondary-300: 272 89.2% 69%;
1026
- --maz-secondary-400: 272 94.1% 61.5%;
1027
- --maz-secondary-500: 272 99% 54%;
1028
- --maz-secondary-600: 272 100% 46.5%;
1029
- --maz-secondary-700: 272 100% 39%;
1030
- --maz-secondary-800: 272 100% 31.5%;
1031
- --maz-secondary-900: 272 100% 24%;
1032
- --maz-secondary-950: 272 100% 16.5%;
1033
- --maz-accent-50: 164 63% 83.5%;
1034
- --maz-accent-100: 164 64.4% 76%;
1035
- --maz-accent-200: 164 67.3% 68.5%;
1036
- --maz-accent-300: 164 70.2% 61%;
1037
- --maz-accent-400: 164 73.1% 53.5%;
1038
- --maz-accent-500: 164 76% 46%;
1039
- --maz-accent-600: 164 78.2% 38.5%;
1040
- --maz-accent-700: 164 80.3% 31%;
1041
- --maz-accent-800: 164 82.5% 23.5%;
1042
- --maz-accent-900: 164 84.7% 16%;
1043
- --maz-accent-950: 164 85.7% 8.5%;
1044
- --maz-destructive-50: 1 77.5% 100%;
1045
- --maz-destructive-100: 1 80% 100%;
1046
- --maz-destructive-200: 1 85% 93.5%;
1047
- --maz-destructive-300: 1 90% 86%;
1048
- --maz-destructive-400: 1 95% 78.5%;
1049
- --maz-destructive-500: 1 100% 71%;
1050
- --maz-destructive-600: 1 100% 63.5%;
1051
- --maz-destructive-700: 1 100% 56%;
1052
- --maz-destructive-800: 1 100% 48.5%;
1053
- --maz-destructive-900: 1 100% 41%;
1054
- --maz-destructive-950: 1 100% 33.5%;
1055
- --maz-success-50: 80 52.6% 87.5%;
1056
- --maz-success-100: 80 53.6% 80%;
1057
- --maz-success-200: 80 55.4% 72.5%;
1058
- --maz-success-300: 80 57.3% 65%;
1059
- --maz-success-400: 80 59.1% 57.5%;
1060
- --maz-success-500: 80 61% 50%;
1061
- --maz-success-600: 80 62.4% 42.5%;
1062
- --maz-success-700: 80 63.8% 35%;
1063
- --maz-success-800: 80 65.2% 27.5%;
1064
- --maz-success-900: 80 66.6% 20%;
1065
- --maz-success-950: 80 67.3% 12.5%;
1066
- --maz-warning-50: 40 75.8% 96.5%;
1067
- --maz-warning-100: 40 78.2% 89%;
1068
- --maz-warning-200: 40 82.9% 81.5%;
1069
- --maz-warning-300: 40 87.6% 74%;
1070
- --maz-warning-400: 40 92.3% 66.5%;
1071
- --maz-warning-500: 40 97% 59%;
1072
- --maz-warning-600: 40 100% 51.5%;
1073
- --maz-warning-700: 40 100% 44%;
1074
- --maz-warning-800: 40 100% 36.5%;
1075
- --maz-warning-900: 40 100% 29%;
1076
- --maz-warning-950: 40 100% 21.5%;
1077
- --maz-info-50: 188 64.3% 78.5%;
1078
- --maz-info-100: 188 65.8% 71%;
1079
- --maz-info-200: 188 68.9% 63.5%;
1080
- --maz-info-300: 188 71.9% 56%;
1081
- --maz-info-400: 188 75% 48.5%;
1082
- --maz-info-500: 188 78% 41%;
1083
- --maz-info-600: 188 80.3% 33.5%;
1084
- --maz-info-700: 188 82.6% 26%;
1085
- --maz-info-800: 188 84.8% 18.5%;
1086
- --maz-info-900: 188 87.1% 11%;
1087
- --maz-info-950: 188 88.3% 3.5%;
1088
- --maz-contrast-50: 0 5% 100%;
1089
- --maz-contrast-100: 0 5% 100%;
1090
- --maz-contrast-200: 0 5% 100%;
1091
- --maz-contrast-300: 0 5% 100%;
1092
- --maz-contrast-400: 0 5% 100%;
1093
- --maz-contrast-500: 0 0% 100%;
1094
- --maz-contrast-600: 0 5% 92.5%;
1095
- --maz-contrast-700: 0 5% 85%;
1096
- --maz-contrast-800: 0 5% 77.5%;
1097
- --maz-contrast-900: 0 5% 70%;
1098
- --maz-contrast-950: 0 5% 62.5%;
1099
- --maz-background-50: 235 15.4% 52.5%;
1100
- --maz-background-100: 235 15.5% 45%;
1101
- --maz-background-200: 235 15.6% 37.5%;
1102
- --maz-background-300: 235 15.7% 30%;
1103
- --maz-background-400: 235 15.9% 22.5%;
1104
- --maz-background-500: 235 16% 15%;
1105
- --maz-background-600: 235 16.1% 7.5%;
1106
- --maz-background-700: 235 16.2% 0%;
1107
- --maz-background-800: 235 16.3% 0%;
1108
- --maz-background-900: 235 16.4% 0%;
1109
- --maz-background-950: 235 16.4% 0%;
1110
- --maz-foreground-50: 0 5% 100%;
1111
- --maz-foreground-100: 0 5% 100%;
1112
- --maz-foreground-200: 0 5% 100%;
1113
- --maz-foreground-300: 0 5% 100%;
1114
- --maz-foreground-400: 0 5% 92.5%;
1115
- --maz-foreground-500: 0 0% 85%;
1116
- --maz-foreground-600: 0 5% 77.5%;
1117
- --maz-foreground-700: 0 5% 70%;
1118
- --maz-foreground-800: 0 5% 62.5%;
1119
- --maz-foreground-900: 0 5% 55%;
1120
- --maz-foreground-950: 0 5% 47.5%;
1121
- --maz-border-50: 238 16.3% 62.5%;
1122
- --maz-border-100: 238 16.4% 55%;
1123
- --maz-border-200: 238 16.6% 47.5%;
1124
- --maz-border-300: 238 16.7% 40%;
1125
- --maz-border-400: 238 16.9% 32.5%;
1126
- --maz-border-500: 238 17% 25%;
1127
- --maz-border-600: 238 17.1% 17.5%;
1128
- --maz-border-700: 238 17.2% 10%;
1129
- --maz-border-800: 238 17.3% 2.5%;
1130
- --maz-border-900: 238 17.4% 0%;
1131
- --maz-border-950: 238 17.5% 0%;
1132
- --maz-muted-50: 255 5% 91.5%;
1133
- --maz-muted-100: 255 5% 84%;
1134
- --maz-muted-200: 255 5% 76.5%;
1135
- --maz-muted-300: 255 5% 69%;
1136
- --maz-muted-400: 255 5% 61.5%;
1137
- --maz-muted-500: 255 0% 54%;
1138
- --maz-muted-600: 255 5% 46.5%;
1139
- --maz-muted-700: 255 5% 39%;
1140
- --maz-muted-800: 255 5% 31.5%;
1141
- --maz-muted-900: 255 5% 24%;
1142
- --maz-muted-950: 255 5% 16.5%;
1143
- --maz-overlay-50: 0 5% 52.5%;
1144
- --maz-overlay-100: 0 5% 45%;
1145
- --maz-overlay-200: 0 5% 37.5%;
1146
- --maz-overlay-300: 0 5% 30%;
1147
- --maz-overlay-400: 0 5% 22.5%;
1148
- --maz-overlay-500: 0 0% 15%;
1149
- --maz-overlay-600: 0 5% 7.5%;
1150
- --maz-overlay-700: 0 5% 0%;
1151
- --maz-overlay-800: 0 5% 0%;
1152
- --maz-overlay-900: 0 5% 0%;
1153
- --maz-overlay-950: 0 5% 0%;
1154
- --maz-shadow-50: 240 5% 53.4%;
1155
- --maz-shadow-100: 240 5% 45.9%;
1156
- --maz-shadow-200: 240 5% 38.4%;
1157
- --maz-shadow-300: 240 5% 30.9%;
1158
- --maz-shadow-400: 240 5% 23.4%;
1159
- --maz-shadow-500: 240 3.7% 15.9%;
1160
- --maz-shadow-600: 240 5% 8.4%;
1161
- --maz-shadow-700: 240 5% 0.9%;
1162
- --maz-shadow-800: 240 5% 0%;
1163
- --maz-shadow-900: 240 5% 0%;
1164
- --maz-shadow-950: 240 5% 0%;
1165
- }
1166
- }
1167
- ```
1168
-
1169
- :::
1170
942
 
1171
943
  ## Usage with Nuxt
1172
944
 
@@ -1265,11 +1037,12 @@ function resetTheme() {
1265
1037
  </script>
1266
1038
 
1267
1039
  <style scoped>
1040
+ @reference "../../.vitepress/theme/main.css";
1268
1041
  .demo-theme-controls {
1269
- @apply maz-w-full;
1042
+ @apply maz:w-full;
1270
1043
  }
1271
1044
 
1272
1045
  .theme-controls {
1273
- @apply maz-border-t maz-border-divider maz-pt-4;
1046
+ @apply maz:border-t maz:border-divider maz:pt-4;
1274
1047
  }
1275
1048
  </style>