Nuxt module for Maz-UI
npm install @maz-ui/nuxt⨠The Ultimate Nuxt Module for Beautiful Vue.js Components āØ
Transform your Nuxt application with Maz-UI - a comprehensive Vue.js component library that makes building beautiful interfaces effortless!


Maz-UI is a powerful Vue.js component library with 50+ beautiful components, 20+ useful composables, and smart directives that work perfectly with Nuxt. Think of it as your design system in a box!
- Zero Configuration - Works instantly with sensible defaults
- Beautiful by Default - Professional design with dark mode included
- Everything Auto-Imported - No more import statements needed
- Super Fast - Optimized for performance with tree-shaking
- Developer Friendly - TypeScript support and great DevTools
- Production Ready - Perfect SSR/SSG support
``bash`Choose your package manager
npm install @maz-ui/nuxtor
pnpm add @maz-ui/nuxtor
yarn add @maz-ui/nuxt
`ts`
// nuxt.config.ts
export default defineNuxtConfig({
modules: ['@maz-ui/nuxt'],
})
That's it! š All components, composables, and features are now available in your app!
`vue
Current theme: {{ isDark ? 'Dark' : 'Light' }}
Click me!
Welcome to Maz-UI!
Hover me for tooltip
`
- Buttons: MazBtn,MazInput
- Forms: , MazSelect, MazCheckbox, MazRadio, MazTextarea, MazInputPhoneNumberMazDropdown
- Overlay: , MazPopoverMazTabs
- Navigation: , MazStepper, MazPaginationMazTable
- Data Display: , MazCard, MazBadge, MazAvatarMazCarousel
- Media: , MazGallery, MazLazyImgMazDialog
- Feedback: , MazToast, MazSpinner, MazLoadingBarMazChart
- Charts: (with Chart.js integration)
- And 30+ more!
- useTheme() - Theme management and dark mode
- useToast() - Beautiful toast notifications
- useDialog() - Modal dialogs made easy
- useAos() - Smooth scroll animations
- useTimer() - Countdown and timer functionality
- useWindowSize() - Reactive window dimensions
- useBreakpoints() - Responsive design helpers
- And many more!
- v-tooltip - Beautiful tooltips anywhere
- v-lazy-img - Lazy load images automatically
- v-zoom-img - Click to zoom images
- v-click-outside - Detect outside clicks
- v-fullscreen-img - Fullscreen image viewer
Maz-UI comes with a powerful theming system that makes your app look professional instantly:
`vue
š Toggle Dark Mode
š Ocean Theme
`
Built-in themes: mazUi, ocean, pristine, obsidian + create your own!
`ts
// nuxt.config.ts
export default defineNuxtConfig({
modules: ['@maz-ui/nuxt'],
mazUi: {
// General Settings
general: {
autoImportPrefix: 'Maz', // useMazToast instead of useToast
defaultMazIconPath: '/icons', // Path to your SVG icons
devtools: true, // Enable DevTools integration
},
// Theme System
theme: {
preset: 'ocean', // Choose: 'mazUi', 'ocean', 'pristine', 'obsidian'
strategy: 'hybrid', // 'runtime' | 'buildtime' | 'hybrid'
darkModeStrategy: 'class', // 'class' | 'media' | 'auto'
},
// Translations
translations: {
locale: 'fr', // Default language
fallbackLocale: 'en',
},
// Components (all enabled by default)
components: {
autoImport: true, // Auto-import all components globally
},
// Composables (customize what you need)
composables: {
useTheme: true,
useToast: true,
useDialog: true,
useAos: {
injectCss: true, // Include AOS animations CSS
router: true, // Re-trigger on route change
},
// ... all others enabled by default
},
// Directives
directives: {
vTooltip: true,
vLazyImg: { threshold: 0.1 }, // Custom intersection threshold
vClickOutside: true,
vFullscreenImg: true,
vZoomImg: true,
},
},
})
`
`ts`
import { definePreset } from '@maz-ui/themes'
// themes/my-theme.ts
export const myCustomTheme = definePreset({
base: 'maz-ui',
overrides: {
colors: {
primary: '350 100% 50%',
secondary: '350 14% 96%',
background: '0 0% 100%',
// ... more colors
},
},
})
`ts
// nuxt.config.ts
import { myCustomTheme } from './themes/my-theme'
export default defineNuxtConfig({
modules: ['@maz-ui/nuxt'],
mazUi: {
theme: {
preset: myCustomTheme,
},
},
})
`
This module is built specifically for Nuxt with perfect SSR and SSG support:
- ā
Server-Side Rendering - Components render perfectly on the server
- ā
Static Site Generation - Works great with nuxt generate`
- ā
Hydration - Smooth client-side takeover
- ā
Theme Persistence - Dark mode preference remembered
- ā
No FOUC - Flash of unstyled content prevented
| Feature | Manual Setup | @maz-ui/nuxt Module |
| ---------------- | --------------------- | ----------------------------- |
| Setup Time | 30+ minutes | 2 minutes |
| Auto Imports | Manual imports needed | ā
Everything auto-imported |
| SSR Support | Complex configuration | ā
Works out of the box |
| Theme System | Manual CSS management | ā
Automatic theme switching |
| Bundle Size | Full library imported | ā
Tree-shaking optimized |
| DevTools | No integration | ā
Nuxt DevTools support |
| TypeScript | Manual type setup | ā
Perfect TypeScript support |
- Full Documentation
- Report Issues
- Discussions
We love contributions! Check out our Contributing Guide.
MIT License Ā© 2025 LouisMazel
---
Built with ā¤ļø for the Vue.js and Nuxt community