@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.
- package/dist/mcp.mjs +1 -1
- package/docs/generated-docs/maz-alert.doc.md +1 -1
- package/docs/generated-docs/maz-avatar.doc.md +1 -1
- package/docs/generated-docs/maz-badge.doc.md +8 -8
- package/docs/generated-docs/maz-btn.doc.md +26 -26
- package/docs/generated-docs/maz-card.doc.md +19 -19
- package/docs/generated-docs/maz-chart.doc.md +8 -8
- package/docs/generated-docs/maz-container.doc.md +20 -20
- package/docs/generated-docs/maz-drawer.doc.md +8 -8
- package/docs/generated-docs/maz-dropdown.doc.md +1 -1
- package/docs/generated-docs/maz-dropzone.doc.md +2 -2
- package/docs/generated-docs/maz-gallery.doc.md +15 -15
- package/docs/generated-docs/maz-icon.doc.md +11 -14
- package/docs/generated-docs/maz-input.doc.md +38 -38
- package/docs/generated-docs/maz-lazy-img.doc.md +18 -0
- package/docs/generated-docs/maz-link.doc.md +9 -9
- package/docs/generated-docs/maz-pagination.doc.md +9 -9
- package/docs/generated-docs/maz-popover.doc.md +5 -1
- package/docs/generated-docs/maz-radio-buttons.doc.md +17 -17
- package/docs/generated-docs/maz-select.doc.md +2 -2
- package/docs/generated-docs/maz-skeleton.doc.md +10 -10
- package/docs/generated-docs/maz-table.doc.md +37 -37
- package/docs/generated-docs/maz-textarea.doc.md +1 -1
- package/docs/generated-docs/maz-timeline.doc.md +1 -1
- package/docs/src/blog/v4.md +7 -7
- package/docs/src/blog/v5.md +186 -0
- package/docs/src/components/maz-accordion.md +1 -1
- package/docs/src/components/maz-alert.md +15 -15
- package/docs/src/components/maz-animated-counter.md +4 -4
- package/docs/src/components/maz-avatar.md +2 -2
- package/docs/src/components/maz-backdrop.md +7 -7
- package/docs/src/components/maz-badge.md +16 -30
- package/docs/src/components/maz-bottom-sheet.md +74 -74
- package/docs/src/components/maz-btn-group.md +17 -13
- package/docs/src/components/maz-btn.md +127 -90
- package/docs/src/components/maz-card-spotlight.md +5 -5
- package/docs/src/components/maz-card.md +20 -20
- package/docs/src/components/maz-carousel.md +14 -14
- package/docs/src/components/maz-chart.md +23 -4
- package/docs/src/components/maz-checkbox.md +3 -3
- package/docs/src/components/maz-checklist.md +19 -19
- package/docs/src/components/maz-circular-progress-bar.md +4 -4
- package/docs/src/components/maz-container.md +52 -37
- package/docs/src/components/maz-date-picker.md +7 -7
- package/docs/src/components/maz-dialog-confirm.md +2 -2
- package/docs/src/components/maz-drawer.md +14 -14
- package/docs/src/components/maz-dropdown.md +27 -12
- package/docs/src/components/maz-dropzone.md +6 -6
- package/docs/src/components/maz-expand-animation.md +2 -2
- package/docs/src/components/maz-fullscreen-loader.md +2 -2
- package/docs/src/components/maz-gallery.md +1 -1
- package/docs/src/components/maz-icon.md +113 -60
- package/docs/src/components/maz-input-code.md +1 -1
- package/docs/src/components/maz-input-phone-number.md +89 -88
- package/docs/src/components/maz-input-tags.md +2 -2
- package/docs/src/components/maz-input.md +42 -12
- package/docs/src/components/maz-link.md +28 -10
- package/docs/src/components/maz-pagination.md +2 -2
- package/docs/src/components/maz-popover.md +236 -235
- package/docs/src/components/maz-pull-to-refresh.md +2 -2
- package/docs/src/components/maz-radio-buttons.md +11 -11
- package/docs/src/components/maz-radio.md +3 -3
- package/docs/src/components/maz-read-more.md +7 -7
- package/docs/src/components/maz-select-country.md +26 -26
- package/docs/src/components/maz-select.md +1 -1
- package/docs/src/components/maz-skeleton.md +25 -25
- package/docs/src/components/maz-spinner.md +2 -2
- package/docs/src/components/maz-stepper.md +5 -5
- package/docs/src/components/maz-switch.md +1 -1
- package/docs/src/components/maz-table.md +10 -10
- package/docs/src/components/maz-tabs.md +17 -17
- package/docs/src/components/maz-textarea.md +8 -8
- package/docs/src/components/maz-ticker.md +37 -37
- package/docs/src/components/maz-timeline.md +9 -9
- package/docs/src/composables/use-dialog.md +1 -1
- package/docs/src/composables/use-display-names.md +2 -2
- package/docs/src/composables/use-form-validator.md +35 -35
- package/docs/src/composables/use-idle-timeout.md +3 -3
- package/docs/src/composables/use-reading-time.md +5 -5
- package/docs/src/composables/use-string-matching.md +4 -4
- package/docs/src/composables/use-swipe.md +3 -3
- package/docs/src/composables/use-timer.md +3 -3
- package/docs/src/composables/use-toast.md +1 -1
- package/docs/src/composables/use-user-visibility.md +1 -1
- package/docs/src/composables/use-wait.md +2 -2
- package/docs/src/directives/click-outside.md +17 -17
- package/docs/src/directives/lazy-img.md +5 -5
- package/docs/src/directives/tooltip.md +15 -15
- package/docs/src/directives/zoom-img.md +1 -1
- package/docs/src/ecosystem/eslint-config.md +100 -0
- package/docs/src/ecosystem/stylelint-config.md +190 -0
- package/docs/src/guide/browser-support.md +81 -0
- package/docs/src/guide/getting-started.md +23 -16
- package/docs/src/guide/icon-set.md +13 -13
- package/docs/src/guide/icons.md +35 -8
- package/docs/src/guide/maz-ui-provider.md +6 -6
- package/docs/src/guide/migration-v4.md +3 -3
- package/docs/src/guide/migration-v5.md +662 -0
- package/docs/src/guide/nuxt.md +27 -44
- package/docs/src/guide/resolvers.md +2 -2
- package/docs/src/guide/tailwind.md +154 -0
- package/docs/src/guide/themes.md +258 -485
- package/docs/src/guide/vue.md +8 -5
- package/docs/src/helpers/capitalize.md +4 -4
- package/docs/src/helpers/country-code-to-unicode-flag.md +37 -37
- package/docs/src/helpers/currency.md +4 -4
- package/docs/src/helpers/date.md +4 -4
- package/docs/src/helpers/get-country-flag-url.md +9 -9
- package/docs/src/helpers/number.md +5 -5
- package/docs/src/index.md +304 -246
- package/docs/src/made-with-maz-ui.md +5 -5
- package/docs/src/plugins/aos.md +6 -6
- package/docs/src/plugins/dialog.md +4 -4
- package/docs/src/plugins/toast.md +3 -3
- package/docs/src/plugins/wait.md +1 -1
- package/package.json +5 -5
package/docs/src/guide/themes.md
CHANGED
|
@@ -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
|
|
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** -
|
|
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: '
|
|
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:
|
|
62
|
-
color:
|
|
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
|
|
77
|
+
<div class="maz:bg-surface maz:text-foreground">
|
|
77
78
|
<button
|
|
78
|
-
class="maz-
|
|
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
|
|
101
|
-
<div class="maz
|
|
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
|
|
108
|
-
<div class="maz
|
|
109
|
-
<label class="maz
|
|
110
|
-
<div class="maz
|
|
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
|
|
135
|
-
<label class="maz
|
|
136
|
-
<div class="maz
|
|
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
|
|
183
|
-
<div class="maz
|
|
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
|
|
190
|
-
<div class="maz
|
|
191
|
-
<label class="maz
|
|
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
|
|
215
|
-
<label class="maz
|
|
216
|
-
<div class="maz
|
|
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
|
-
|
|
291
|
-
|
|
292
|
-
### 🚀 Hybrid (Recommended)
|
|
315
|
+
### Nova
|
|
293
316
|
|
|
294
|
-
|
|
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 {
|
|
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
|
-
|
|
323
|
+
## Rendering Strategies
|
|
314
324
|
|
|
315
|
-
|
|
325
|
+
### ⚡ Runtime (Recommended)
|
|
316
326
|
|
|
317
|
-
|
|
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
|
|
368
|
+
<MazBtn @click="resetTheme" color="secondary" class="maz:ms-2">
|
|
360
369
|
Reset
|
|
361
370
|
</MazBtn>
|
|
362
371
|
|
|
363
|
-
<div class="maz
|
|
364
|
-
<p v-if="presetName === 'custom-purple'" class="maz
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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'
|
|
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
|
|
643
|
+
* Or generate per-mode CSS files
|
|
554
644
|
*/
|
|
555
|
-
const {
|
|
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
|
|
615
|
-
const {
|
|
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
|
-
|
|
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: {
|
|
790
|
+
// Result: { full, lightOnly, darkOnly }
|
|
708
791
|
```
|
|
709
792
|
|
|
710
793
|
#### `createThemeStylesheet(css, options)`
|
|
711
794
|
|
|
712
|
-
Creates a `<style
|
|
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
|
-
##
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
###
|
|
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:
|
|
745
|
-
--maz-primary-foreground: 0 0
|
|
746
|
-
--maz-
|
|
747
|
-
--maz-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
--maz-
|
|
752
|
-
--maz-
|
|
753
|
-
--maz-font-family: Manrope, sans-serif
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
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-
|
|
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-
|
|
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
|
|
1042
|
+
@apply maz:w-full;
|
|
1270
1043
|
}
|
|
1271
1044
|
|
|
1272
1045
|
.theme-controls {
|
|
1273
|
-
@apply maz
|
|
1046
|
+
@apply maz:border-t maz:border-divider maz:pt-4;
|
|
1274
1047
|
}
|
|
1275
1048
|
</style>
|