maz-ui

Maz UI
Lightweight and efficient library for Vue & Nuxt
Documentation · Getting Started · Showcase
Example of a dashboard built with Maz UI components
✨ Features
- 🎯 Cherry-pick components - Use only what you need
- 🌙 Dark mode - Built-in dark mode support
- 🎨 Themeable - Easy to customize with CSS variables
- 📱 Responsive - Mobile-first design approach
- 🔧 TypeScript - Full type support included
- ⚡️ Lightweight - Tree-shakeable, no bloat
- 🔍 SSR - Server-side rendering ready
🚀 Quick Start
npm install maz-ui
Vue
// main.ts
import { mazUi } from '@maz-ui/themes/presets'
import { fr } from '@maz-ui/translations'
import { MazUi } from 'maz-ui/plugins/maz-ui'
import 'maz-ui/styles'
const app = createApp(App)
app.use(MazUi, {
theme: {
preset: mazUi,
},
translations: {
messages: {
fr,
},
},
})
💡 Usage
Then, import and use only the components, composables, and more you need:
<script setup lang="ts">
import MazBtn from 'maz-ui/components/MazBtn'
</script>
<template>
<MazBtn>Click me!</MazBtn>
</template>
Use provided resolvers to enjoy auto-imports and TypeScript support: Resolvers documentation
Nuxt
The Nuxt module automatically:
- Imports all components, plugins, composables and directives on-demand (auto-imports)
- Includes required styles
- Provides TypeScript support out of the box
See options and more in the documentation
// nuxt.config.ts
export default defineNuxtConfig({
modules: ['@maz-ui/nuxt'],
})
💡 Usage
No need to import components, plugins, composables or directives, they are all auto-imported.
<script setup lang="ts">
const toast = useToast()
</script>
<template>
<MazBtn @click="toast.success('Hello Maz UI!')">
Click me!
</MazBtn>
</template>
🎨 Theming Made Easy
Customize Maz UI to match your brand with our dedicated CLI tool:
# Install the CLI
npm install -g @maz-ui/cli
# Generate your theme
maz generate-css-vars
The CLI will automatically:
- Generate all color variations
- Create dark mode variables
- Output a ready-to-use CSS file
To know how configure the CLI, check theming options in our documentation.
🧰 What's included?
- 🧩 Components - Beautiful, accessible UI components
- 🔌 Plugins - Powerful plugins for common use cases
- 🎣 Composables - Reusable composition functions
- 📏 Directives - Useful Vue directives
- 🛠️ Helpers - Useful utilities for common tasks
Icons
Maz UI provides a comprehensive set of beautiful icons (300+) ready-to-use for Vue applications, based on the amazing Heroicons set. All icons are optimized as Vue components with full TypeScript support.
Documentation
Installation
npm install @maz-ui/icons
Usage
Import the icons you need from the package:
<script setup>
import { MazArrowTopRightOnSquare, MazCheckCircle, MazXMark } from '@maz-ui/icons'
</script>
<template>
<div>
<CheckCircle class="text-green-500 h-6 w-6" />
<XMark class="text-red-500 h-5 w-5 cursor-pointer" @click="close" />
<ArrowTopRightOnSquare class="text-blue-500 h-4 w-4" />
</div>
</template>
Note: Icons are asynchronous Vue components optimized for tree-shaking. Only imported icons will be included in your final bundle.
🤝 Contributing
We're always looking for contributors! Check out our contribution guide to get started.