@maz-ui/mcp 5.0.0 → 5.1.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/README.md +61 -228
- package/bin/maz-ui-mcp.mjs +2 -5
- package/dist/cli.d.mts +7 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.mjs +14 -0
- package/dist/index.d.mts +340 -0
- package/dist/index.d.ts +340 -0
- package/dist/index.mjs +14 -0
- package/dist/shared/mcp.DzqVbCaL.mjs +2346 -0
- package/docs/README.md +207 -0
- package/docs/agents/agents-md.md +52 -0
- package/docs/agents/claude-rule.md +52 -0
- package/docs/components/maz-accordion.md +76 -0
- package/docs/{src/components → components}/maz-alert.md +31 -164
- package/docs/components/maz-animated-counter.md +87 -0
- package/docs/components/maz-animated-element.md +46 -0
- package/docs/components/maz-animated-text.md +53 -0
- package/docs/components/maz-avatar.md +193 -0
- package/docs/components/maz-backdrop.md +178 -0
- package/docs/{src/components → components}/maz-badge.md +26 -67
- package/docs/components/maz-bottom-sheet.md +257 -0
- package/docs/{src/components → components}/maz-btn-group.md +26 -189
- package/docs/{src/components → components}/maz-btn.md +60 -245
- package/docs/components/maz-card-spotlight.md +84 -0
- package/docs/{src/components → components}/maz-card.md +67 -192
- package/docs/components/maz-carousel.md +153 -0
- package/docs/{src/components → components}/maz-chart.md +17 -161
- package/docs/components/maz-checkbox.md +138 -0
- package/docs/components/maz-checklist.md +251 -0
- package/docs/components/maz-circular-progress-bar.md +109 -0
- package/docs/{src/components → components}/maz-code-highlight.md +15 -93
- package/docs/components/maz-container.md +241 -0
- package/docs/{src/components → components}/maz-date-picker.md +85 -454
- package/docs/components/maz-dialog-confirm.md +215 -0
- package/docs/components/maz-dialog.md +143 -0
- package/docs/components/maz-drawer.md +106 -0
- package/docs/components/maz-dropdown.md +419 -0
- package/docs/{src/components → components}/maz-dropzone.md +80 -221
- package/docs/components/maz-expand-animation.md +82 -0
- package/docs/components/maz-fullscreen-loader.md +58 -0
- package/docs/components/maz-gallery.md +79 -0
- package/docs/{src/components → components}/maz-icon.md +32 -83
- package/docs/components/maz-input-code.md +73 -0
- package/docs/components/maz-input-number.md +79 -0
- package/docs/components/maz-input-phone-number.md +536 -0
- package/docs/components/maz-input-price.md +68 -0
- package/docs/components/maz-input-tags.md +112 -0
- package/docs/{src/components → components}/maz-input.md +74 -221
- package/docs/components/maz-lazy-img.md +113 -0
- package/docs/components/maz-link.md +146 -0
- package/docs/components/maz-loading-bar.md +38 -0
- package/docs/{src/components → components}/maz-markdown-editor.md +72 -125
- package/docs/components/maz-pagination.md +82 -0
- package/docs/components/maz-popover.md +794 -0
- package/docs/{src/components → components}/maz-pull-to-refresh.md +59 -45
- package/docs/components/maz-radio-buttons.md +313 -0
- package/docs/components/maz-radio.md +119 -0
- package/docs/{src/components → components}/maz-read-more.md +31 -122
- package/docs/components/maz-reading-progress-bar.md +96 -0
- package/docs/{src/components → components}/maz-select-country.md +80 -340
- package/docs/{src/components → components}/maz-select.md +76 -206
- package/docs/components/maz-sidebar-content.md +25 -0
- package/docs/components/maz-sidebar-footer.md +25 -0
- package/docs/components/maz-sidebar-group.md +27 -0
- package/docs/components/maz-sidebar-header.md +25 -0
- package/docs/components/maz-sidebar-menu-button.md +41 -0
- package/docs/components/maz-sidebar-menu-item.md +25 -0
- package/docs/components/maz-sidebar-menu-sub.md +32 -0
- package/docs/components/maz-sidebar-menu.md +25 -0
- package/docs/components/maz-sidebar-separator.md +21 -0
- package/docs/components/maz-sidebar-trigger.md +25 -0
- package/docs/{src/components → components}/maz-sidebar.md +117 -329
- package/docs/{src/components → components}/maz-skeleton.md +27 -156
- package/docs/{src/components → components}/maz-slider.md +33 -66
- package/docs/components/maz-spinner.md +84 -0
- package/docs/{src/components → components}/maz-stepper.md +43 -185
- package/docs/components/maz-switch.md +86 -0
- package/docs/components/maz-table-cell.md +27 -0
- package/docs/components/maz-table-row.md +28 -0
- package/docs/components/maz-table-title.md +27 -0
- package/docs/components/maz-table-virtualizer.md +31 -0
- package/docs/components/maz-table.md +426 -0
- package/docs/components/maz-tabs-bar.md +43 -0
- package/docs/components/maz-tabs-content-item.md +27 -0
- package/docs/components/maz-tabs-content.md +27 -0
- package/docs/{src/components → components}/maz-tabs.md +89 -126
- package/docs/components/maz-textarea.md +255 -0
- package/docs/components/maz-ticker.md +427 -0
- package/docs/components/maz-timeline.md +304 -0
- package/docs/components/maz-ui-provider.md +26 -0
- package/docs/{src/components → components}/maz-window-mockup.md +38 -105
- package/docs/composables/use-aos.md +41 -0
- package/docs/composables/use-breakpoints.md +42 -0
- package/docs/composables/use-dialog.md +58 -0
- package/docs/{src/composables → composables}/use-display-names.md +12 -59
- package/docs/{src/composables → composables}/use-drag.md +14 -68
- package/docs/{src/composables → composables}/use-form-validator.md +22 -696
- package/docs/{src/composables → composables}/use-idle-timeout.md +13 -97
- package/docs/{src/composables → composables}/use-pull-to-refresh.md +14 -7
- package/docs/{src/composables → composables}/use-reading-time.md +20 -56
- package/docs/composables/use-string-matching.md +41 -0
- package/docs/{src/composables → composables}/use-swipe.md +14 -81
- package/docs/{src/composables → composables}/use-timer.md +12 -38
- package/docs/composables/use-toast.md +50 -0
- package/docs/{src/composables → composables}/use-user-visibility.md +14 -56
- package/docs/composables/use-wait.md +50 -0
- package/docs/composables/use-window-size.md +25 -0
- package/docs/{src/directives → directives}/click-outside.md +13 -99
- package/docs/{src/directives → directives}/fullscreen-img.md +10 -28
- package/docs/{src/directives → directives}/lazy-img.md +14 -49
- package/docs/{src/directives → directives}/tooltip.md +12 -217
- package/docs/{src/directives → directives}/zoom-img.md +11 -38
- package/docs/{src/ecosystem → ecosystem}/eslint-config.md +37 -29
- package/docs/ecosystem/icons/icon-set.md +25 -0
- package/docs/{src/ecosystem → ecosystem}/icons/index.md +22 -16
- package/docs/ecosystem/mcp.md +165 -0
- package/docs/{src/ecosystem → ecosystem}/node/exec-promise.md +12 -6
- package/docs/ecosystem/node/index.md +53 -0
- package/docs/{src/ecosystem → ecosystem}/node/logger.md +12 -6
- package/docs/{src/ecosystem → ecosystem}/node/print-banner.md +12 -4
- package/docs/ecosystem/node/setup-agents.md +102 -0
- package/docs/{src/ecosystem → ecosystem}/nuxt.md +46 -19
- package/docs/{src/ecosystem → ecosystem}/stylelint-config.md +33 -25
- package/docs/{src/ecosystem → ecosystem}/themes.md +72 -235
- package/docs/{src/ecosystem → ecosystem}/translations.md +25 -23
- package/docs/ecosystem/utils/camel-case.md +37 -0
- package/docs/ecosystem/utils/capitalize.md +37 -0
- package/docs/{src/ecosystem → ecosystem}/utils/check-availability.md +14 -8
- package/docs/{src/ecosystem → ecosystem}/utils/cookie.md +18 -12
- package/docs/ecosystem/utils/country-code-to-unicode-flag.md +128 -0
- package/docs/{src/ecosystem → ecosystem}/utils/currency.md +12 -26
- package/docs/{src/ecosystem → ecosystem}/utils/date.md +10 -24
- package/docs/ecosystem/utils/debounce-callback.md +44 -0
- package/docs/{src/ecosystem → ecosystem}/utils/debounce-id.md +14 -8
- package/docs/{src/ecosystem → ecosystem}/utils/debounce.md +14 -8
- package/docs/ecosystem/utils/fetch-locale-ip.md +39 -0
- package/docs/{src/ecosystem → ecosystem}/utils/format-json.md +11 -5
- package/docs/{src/ecosystem → ecosystem}/utils/format-phone-number.md +12 -6
- package/docs/ecosystem/utils/get-browser-locale.md +35 -0
- package/docs/ecosystem/utils/get-country-flag-url.md +67 -0
- package/docs/{src/ecosystem → ecosystem}/utils/get-error-message.md +10 -4
- package/docs/{src/ecosystem → ecosystem}/utils/idle-timeout.md +15 -9
- package/docs/{src/ecosystem → ecosystem}/utils/index.md +10 -13
- package/docs/{src/ecosystem → ecosystem}/utils/is-client.md +11 -5
- package/docs/{src/ecosystem → ecosystem}/utils/is-equal.md +14 -8
- package/docs/{src/ecosystem → ecosystem}/utils/is-ios.md +12 -6
- package/docs/ecosystem/utils/is-server.md +37 -0
- package/docs/ecosystem/utils/is-standalone-mode.md +49 -0
- package/docs/{src/ecosystem → ecosystem}/utils/kebab-case.md +10 -4
- package/docs/{src/ecosystem → ecosystem}/utils/normalize-string.md +10 -4
- package/docs/{src/ecosystem → ecosystem}/utils/number.md +10 -24
- package/docs/{src/ecosystem → ecosystem}/utils/pascal-case.md +11 -5
- package/docs/{src/ecosystem → ecosystem}/utils/prevent-ios-input-zoom.md +14 -8
- package/docs/{src/ecosystem → ecosystem}/utils/script-loader.md +16 -8
- package/docs/{src/ecosystem → ecosystem}/utils/sleep.md +10 -4
- package/docs/{src/ecosystem → ecosystem}/utils/snake-case.md +10 -4
- package/docs/{src/ecosystem → ecosystem}/utils/swipe-handler.md +14 -8
- package/docs/{src/ecosystem → ecosystem}/utils/textarea-autogrow.md +12 -6
- package/docs/{src/ecosystem → ecosystem}/utils/throttle-id.md +13 -7
- package/docs/{src/ecosystem → ecosystem}/utils/throttle.md +14 -8
- package/docs/ecosystem/utils/truthy-filter.md +37 -0
- package/docs/{src/ecosystem → ecosystem}/utils/types/deep-key-of.md +11 -5
- package/docs/{src/ecosystem → ecosystem}/utils/types/deep-partial.md +10 -4
- package/docs/ecosystem/utils/types/deep-required.md +45 -0
- package/docs/ecosystem/utils/types/flatten-object-keys.md +50 -0
- package/docs/{src/ecosystem → ecosystem}/utils/types/generic-instance-type.md +10 -4
- package/docs/{src/ecosystem → ecosystem}/utils/types/infer-maybe-ref.md +10 -4
- package/docs/ecosystem/utils/upper-first.md +38 -0
- package/docs/{src/ecosystem → ecosystem}/utils/user-visibility.md +12 -6
- package/docs/guide/ai-agents.md +237 -0
- package/docs/{src/guide → guide}/browser-support.md +22 -15
- package/docs/{src/guide → guide}/getting-started.md +34 -139
- package/docs/{src/guide → guide}/global-defaults.md +12 -11
- package/docs/{src/guide → guide}/maz-ui-provider.md +17 -16
- package/docs/{src/guide → guide}/migration-v5.md +95 -88
- package/docs/{src/guide → guide}/resolvers.md +33 -100
- package/docs/guide/tailwind.md +483 -0
- package/docs/{src/guide → guide}/vue.md +33 -39
- package/docs/manifest.json +1 -0
- package/docs/{src/plugins → plugins}/aos.md +20 -55
- package/docs/{src/plugins → plugins}/dialog.md +14 -161
- package/docs/plugins/toast.md +221 -0
- package/docs/plugins/wait.md +78 -0
- package/docs/reference/icons.md +46 -0
- package/docs/reference/tailwind-tokens.md +191 -0
- package/docs/rules.md +57 -0
- package/package.json +84 -22
- package/dist/mcp.d.mts +0 -153
- package/dist/mcp.d.ts +0 -153
- package/dist/mcp.mjs +0 -1511
- package/docs/generated-docs/maz-accordion.doc.md +0 -21
- package/docs/generated-docs/maz-alert.doc.md +0 -20
- package/docs/generated-docs/maz-animated-counter.doc.md +0 -17
- package/docs/generated-docs/maz-animated-element.doc.md +0 -14
- package/docs/generated-docs/maz-animated-text.doc.md +0 -17
- package/docs/generated-docs/maz-avatar.doc.md +0 -45
- package/docs/generated-docs/maz-backdrop.doc.md +0 -55
- package/docs/generated-docs/maz-badge.doc.md +0 -16
- package/docs/generated-docs/maz-bottom-sheet.doc.md +0 -24
- package/docs/generated-docs/maz-btn-group.doc.md +0 -20
- package/docs/generated-docs/maz-btn.doc.md +0 -33
- package/docs/generated-docs/maz-card-spotlight.doc.md +0 -16
- package/docs/generated-docs/maz-card.doc.md +0 -39
- package/docs/generated-docs/maz-carousel.doc.md +0 -17
- package/docs/generated-docs/maz-chart.doc.md +0 -10
- package/docs/generated-docs/maz-checkbox.doc.md +0 -33
- package/docs/generated-docs/maz-checklist.doc.md +0 -30
- package/docs/generated-docs/maz-circular-progress-bar.doc.md +0 -27
- package/docs/generated-docs/maz-code-highlight.doc.md +0 -11
- package/docs/generated-docs/maz-container.doc.md +0 -26
- package/docs/generated-docs/maz-date-picker.doc.md +0 -56
- package/docs/generated-docs/maz-dialog-confirm.doc.md +0 -24
- package/docs/generated-docs/maz-dialog.doc.md +0 -22
- package/docs/generated-docs/maz-drawer.doc.md +0 -25
- package/docs/generated-docs/maz-dropdown.doc.md +0 -45
- package/docs/generated-docs/maz-dropzone.doc.md +0 -82
- package/docs/generated-docs/maz-expand-animation.doc.md +0 -12
- package/docs/generated-docs/maz-fullscreen-loader.doc.md +0 -13
- package/docs/generated-docs/maz-gallery.doc.md +0 -17
- package/docs/generated-docs/maz-icon.doc.md +0 -16
- package/docs/generated-docs/maz-input-code.doc.md +0 -25
- package/docs/generated-docs/maz-input-number.doc.md +0 -33
- package/docs/generated-docs/maz-input-phone-number.doc.md +0 -62
- package/docs/generated-docs/maz-input-price.doc.md +0 -26
- package/docs/generated-docs/maz-input-tags.doc.md +0 -24
- package/docs/generated-docs/maz-input.doc.md +0 -54
- package/docs/generated-docs/maz-lazy-img.doc.md +0 -49
- package/docs/generated-docs/maz-link.doc.md +0 -31
- package/docs/generated-docs/maz-loading-bar.doc.md +0 -6
- package/docs/generated-docs/maz-markdown-editor.doc.md +0 -65
- package/docs/generated-docs/maz-pagination.doc.md +0 -21
- package/docs/generated-docs/maz-popover.doc.md +0 -79
- package/docs/generated-docs/maz-pull-to-refresh.doc.md +0 -50
- package/docs/generated-docs/maz-radio-buttons.doc.md +0 -34
- package/docs/generated-docs/maz-radio.doc.md +0 -33
- package/docs/generated-docs/maz-read-more.doc.md +0 -18
- package/docs/generated-docs/maz-reading-progress-bar.doc.md +0 -18
- package/docs/generated-docs/maz-select-country.doc.md +0 -45
- package/docs/generated-docs/maz-select.doc.md +0 -32
- package/docs/generated-docs/maz-sidebar-content.doc.md +0 -5
- package/docs/generated-docs/maz-sidebar-footer.doc.md +0 -5
- package/docs/generated-docs/maz-sidebar-group.doc.md +0 -11
- package/docs/generated-docs/maz-sidebar-header.doc.md +0 -5
- package/docs/generated-docs/maz-sidebar-menu-button.doc.md +0 -27
- package/docs/generated-docs/maz-sidebar-menu-item.doc.md +0 -5
- package/docs/generated-docs/maz-sidebar-menu-sub.doc.md +0 -16
- package/docs/generated-docs/maz-sidebar-menu.doc.md +0 -5
- package/docs/generated-docs/maz-sidebar-separator.doc.md +0 -0
- package/docs/generated-docs/maz-sidebar-trigger.doc.md +0 -5
- package/docs/generated-docs/maz-sidebar.doc.md +0 -36
- package/docs/generated-docs/maz-skeleton.doc.md +0 -12
- package/docs/generated-docs/maz-slider.doc.md +0 -20
- package/docs/generated-docs/maz-spinner.doc.md +0 -6
- package/docs/generated-docs/maz-stepper.doc.md +0 -30
- package/docs/generated-docs/maz-switch.doc.md +0 -31
- package/docs/generated-docs/maz-table-cell.doc.md +0 -5
- package/docs/generated-docs/maz-table-row.doc.md +0 -12
- package/docs/generated-docs/maz-table-title.doc.md +0 -5
- package/docs/generated-docs/maz-table-virtualizer.doc.md +0 -20
- package/docs/generated-docs/maz-table.doc.md +0 -72
- package/docs/generated-docs/maz-tabs-bar.doc.md +0 -29
- package/docs/generated-docs/maz-tabs-content-item.doc.md +0 -11
- package/docs/generated-docs/maz-tabs-content.doc.md +0 -5
- package/docs/generated-docs/maz-tabs.doc.md +0 -20
- package/docs/generated-docs/maz-textarea.doc.md +0 -46
- package/docs/generated-docs/maz-ticker.doc.md +0 -25
- package/docs/generated-docs/maz-timeline.doc.md +0 -32
- package/docs/generated-docs/maz-ui-provider.doc.md +0 -12
- package/docs/generated-docs/maz-window-mockup.doc.md +0 -23
- package/docs/src/blog/v4.md +0 -276
- package/docs/src/blog/v5.md +0 -184
- package/docs/src/changelog.md +0 -7
- package/docs/src/components/index.md +0 -8
- package/docs/src/components/maz-accordion.md +0 -80
- package/docs/src/components/maz-animated-counter.md +0 -124
- package/docs/src/components/maz-animated-element.md +0 -36
- package/docs/src/components/maz-animated-text.md +0 -36
- package/docs/src/components/maz-avatar.md +0 -227
- package/docs/src/components/maz-backdrop.md +0 -250
- package/docs/src/components/maz-bottom-sheet.md +0 -533
- package/docs/src/components/maz-card-spotlight.md +0 -163
- package/docs/src/components/maz-carousel.md +0 -231
- package/docs/src/components/maz-checkbox.md +0 -168
- package/docs/src/components/maz-checklist.md +0 -414
- package/docs/src/components/maz-circular-progress-bar.md +0 -145
- package/docs/src/components/maz-container.md +0 -363
- package/docs/src/components/maz-dialog-confirm.md +0 -240
- package/docs/src/components/maz-dialog.md +0 -164
- package/docs/src/components/maz-drawer.md +0 -181
- package/docs/src/components/maz-dropdown.md +0 -691
- package/docs/src/components/maz-expand-animation.md +0 -99
- package/docs/src/components/maz-fullscreen-loader.md +0 -58
- package/docs/src/components/maz-gallery.md +0 -85
- package/docs/src/components/maz-input-code.md +0 -61
- package/docs/src/components/maz-input-number.md +0 -81
- package/docs/src/components/maz-input-phone-number.md +0 -942
- package/docs/src/components/maz-input-price.md +0 -67
- package/docs/src/components/maz-input-tags.md +0 -114
- package/docs/src/components/maz-lazy-img.md +0 -88
- package/docs/src/components/maz-link.md +0 -178
- package/docs/src/components/maz-loading-bar.md +0 -26
- package/docs/src/components/maz-pagination.md +0 -79
- package/docs/src/components/maz-popover.md +0 -1416
- package/docs/src/components/maz-radio-buttons.md +0 -462
- package/docs/src/components/maz-radio.md +0 -142
- package/docs/src/components/maz-reading-progress-bar.md +0 -74
- package/docs/src/components/maz-spinner.md +0 -93
- package/docs/src/components/maz-switch.md +0 -92
- package/docs/src/components/maz-table.md +0 -732
- package/docs/src/components/maz-textarea.md +0 -400
- package/docs/src/components/maz-ticker.md +0 -692
- package/docs/src/components/maz-timeline.md +0 -478
- package/docs/src/composables/use-aos.md +0 -34
- package/docs/src/composables/use-breakpoints.md +0 -35
- package/docs/src/composables/use-dialog.md +0 -88
- package/docs/src/composables/use-string-matching.md +0 -63
- package/docs/src/composables/use-toast.md +0 -71
- package/docs/src/composables/use-wait.md +0 -62
- package/docs/src/composables/use-window-size.md +0 -18
- package/docs/src/ecosystem/icons/icon-set.md +0 -123
- package/docs/src/ecosystem/mcp.md +0 -210
- package/docs/src/ecosystem/node/index.md +0 -53
- package/docs/src/ecosystem/utils/camel-case.md +0 -31
- package/docs/src/ecosystem/utils/capitalize.md +0 -50
- package/docs/src/ecosystem/utils/country-code-to-unicode-flag.md +0 -213
- package/docs/src/ecosystem/utils/debounce-callback.md +0 -38
- package/docs/src/ecosystem/utils/fetch-locale-ip.md +0 -33
- package/docs/src/ecosystem/utils/get-browser-locale.md +0 -29
- package/docs/src/ecosystem/utils/get-country-flag-url.md +0 -156
- package/docs/src/ecosystem/utils/is-server.md +0 -31
- package/docs/src/ecosystem/utils/is-standalone-mode.md +0 -43
- package/docs/src/ecosystem/utils/truthy-filter.md +0 -31
- package/docs/src/ecosystem/utils/types/deep-required.md +0 -39
- package/docs/src/ecosystem/utils/types/flatten-object-keys.md +0 -44
- package/docs/src/ecosystem/utils/upper-first.md +0 -32
- package/docs/src/guide/cli.md +0 -144
- package/docs/src/guide/migration-v4.md +0 -925
- package/docs/src/guide/tailwind.md +0 -158
- package/docs/src/index.md +0 -603
- package/docs/src/made-with-maz-ui.md +0 -58
- package/docs/src/plugins/toast.md +0 -349
- package/docs/src/plugins/wait.md +0 -109
- package/docs/src/theme-editor.md +0 -21
|
@@ -0,0 +1,483 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Tailwind CSS"
|
|
3
|
+
description: "Use and extend the maz-ui theme in your own Tailwind CSS v4 setup - theme colors, radius, shadows, spacing, breakpoints, custom utilities, dark mode, and how to add your own tokens, fonts, animations and variants."
|
|
4
|
+
package: "maz-ui"
|
|
5
|
+
url: "https://maz-ui.com/guide/tailwind"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Tailwind CSS
|
|
9
|
+
|
|
10
|
+
> Use and extend the maz-ui theme in your own Tailwind CSS v4 setup - theme colors, radius, shadows, spacing, breakpoints, custom utilities, dark mode, and how to add your own tokens, fonts, animations and variants.
|
|
11
|
+
|
|
12
|
+
- Package: `maz-ui`
|
|
13
|
+
- Web: https://maz-ui.com/guide/tailwind
|
|
14
|
+
|
|
15
|
+
**Tip: This page is optional**
|
|
16
|
+
|
|
17
|
+
maz-ui works without Tailwind: install the package, import `maz-ui/style.css` and the components render with the theme preset you chose.
|
|
18
|
+
|
|
19
|
+
This page is for apps that **have their own Tailwind v4 setup** and want their utilities (`bg-primary`, `rounded-md`, `tab-m:flex`...) to follow the active maz-ui theme, preset and color mode.
|
|
20
|
+
|
|
21
|
+
## Setup
|
|
22
|
+
|
|
23
|
+
Add the maz-ui theme right after Tailwind in your Tailwind entry:
|
|
24
|
+
|
|
25
|
+
```css
|
|
26
|
+
/* src/assets/css/main.css (your Tailwind entry) */
|
|
27
|
+
@import 'tailwindcss';
|
|
28
|
+
@import 'maz-ui/tailwindcss/theme.css';
|
|
29
|
+
@import 'maz-ui/tailwindcss/utilities.css';
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
That's it: your utilities now resolve to the active maz-ui theme. Switch presets or color mode at runtime with `useTheme()` and every utility follows, without rebuild.
|
|
33
|
+
|
|
34
|
+
**Prerequisites:** `tailwindcss@^4.2`, `@tailwindcss/vite` or `@tailwindcss/postcss` (or `@nuxtjs/tailwindcss` v7 with Nuxt), and the theme initialized by the `MazUi` plugin or the `@maz-ui/nuxt` module.
|
|
35
|
+
|
|
36
|
+
### Where to import `maz-ui/style.css`
|
|
37
|
+
|
|
38
|
+
`maz-ui/style.css` holds the styles of the components. It declares the same cascade layers as Tailwind (`theme`, `base`, `components`, `utilities`), so it composes with your own Tailwind output.
|
|
39
|
+
|
|
40
|
+
- **Vue**: keep `import 'maz-ui/style.css'` in `main.ts`, before your own CSS (see [Vue guide](./vue.md)).
|
|
41
|
+
- **Nuxt**: the module injects it (`css.injectCss: true`, the default). To control the CSS order yourself, disable the injection and import it first in your Tailwind entry:
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
// nuxt.config.ts
|
|
45
|
+
export default defineNuxtConfig({
|
|
46
|
+
modules: ['@maz-ui/nuxt'],
|
|
47
|
+
css: ['~/assets/css/main.css'],
|
|
48
|
+
mazUi: {
|
|
49
|
+
css: { injectCss: false },
|
|
50
|
+
},
|
|
51
|
+
})
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
```css
|
|
55
|
+
/* app/assets/css/main.css */
|
|
56
|
+
@import 'maz-ui/style.css';
|
|
57
|
+
@import 'tailwindcss';
|
|
58
|
+
@import 'maz-ui/tailwindcss/theme.css';
|
|
59
|
+
@import 'maz-ui/tailwindcss/utilities.css';
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Never use the `maz:` prefix
|
|
63
|
+
|
|
64
|
+
The maz-ui library compiles its own utilities with an internal `prefix(maz)`, and its documentation site does the same. That prefix never applies to your project: in your code, write `bg-primary`, `flex`, `tab-m:grid`, without `maz:`.
|
|
65
|
+
|
|
66
|
+
The utilities used inside the components ship precompiled in `maz-ui/style.css`, prefixed, so they never conflict with yours.
|
|
67
|
+
|
|
68
|
+
### Granular entries
|
|
69
|
+
|
|
70
|
+
`theme.css` imports every module. Import only some of them if you want part of the design system:
|
|
71
|
+
|
|
72
|
+
| Import | Content |
|
|
73
|
+
| --- | --- |
|
|
74
|
+
| `maz-ui/tailwindcss/theme.css` | Everything below except the utilities |
|
|
75
|
+
| `maz-ui/tailwindcss/theme-colors.css` | Colors and their scales |
|
|
76
|
+
| `maz-ui/tailwindcss/theme-components.css` | `bg-container` and `bg-input` surfaces |
|
|
77
|
+
| `maz-ui/tailwindcss/theme-spacing.css` | Spacing scale |
|
|
78
|
+
| `maz-ui/tailwindcss/theme-radius.css` | Border radius scale |
|
|
79
|
+
| `maz-ui/tailwindcss/theme-shadows.css` | Shadow scale |
|
|
80
|
+
| `maz-ui/tailwindcss/theme-breakpoints.css` | `mob-*`, `tab-*`, `lap-*` breakpoints |
|
|
81
|
+
| `maz-ui/tailwindcss/theme-z-index.css` | z-index scale |
|
|
82
|
+
| `maz-ui/tailwindcss/theme-typography.css` | Fonts, border width, durations and easings |
|
|
83
|
+
| `maz-ui/tailwindcss/theme-variants.css` | `dark:` variant wired to the `.dark` class |
|
|
84
|
+
| `maz-ui/tailwindcss/utilities.css` | maz-ui utilities (`flex-center`, `padded-container`...) |
|
|
85
|
+
|
|
86
|
+
## Colors
|
|
87
|
+
|
|
88
|
+
Every theme color works with all the color utilities of Tailwind (`bg-`, `text-`, `border-`, `ring-`, `outline-`, `fill-`, `stroke-`, `divide-`, `from-`/`via-`/`to-`, `decoration-`, `placeholder-`, `accent-`, `caret-`...) and with opacity modifiers (`bg-primary/50`).
|
|
89
|
+
|
|
90
|
+
### Brand and state colors
|
|
91
|
+
|
|
92
|
+
Each one has a paired `-foreground` color for text on top of it, and an 11-step scale from `-50` (light) to `-950` (dark), `-500` being the base color.
|
|
93
|
+
|
|
94
|
+
| Color | Use for |
|
|
95
|
+
| --- | --- |
|
|
96
|
+
| `primary` | Main actions, links, focus |
|
|
97
|
+
| `secondary` | Secondary brand color |
|
|
98
|
+
| `accent` | Highlights |
|
|
99
|
+
| `info` | Informational state |
|
|
100
|
+
| `success` | Success state |
|
|
101
|
+
| `warning` | Warning state |
|
|
102
|
+
| `destructive` | Errors, destructive actions |
|
|
103
|
+
| `contrast` | Neutral high-contrast color (near black in light mode, near white in dark mode) |
|
|
104
|
+
|
|
105
|
+
```html
|
|
106
|
+
<button class="bg-primary text-primary-foreground hover:bg-primary-600">Save</button>
|
|
107
|
+
<p class="rounded-md bg-success-50 p-3 text-success-800">Saved!</p>
|
|
108
|
+
<span class="bg-destructive/10 text-destructive">3 errors</span>
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Tip: Use maz-ui components first**
|
|
112
|
+
|
|
113
|
+
For buttons, alerts and badges, use `MazBtn`, `MazAlert` and `MazBadge`: they already apply these colors. The utilities are for your own layouts and components.
|
|
114
|
+
|
|
115
|
+
### Neutral and surface colors
|
|
116
|
+
|
|
117
|
+
They also have an 11-step scale, but no `-foreground`.
|
|
118
|
+
|
|
119
|
+
| Color | Use for |
|
|
120
|
+
| --- | --- |
|
|
121
|
+
| `surface` | Page and container backgrounds |
|
|
122
|
+
| `foreground` | Body text |
|
|
123
|
+
| `muted` | Secondary text, placeholders, disabled content |
|
|
124
|
+
| `divider` | Borders and separators |
|
|
125
|
+
| `overlay` | Backdrops behind dialogs (`bg-overlay/60`) |
|
|
126
|
+
| `shadow` | Shadow tint (`shadow-shadow/20`) |
|
|
127
|
+
|
|
128
|
+
```html
|
|
129
|
+
<main class="bg-surface text-foreground">
|
|
130
|
+
<p class="text-muted">Last updated 3 days ago</p>
|
|
131
|
+
<hr class="border-divider">
|
|
132
|
+
</main>
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Component surfaces
|
|
136
|
+
|
|
137
|
+
Two colors follow the `components` block of the preset, to match the maz-ui components in your own ones:
|
|
138
|
+
|
|
139
|
+
- `bg-container`: background of `MazCard`, `MazContainer`, `MazDialog`, `MazPopover`, `MazDrawer`...
|
|
140
|
+
- `bg-input`: background of `MazInput`, `MazSelect`, `MazTextarea`... (different from the surface in dark mode by default)
|
|
141
|
+
|
|
142
|
+
### Light and dark modes
|
|
143
|
+
|
|
144
|
+
Theme colors are resolved with `light-dark()`: the same class gives the right color in both modes. **Do not add `dark:` overrides for theme colors**: `bg-surface dark:bg-gray-900` is wrong, `bg-surface` is enough. Keep the `dark:` variant for real differences (an illustration, a different layout).
|
|
145
|
+
|
|
146
|
+
**Warning: Avoid the default Tailwind palette**
|
|
147
|
+
|
|
148
|
+
`bg-blue-500`, `text-gray-600`, `bg-white`, `text-black` or `bg-[#1d90ff]` ignore the preset and dark mode. Pick the theme color with the same role: `bg-primary`, `text-muted`, `bg-surface`, `text-foreground`. For a brand color missing from the theme, add your own token.
|
|
149
|
+
|
|
150
|
+
## Radius
|
|
151
|
+
|
|
152
|
+
The `rounded-*` scale follows the `scales.rounded` of the preset:
|
|
153
|
+
|
|
154
|
+
| Utility | Value |
|
|
155
|
+
| --- | --- |
|
|
156
|
+
| `rounded-xs` ... `rounded-3xl` | `var(--maz-rounded-{xs..3xl})` |
|
|
157
|
+
| `rounded` | same as `rounded-md` |
|
|
158
|
+
|
|
159
|
+
`rounded-full` and `rounded-none` keep their Tailwind values.
|
|
160
|
+
|
|
161
|
+
## Shadows
|
|
162
|
+
|
|
163
|
+
| Utility | Use for |
|
|
164
|
+
| --- | --- |
|
|
165
|
+
| `shadow-xs`, `shadow-sm`, `shadow-md`, `shadow-lg`, `shadow-xl` | Standard scale, from the preset `scales.shadow` |
|
|
166
|
+
| `shadow-elevation` | Raised surfaces: cards, popovers, menus |
|
|
167
|
+
|
|
168
|
+
## Spacing
|
|
169
|
+
|
|
170
|
+
`--spacing` is bound to the `foundation.space` token of the preset (`0.25rem` by default): `p-4`, `gap-2`, `mt-6`, `w-10`, `inset-1`... are multiples of it and rescale with the preset. Prefer the scale to arbitrary values such as `p-[13px]`.
|
|
171
|
+
|
|
172
|
+
## Breakpoints
|
|
173
|
+
|
|
174
|
+
maz-ui adds mobile-first breakpoints **on top of** the Tailwind ones (`sm:` to `2xl:` keep working):
|
|
175
|
+
|
|
176
|
+
| Variant | Min width | Variant | Min width |
|
|
177
|
+
| --- | --- | --- | --- |
|
|
178
|
+
| `mob-s:` | 320px | `lap-s:` | 1024px |
|
|
179
|
+
| `mob-m:` | 425px | `lap-m:` | 1280px |
|
|
180
|
+
| `mob-l:` | 576px | `lap-l:` | 1366px |
|
|
181
|
+
| `tab-s:` | 640px | `lap-xl:` | 1440px |
|
|
182
|
+
| `tab-m:` | 768px | `lap-2xl:` | 1680px |
|
|
183
|
+
| `tab-l:` | 992px | `lap-3xl:` | 1920px |
|
|
184
|
+
|
|
185
|
+
Prefix them with `max-` for max-width queries: `max-tab-m:hidden`.
|
|
186
|
+
|
|
187
|
+
```html
|
|
188
|
+
<div class="grid gap-4 tab-m:grid-cols-2 lap-m:grid-cols-3">...</div>
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
The same values are available in TypeScript with `import { screens } from 'maz-ui/tailwindcss'` and the [useBreakpoints](../composables/use-breakpoints.md) composable.
|
|
192
|
+
|
|
193
|
+
## Typography and motion
|
|
194
|
+
|
|
195
|
+
| Utility | Source |
|
|
196
|
+
| --- | --- |
|
|
197
|
+
| `font-sans` | `var(--maz-font-family)` (preset `foundation.font-family`) |
|
|
198
|
+
| `font-mono` | `var(--maz-font-mono-stack)` |
|
|
199
|
+
| `font-display` | `var(--maz-font-display-stack)` (headings) |
|
|
200
|
+
| `ease-out`, `ease-in`, `ease-in-out` | `var(--maz-easing-*)` |
|
|
201
|
+
| `duration-(--duration-fast)`, `duration-(--duration-normal)`, `duration-(--duration-slow)` | `var(--maz-motion-*)` |
|
|
202
|
+
|
|
203
|
+
The default border width and the default transition duration and easing follow the preset too. Durations are theme variables, not named utilities: write `transition-colors duration-(--duration-fast)`.
|
|
204
|
+
|
|
205
|
+
## z-index
|
|
206
|
+
|
|
207
|
+
`z-1` to `z-5`, `z-15`, `z-25`, `z-35`, `z-45`, `z-75`, `z-100`, and `z-default-backdrop` (`1050`, the layer of `MazDialog` and the toasts).
|
|
208
|
+
|
|
209
|
+
## maz-ui utilities
|
|
210
|
+
|
|
211
|
+
`maz-ui/tailwindcss/utilities.css` adds:
|
|
212
|
+
|
|
213
|
+
| Utility | Effect |
|
|
214
|
+
| --- | --- |
|
|
215
|
+
| `flex-center` | `align-items: center; justify-content: center` (combine with `flex`) |
|
|
216
|
+
| `padded-container` | Full width with responsive horizontal padding, content centered within `--maz-container-max-width` |
|
|
217
|
+
| `padded-container-no-p` | Same centering without the minimum padding |
|
|
218
|
+
| `cap-f` | Capitalizes the first letter |
|
|
219
|
+
| `disabled-state`, `disabled-opacity`, `disabled-cursor` | The disabled look of the preset |
|
|
220
|
+
| `z-default-backdrop` | `z-index: 1050` |
|
|
221
|
+
|
|
222
|
+
```html
|
|
223
|
+
<section class="padded-container py-12">
|
|
224
|
+
<div class="flex flex-center gap-2">...</div>
|
|
225
|
+
</section>
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### Container width
|
|
229
|
+
|
|
230
|
+
`padded-container` reads CSS variables that you can override:
|
|
231
|
+
|
|
232
|
+
| Variable | Default |
|
|
233
|
+
| --- | --- |
|
|
234
|
+
| `--maz-container-max-width` | `1440px` |
|
|
235
|
+
| `--maz-container-padding-mobile` | `1rem` |
|
|
236
|
+
| `--maz-container-padding-tablet` | `2rem` (from `mob-l`) |
|
|
237
|
+
| `--maz-container-padding-desktop` | `2.5rem` (from `lap-s`) |
|
|
238
|
+
|
|
239
|
+
The content stops growing at `--maz-container-max-width` once the viewport is wider than the max width plus twice the desktop padding. When you change the max width, update that threshold too:
|
|
240
|
+
|
|
241
|
+
```css
|
|
242
|
+
@layer base {
|
|
243
|
+
html {
|
|
244
|
+
--maz-container-max-width: 1024px;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/* 1024px + 2 * 2.5rem */
|
|
248
|
+
@media (width >= 1104px) {
|
|
249
|
+
:root {
|
|
250
|
+
--maz-container-width: var(--maz-container-max-width);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### Vue transitions
|
|
257
|
+
|
|
258
|
+
`maz-ui/style.css` ships transition classes you can reuse with `<Transition name="...">`: `maz-scale-fade`, `maz-scale`, `maz-slide`, `maz-slideinvert`, `maz-slidevnext`, `maz-slidevprev`, `maz-expand`.
|
|
259
|
+
|
|
260
|
+
## Dark mode variant
|
|
261
|
+
|
|
262
|
+
`maz-ui/tailwindcss/theme-variants.css` binds `dark:` to the `.dark` class that `useTheme()` sets on `<html>` (`darkModeStrategy: 'class'`, the default). Adapt it when you change the strategy:
|
|
263
|
+
|
|
264
|
+
```css
|
|
265
|
+
/* darkModeStrategy: 'media' */
|
|
266
|
+
@custom-variant dark (@media (prefers-color-scheme: dark));
|
|
267
|
+
|
|
268
|
+
/* custom darkClass: 'theme-dark' */
|
|
269
|
+
@custom-variant dark (&:where(.theme-dark, .theme-dark *));
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
Toggle the mode with `useTheme()` (`toggleDarkMode()`, `setColorMode('dark' | 'light' | 'auto')`), never by editing the class yourself: see [Theming](../ecosystem/themes.md).
|
|
273
|
+
|
|
274
|
+
## Extending the theme
|
|
275
|
+
|
|
276
|
+
### Brand colors: use a preset
|
|
277
|
+
|
|
278
|
+
Your brand colors, radius, fonts and spacing belong to a theme preset: every maz-ui component **and** every Tailwind utility (`bg-primary`, `rounded-md`, `font-sans`...) then use them, in light and dark modes.
|
|
279
|
+
|
|
280
|
+
```ts
|
|
281
|
+
import { definePreset } from '@maz-ui/themes'
|
|
282
|
+
import { mazUi } from '@maz-ui/themes/presets/mazUi'
|
|
283
|
+
|
|
284
|
+
export const brandPreset = definePreset({
|
|
285
|
+
base: mazUi,
|
|
286
|
+
overrides: {
|
|
287
|
+
name: 'brand',
|
|
288
|
+
foundation: {
|
|
289
|
+
'font-family': 'Archivo, ui-sans-serif, system-ui, sans-serif',
|
|
290
|
+
},
|
|
291
|
+
scales: {
|
|
292
|
+
rounded: { md: '0.5rem' },
|
|
293
|
+
},
|
|
294
|
+
colors: {
|
|
295
|
+
light: { primary: 'oklch(0.62 0.2 255)' },
|
|
296
|
+
dark: { primary: 'oklch(0.72 0.17 255)' },
|
|
297
|
+
},
|
|
298
|
+
},
|
|
299
|
+
})
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
See [Creating custom themes](../ecosystem/themes.md#creating-custom-themes) and the Theme Editor.
|
|
303
|
+
|
|
304
|
+
### Add your own colors
|
|
305
|
+
|
|
306
|
+
For a color outside the maz-ui roles (a chart series, a product category), declare it once in your Tailwind entry. `light-dark()` works because maz-ui sets `color-scheme`:
|
|
307
|
+
|
|
308
|
+
```css
|
|
309
|
+
@theme {
|
|
310
|
+
--color-brand: light-dark(oklch(0.65 0.21 30), oklch(0.75 0.17 30));
|
|
311
|
+
}
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
`bg-brand`, `text-brand/80` and `border-brand` are now available. To base a color on a maz-ui token, use `@theme inline` so the utility reads the variable at runtime:
|
|
315
|
+
|
|
316
|
+
```css
|
|
317
|
+
@theme inline {
|
|
318
|
+
--color-primary-soft: color-mix(in oklab, var(--maz-primary) 15%, transparent);
|
|
319
|
+
}
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
### Fonts
|
|
323
|
+
|
|
324
|
+
The font utilities read the preset (`foundation.font-family`, `font-display-stack`, `font-mono-stack`). You can also override them in your Tailwind entry, after the maz-ui import:
|
|
325
|
+
|
|
326
|
+
```css
|
|
327
|
+
@theme {
|
|
328
|
+
--font-sans: Archivo, ui-sans-serif, system-ui, sans-serif;
|
|
329
|
+
--font-display: 'Barlow Condensed', 'Arial Narrow', sans-serif;
|
|
330
|
+
}
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
**Tip: Nuxt fonts**
|
|
334
|
+
|
|
335
|
+
With `@nuxt/fonts`, write the font family name literally (not only `var(--maz-font-family)`) somewhere in your CSS so the module detects it and self-hosts it.
|
|
336
|
+
|
|
337
|
+
### Animations
|
|
338
|
+
|
|
339
|
+
Declare `--animate-*` tokens and their keyframes, reusing the motion tokens of the theme:
|
|
340
|
+
|
|
341
|
+
```css
|
|
342
|
+
@theme {
|
|
343
|
+
--animate-rise: rise 0.5s var(--maz-easing-out) backwards;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
@keyframes rise {
|
|
347
|
+
from {
|
|
348
|
+
opacity: 0;
|
|
349
|
+
transform: translateY(1rem);
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
```html
|
|
355
|
+
<h1 class="animate-rise">Welcome</h1>
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
### Variants
|
|
359
|
+
|
|
360
|
+
Add your own variants next to the maz-ui ones:
|
|
361
|
+
|
|
362
|
+
```css
|
|
363
|
+
/* short screens (small Android, landscape) */
|
|
364
|
+
@custom-variant short (@media (max-height: 50rem));
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
```html
|
|
368
|
+
<header class="py-8 short:py-3">...</header>
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
### Base styles
|
|
372
|
+
|
|
373
|
+
A typical base layer that applies the theme to the document:
|
|
374
|
+
|
|
375
|
+
```css
|
|
376
|
+
@layer base {
|
|
377
|
+
*,
|
|
378
|
+
::after,
|
|
379
|
+
::before,
|
|
380
|
+
::backdrop,
|
|
381
|
+
::file-selector-button {
|
|
382
|
+
border-color: var(--maz-divider);
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
html {
|
|
386
|
+
font-family: var(--maz-font-family);
|
|
387
|
+
font-size: var(--maz-base-font-size);
|
|
388
|
+
color: var(--maz-foreground);
|
|
389
|
+
background-color: var(--maz-surface);
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
::selection {
|
|
393
|
+
background-color: color-mix(in srgb, var(--maz-primary) 28%, transparent);
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
### Complete example
|
|
399
|
+
|
|
400
|
+
```css
|
|
401
|
+
/* app/assets/css/main.css */
|
|
402
|
+
@import 'maz-ui/style.css';
|
|
403
|
+
@import 'tailwindcss';
|
|
404
|
+
@import 'maz-ui/tailwindcss/theme.css';
|
|
405
|
+
@import 'maz-ui/tailwindcss/utilities.css';
|
|
406
|
+
|
|
407
|
+
@custom-variant short (@media (max-height: 50rem));
|
|
408
|
+
|
|
409
|
+
@theme {
|
|
410
|
+
--font-display: 'Barlow Condensed', 'Arial Narrow', sans-serif;
|
|
411
|
+
--color-brand: light-dark(oklch(0.65 0.21 30), oklch(0.75 0.17 30));
|
|
412
|
+
--animate-rise: rise 0.5s var(--maz-easing-out) backwards;
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
@keyframes rise {
|
|
416
|
+
from {
|
|
417
|
+
opacity: 0;
|
|
418
|
+
transform: translateY(1rem);
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
@layer base {
|
|
423
|
+
html {
|
|
424
|
+
--maz-container-max-width: 1200px;
|
|
425
|
+
|
|
426
|
+
font-family: var(--maz-font-family);
|
|
427
|
+
color: var(--maz-foreground);
|
|
428
|
+
background-color: var(--maz-surface);
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
## Custom CSS
|
|
434
|
+
|
|
435
|
+
In plain CSS or in `<style>` blocks, use the theme variables rather than literal values:
|
|
436
|
+
|
|
437
|
+
```css
|
|
438
|
+
.card {
|
|
439
|
+
padding: calc(var(--maz-space) * 4);
|
|
440
|
+
border: var(--maz-border-width) solid var(--maz-divider);
|
|
441
|
+
border-radius: var(--maz-rounded-md);
|
|
442
|
+
background-color: var(--maz-container-bg, var(--maz-surface));
|
|
443
|
+
box-shadow: var(--maz-shadow-style-elevation);
|
|
444
|
+
color: var(--maz-foreground);
|
|
445
|
+
transition: background-color var(--maz-motion-fast) var(--maz-easing-out);
|
|
446
|
+
}
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
The full list of variables is in the [token reference of the theming guide](../ecosystem/themes.md#token-reference).
|
|
450
|
+
|
|
451
|
+
### `@apply` in Vue SFC `<style>` blocks
|
|
452
|
+
|
|
453
|
+
Tailwind v4 processes each SFC `<style>` block in isolation: a block that uses `@apply` must start with a `@reference` to your Tailwind entry.
|
|
454
|
+
|
|
455
|
+
```vue
|
|
456
|
+
<style scoped>
|
|
457
|
+
@reference "../assets/css/main.css";
|
|
458
|
+
|
|
459
|
+
.card {
|
|
460
|
+
@apply flex gap-4 rounded-md bg-surface p-4 shadow-elevation;
|
|
461
|
+
}
|
|
462
|
+
</style>
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
## AI agents
|
|
466
|
+
|
|
467
|
+
Every class and variable of this page is available to AI coding agents, generated from the sources of the installed version: the `get_theme_tokens` tool of the [maz-ui MCP server](../ecosystem/mcp.md), and `node_modules/maz-ui/docs/reference/tailwind-tokens.md`. See [AI agents](./ai-agents.md).
|
|
468
|
+
|
|
469
|
+
## Migrating from Tailwind v3
|
|
470
|
+
|
|
471
|
+
Run the official upgrade tool first, it handles most of the v3 to v4 transition (renamed utilities, `tailwind.config.js` to CSS-first configuration):
|
|
472
|
+
|
|
473
|
+
```bash
|
|
474
|
+
npx @tailwindcss/upgrade
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
Then apply the maz-ui specific changes of the [v4 to v5 migration guide](./migration-v5.md#advanced-you-had-your-own-tailwind-setup).
|
|
478
|
+
|
|
479
|
+
## See also
|
|
480
|
+
|
|
481
|
+
- [Theming](../ecosystem/themes.md): presets, color modes, runtime switching
|
|
482
|
+
- [Migration v4 to v5](./migration-v5.md)
|
|
483
|
+
- [Browser support](./browser-support.md): minimum versions required by Tailwind v4
|
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Install maz-ui with Vue
|
|
3
|
-
description: Maz-UI is a Vue.js UI library that provides a set of pre-built components, plugins, directives and utilities to help you build modern, responsive, and accessible web applications.
|
|
2
|
+
title: "Install maz-ui with Vue"
|
|
3
|
+
description: "Maz-UI is a Vue.js UI library that provides a set of pre-built components, plugins, directives and utilities to help you build modern, responsive, and accessible web applications."
|
|
4
|
+
package: "maz-ui"
|
|
5
|
+
url: "https://maz-ui.com/guide/vue"
|
|
4
6
|
---
|
|
5
7
|
|
|
6
|
-
#
|
|
8
|
+
# Install maz-ui with Vue
|
|
7
9
|
|
|
8
|
-
|
|
10
|
+
> Maz-UI is a Vue.js UI library that provides a set of pre-built components, plugins, directives and utilities to help you build modern, responsive, and accessible web applications.
|
|
9
11
|
|
|
10
|
-
|
|
12
|
+
- Package: `maz-ui`
|
|
13
|
+
- Web: https://maz-ui.com/guide/vue
|
|
11
14
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
Check out the documentation of [@maz-ui/mcp](./mcp.md)
|
|
15
|
+
**Tip: Model Context Protocol (MCP)**
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
A MCP server is available to connect your IA agents to the documentation and implement Maz-UI easily.
|
|
17
18
|
|
|
18
|
-
|
|
19
|
+
Check out the documentation of [@maz-ui/mcp](../ecosystem/mcp.md)
|
|
19
20
|
|
|
20
|
-
|
|
21
|
+
## Quick Start
|
|
21
22
|
|
|
22
|
-
|
|
23
|
+
### Installation
|
|
23
24
|
|
|
24
25
|
```bash [pnpm]
|
|
25
26
|
pnpm add maz-ui @maz-ui/themes
|
|
@@ -33,8 +34,6 @@ npm install maz-ui @maz-ui/themes
|
|
|
33
34
|
yarn add maz-ui @maz-ui/themes
|
|
34
35
|
```
|
|
35
36
|
|
|
36
|
-
:::
|
|
37
|
-
|
|
38
37
|
### Install plugin
|
|
39
38
|
|
|
40
39
|
```ts
|
|
@@ -55,17 +54,17 @@ app.use(MazUi, {
|
|
|
55
54
|
})
|
|
56
55
|
```
|
|
57
56
|
|
|
58
|
-
|
|
57
|
+
**Tip: Why provide preset and messages?**
|
|
58
|
+
|
|
59
59
|
- **`preset`** -- Providing the theme preset synchronously avoids FOUC (Flash of Unstyled Content). Without it, components render without their CSS variables until the theme loads.
|
|
60
60
|
- **`messages`** -- By default, Maz-UI does not bundle any translations. If you don't provide messages for the current locale, components will briefly show raw translation keys instead of actual text until the async loading completes.
|
|
61
|
-
:::
|
|
62
61
|
|
|
63
62
|
## Advanced Integration
|
|
64
63
|
|
|
65
64
|
You must the MazUi plugin to initialize the theme and translations.
|
|
66
65
|
|
|
67
|
-
- [Theme documentation](
|
|
68
|
-
- [Translations documentation](
|
|
66
|
+
- [Theme documentation](../ecosystem/themes.md)
|
|
67
|
+
- [Translations documentation](../ecosystem/translations.md)
|
|
69
68
|
|
|
70
69
|
```typescript
|
|
71
70
|
import { MazUi } from 'maz-ui/plugins/maz-ui'
|
|
@@ -117,9 +116,9 @@ app.use(MazUi, {
|
|
|
117
116
|
app.mount('#app')
|
|
118
117
|
```
|
|
119
118
|
|
|
120
|
-
|
|
119
|
+
**Tip: Alternative: MazUiProvider**
|
|
120
|
+
|
|
121
121
|
If Maz-UI is only used on specific pages, you can use the [`MazUiProvider`](./maz-ui-provider.md) component instead of the plugin to keep Maz-UI out of your entry bundle.
|
|
122
|
-
:::
|
|
123
122
|
|
|
124
123
|
## Using your first component
|
|
125
124
|
|
|
@@ -143,35 +142,33 @@ function handleClick() {
|
|
|
143
142
|
|
|
144
143
|
## Theming
|
|
145
144
|
|
|
146
|
-
More information in the [theme documentation](
|
|
145
|
+
More information in the [theme documentation](../ecosystem/themes.md).
|
|
147
146
|
|
|
148
147
|
## Translations
|
|
149
148
|
|
|
150
|
-
More information in the [translations documentation](
|
|
149
|
+
More information in the [translations documentation](../ecosystem/translations.md).
|
|
151
150
|
|
|
152
151
|
## Plugins
|
|
153
152
|
|
|
154
153
|
More information about installation and usage in:
|
|
155
|
-
- [aos](
|
|
156
|
-
- [dialog](
|
|
157
|
-
- [toast](
|
|
158
|
-
- [wait](
|
|
154
|
+
- [aos](../plugins/aos.md) (animations on scroll)
|
|
155
|
+
- [dialog](../plugins/dialog.md) (display modales without any implementation in template)
|
|
156
|
+
- [toast](../plugins/toast.md) (display notifications)
|
|
157
|
+
- [wait](../plugins/wait.md) (display loading states)
|
|
159
158
|
|
|
160
159
|
## Directives
|
|
161
160
|
|
|
162
161
|
More information about installation and usage in:
|
|
163
|
-
- [tooltip](
|
|
164
|
-
- [click-outside](
|
|
165
|
-
- [lazy-img](
|
|
166
|
-
- [zoom-img](
|
|
167
|
-
- [fullscreen-img](
|
|
162
|
+
- [tooltip](../directives/tooltip.md) (display tooltips)
|
|
163
|
+
- [click-outside](../directives/click-outside.md) (detect outside clicks)
|
|
164
|
+
- [lazy-img](../directives/lazy-img.md) (lazy load images)
|
|
165
|
+
- [zoom-img](../directives/zoom-img.md) (zoom images on click)
|
|
166
|
+
- [fullscreen-img](../directives/fullscreen-img.md) (display images fullscreen on click with an animate effect)
|
|
168
167
|
|
|
169
168
|
## Smart Loading with resolvers
|
|
170
169
|
|
|
171
170
|
### Installation
|
|
172
171
|
|
|
173
|
-
::: code-group
|
|
174
|
-
|
|
175
172
|
```bash [pnpm]
|
|
176
173
|
pnpm add unplugin-vue-components unplugin-auto-import
|
|
177
174
|
```
|
|
@@ -184,8 +181,6 @@ npm install unplugin-vue-components unplugin-auto-import
|
|
|
184
181
|
yarn add unplugin-vue-components unplugin-auto-import
|
|
185
182
|
```
|
|
186
183
|
|
|
187
|
-
:::
|
|
188
|
-
|
|
189
184
|
For the ultimate developer experience, use auto-imports for components, composables, and directives.
|
|
190
185
|
|
|
191
186
|
Into your `vite.config.ts`:
|
|
@@ -201,7 +196,6 @@ import {
|
|
|
201
196
|
import AutoImport from 'unplugin-auto-import/vite'
|
|
202
197
|
import Components from 'unplugin-vue-components/vite'
|
|
203
198
|
|
|
204
|
-
|
|
205
199
|
export default defineConfig({
|
|
206
200
|
plugins: [
|
|
207
201
|
vue(),
|
|
@@ -287,6 +281,6 @@ export default defineConfig({
|
|
|
287
281
|
})
|
|
288
282
|
```
|
|
289
283
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
284
|
+
**Note: Complete Resolver Documentation**
|
|
285
|
+
|
|
286
|
+
For comprehensive resolver configuration, advanced options, real-world examples, and troubleshooting, check out our [dedicated resolver guide](./resolvers.md).
|