v5.0.0-beta.24
Pre-release🚀 Features
-
⚠️ Maz-ui v5 - theming overhaul, RTL-native components, ~8% lighter (61883c03c)Maz-UI v5 is a focused major: a theming overhaul on top of Tailwind v4, RTL-correct components, a lighter chart, a simpler icon API, and a one-shot CLI to make the upgrade itself painless.
Highlights
- Theming, top to bottom - OKLCh color system for perceptually uniform scales, honest token names (
backgroundtosurface,bordertodivider), a real radius scale, acomponentsblock to override per-component tokens, the newnovapreset, and preset persistence across reloads. - Logical direction by default - every
left/rightprop, slot and CSS hook is nowstart/end. Setdir="rtl"and components mirror correctly. - Lighter chart -
MazChartdropsvue-chartjs, lazy-loadschart.js, and only registers the modules the charttypeactually needs. - Simpler icons - one
iconprop instead of four. New@maz-ui/icons/raw/*subpath for raw SVG inlining without a Vue component. - Standardized sizes -
MazBadgejoins the rest of the library on theMazSizekeyword scale. - ~8% lighter library bundle thanks to the chart, icon and theming refactors.
- Modern browsers required (Chromium 111+, Safari 16.4+, Firefox 128+).
Migration
- Mechanical part:
npx @maz-ui/upgrade ./rewrites your code, bumps everymaz-ui/@maz-ui/*entry inpackage.jsonto^5.0.0, and runs the rightpnpm/yarn/bun/npm installfor you. - Judgment calls (icon paths, theme preset reshape, chart animation default): connect
@maz-ui/mcpto your AI assistant and walk the guide section by section.
Links
Solo maintainer note: v4 will receive no further support after v5 stable - no security fixes, no backports.
- Theming, top to bottom - OKLCh color system for perceptually uniform scales, honest token names (
-
maz-ui: Input fields with top label and assistive text (51c9f6f25)
-
@maz-ui/eslint-config: Add maz/tailwind-no-arbitrary-px rule and maz plugin (2b52d922d)
Ships a new ESLint plugin under the
maz/*namespace, starting withmaz/tailwind-no-arbitrary-pxwhich forbidspxunits inside Tailwind arbitrary value classes (w-[16px],[gap:24px], etc.) and autofixes them torem(orem). The plugin and rule are registered automatically whentailwindcssis enabled indefineConfig. -
@maz-ui/themes: Modernize CSS generator with light-dark, color-scheme, color-mix (#1572)
-
maz-ui: Add MazSidebar component system (#1574)
Fully accessible, composable sidebar system for dashboard, admin, and SaaS applications. New components: MazSidebar (root container with push/overlay modes), MazSidebarHeader/Content/Footer (layout zones), MazSidebarGroup/Separator, MazSidebarMenu/MenuItem, MazSidebarMenuButton, MazSidebarMenuSub (collapsible with keyboard support), and MazSidebarTrigger. Includes useSidebar composable for typed state access. Closes #1573.
-
maz-ui: Add MazCodeHighlight and MazWindowMockup components (#1569)
MazCodeHighlight: Syntax highlighting with shiki, supports code/language/theme props, auto-detects dark/light mode, lazy-loads shiki to keep bundle lean.
MazWindowMockup: macOS-style window mockup with browser (address bar), terminal ($ prompt), and editor (filename tab) variants. Integrates with MazCodeHighlight when code and language props are provided.
-
maz-ui: Improve MazSidebar (a71e0543a)
-
maz-ui: MazSidebar - persistent open/closed state (#1581)
-
maz-ui: MazSidebar - persistent open/closed state on SSR (6839d8276)
-
Move cookie utilities from themes to utils (352083972)
-
docs: Ecosystem documentation (#1582)
-
maz-ui: MazSidebar - add 'hover' collapsible mode (#1586)
-
@maz-ui/themes: MazDialog - configurable max/min-width via preset (#1594)
MazDialogwidth is now driven by the active theme preset via newcomponents.dialogtokens formax-widthandmin-width, while staying overridable per instance.MazDialogreads these as CSS variables with sensible fallbacks. -
maz-ui: Global component default props via MazUi plugin & Nuxt module (#1596)
Set global defaults for component props like
sizeandroundedSizeon MazBtn, MazContainer, MazCard, display components, and form components. Defaults are resolved once at setup and can be overridden per instance.
🩹 Fixes
- Add default condition to exports for CJS resolver fallback (5f6c6f683)
- maz-ui: MazBtn - fix loading layout (b7846572a)
- maz-ui: MazDatePicker - use dayjs ESM instead of CJS (299d06662)
- maz-ui: MazDatePicker tests - align dayjs imports with ESM (e07a7bd15)
- docs: Bundle dayjs for SSR to handle extension-less ESM imports (fc329c286)
- maz-ui: MazTable - scrollable behaviour (6a45701be)
- maz-ui: Inputs - auto-fill with SSR (da00bc2da)
- @maz-ui/themes: Auto color-scheme issue (58faa8e0e)
- @maz-ui/nuxt: Color mode reverts to dark on client navigation (#1587)
💅 Refactors
- maz-ui: MazSwitch - cursor color to be more visible when not active (66f0a16fd)
📦 Build
-
Upgrade dependencies (69a1869b6)
-
Upgrade relizy (a334bf17c)
-
Upgrade dependencies (#1583)
Update pnpm workspace configuration and upgrade major dependencies.
⚠️ Breaking Changes
-
⚠️ Maz-ui v5 - theming overhaul, RTL-native components, ~8% lighterSee Features section for full details on Maz-ui v5 breaking changes, highlights, and migration guide.
❤️ Contributors
- Mazel (@LouisMazel)
- LouisMazel (@LouisMazel)
- Mazel (Loïc Mazuel) (@LouisMazel)