@maz-ui/nuxt
| Install | |
|---|---|
npm install @maz-ui/nuxt |
|
| Latest Version: | 5.0.0 |
| Vue: | 3 |
| License: | MIT |
| Last Updated: | Oct 21, 2026 |
| Links: | GitHub · npm |
@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!
What is Maz-UI?
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!
Why Choose Maz-UI for Your Nuxt App?
- 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
Quick Start (2 minutes!)
Step 1: Install the module
# Choose your package manager
npm install @maz-ui/nuxt
# or
pnpm add @maz-ui/nuxt
# or
yarn add @maz-ui/nuxt
Step 2: Add to your Nuxt config
// nuxt.config.ts
export default defineNuxtConfig({
modules: ['@maz-ui/nuxt'],
})
That's it! 🎉 All components, composables, and features are now available in your app!
Step 3: Start using components
<script setup>
// All composables are auto-imported too!
const toast = useToast()
const { isDark, toggleDarkMode } = useTheme()
function showMessage() {
toast.success('Welcome to Maz-UI! 🎉')
}
</script>
<template>
<div>
<!-- All components are auto-imported! -->
<MazBtn color="primary" @click="showMessage">
Click me!
</MazBtn>
<!-- Composables work everywhere -->
<MazCard class="mt-4">
<h2>Welcome to Maz-UI!</h2>
<p>Current theme: {{ isDark ? 'Dark' : 'Light' }}</p>
</MazCard>
<!-- Directives are ready to use -->
<div v-tooltip="'Hello World!'">
Hover me for tooltip
</div>
</div>
</template>
What You Get Out of the Box
50+ Beautiful Components
- Buttons:
MazBtn, - Forms:
MazInput,MazSelect,MazCheckbox,MazRadio,MazTextarea,MazInputPhoneNumber - Overlay:
MazDropdown,MazPopover - Navigation:
MazTabs,MazStepper,MazPagination - Data Display:
MazTable,MazCard,MazBadge,MazAvatar - Media:
MazCarousel,MazGallery,MazLazyImg - Feedback:
MazDialog,MazToast,MazSpinner,MazLoadingBar - Charts:
MazChart(with Chart.js integration) - And 30+ more!
20+ Powerful Composables
useTheme()- Theme management and dark modeuseToast()- Beautiful toast notificationsuseDialog()- Modal dialogs made easyuseAos()- Smooth scroll animationsuseTimer()- Countdown and timer functionalityuseWindowSize()- Reactive window dimensionsuseBreakpoints()- Responsive design helpers- And many more!
Smart Directives
v-tooltip- Beautiful tooltips anywherev-lazy-img- Lazy load images automaticallyv-zoom-img- Click to zoom imagesv-click-outside- Detect outside clicksv-fullscreen-img- Fullscreen image viewer
Theming Made Simple
Maz-UI comes with a powerful theming system that makes your app look professional instantly:
<script setup>
// Switch between built-in themes
const { updateTheme, toggleDarkMode } = useTheme()
async function changeToOceanTheme() {
const { ocean } = await import('@maz-ui/themes')
updateTheme(ocean)
}
</script>
<template>
<div>
<MazBtn @click="toggleDarkMode">
🌙 Toggle Dark Mode
</MazBtn>
<MazBtn @click="changeToOceanTheme">
🌊 Ocean Theme
</MazBtn>
</div>
</template>
Built-in themes: mazUi, ocean, pristine, obsidian + create your own!
Configuration Options
// 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: 'runtime', // 'runtime' | 'buildtime'
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
},
// Global component defaults (instance prop > defaults[Component] > defaults.global > library default)
defaults: {
global: { roundedSize: 'lg' }, // cross-cutting (roundedSize, size)
MazBtn: { roundedSize: 'full' }, // per-component, wins over global
MazCard: { bordered: false, elevation: true },
},
// 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,
},
},
})
Advanced Features
Custom Theme Creation
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
},
},
})
// nuxt.config.ts
import { myCustomTheme } from './themes/my-theme'
export default defineNuxtConfig({
modules: ['@maz-ui/nuxt'],
mazUi: {
theme: {
preset: myCustomTheme,
},
},
})
SSR/SSG Support
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
Why This Module vs Manual Setup?
| 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 |
Learn More
Contributing
We love contributions! Check out our Contributing Guide.
License
MIT License © 2025 LouisMazel
Built with ❤️ for the Vue.js and Nuxt community
Related Packages
🖌️ A beautiful, customizable, and simple to use component library with Tailwind...
Version History
| Version | Released | License |
|---|---|---|
| 5.0.0 | MIT | |
| 4.9.3 | MIT | |
| 4.9.2 | MIT | |
| 4.9.1 | MIT | |
| 4.9.0 | MIT | |
| 4.8.0 | MIT | |
| 4.7.9 | MIT | |
| 4.7.8 | MIT | |
| 4.7.6 | MIT | |
| 4.7.5 | MIT | |
| 4.7.4 | MIT | |
| 4.7.3 | MIT | |
| 4.7.2 | MIT | |
| 4.7.1 | MIT | |
| 4.7.0 | MIT | |
| 4.6.2 | MIT | |
| 4.6.1 | MIT | |
| 4.6.0 | MIT | |
| 4.5.0 | MIT | |
| 4.4.0 | MIT | |
| 4.3.3 | MIT | |
| 4.3.2 | MIT | |
| 4.3.1 | MIT | |
| 4.3.0 | MIT | |
| 4.2.1 | MIT | |
| 4.2.0 | MIT | |
| 4.1.8 | MIT | |
| 4.1.7 | MIT | |
| 4.1.6 | MIT | |
| 4.1.5 | MIT |
Showing the latest 30 of 37. See every release on npm
Pre-releases (141)
| Version | Released | License |
|---|---|---|
| 5.0.0-beta.51 | MIT | |
| 5.0.0-beta.50 | MIT | |
| 5.0.0-beta.49 | MIT | |
| 5.0.0-beta.48 | MIT | |
| 5.0.0-beta.47 | MIT | |
| 5.0.0-beta.46 | MIT | |
| 5.0.0-beta.45 | MIT | |
| 5.0.0-beta.44 | MIT | |
| 5.0.0-beta.42 | MIT | |
| 5.0.0-beta.41 | MIT | |
| 5.0.0-beta.40 | MIT | |
| 5.0.0-beta.39 | MIT | |
| 5.0.0-beta.38 | MIT | |
| 5.0.0-beta.37 | MIT | |
| 5.0.0-beta.36 | MIT | |
| 5.0.0-beta.35 | MIT | |
| 5.0.0-beta.34 | MIT | |
| 5.0.0-beta.33 | MIT | |
| 5.0.0-beta.32 | MIT | |
| 5.0.0-beta.31 | MIT | |
| 5.0.0-beta.30 | MIT | |
| 5.0.0-beta.29 | MIT | |
| 5.0.0-beta.28 | MIT | |
| 5.0.0-beta.27 | MIT | |
| 5.0.0-beta.26 | MIT | |
| 5.0.0-beta.25 | MIT | |
| 5.0.0-beta.24 | MIT | |
| 5.0.0-beta.23 | MIT | |
| 5.0.0-beta.22 | MIT | |
| 5.0.0-beta.21 | MIT |
Showing the latest 30 of 141. See every release on npm