maz-ui
maz-ui

install easily maz-ui library to take advantage of auto-import components, plugins, composables and CSS files.
Maz UI Logo

Maz UI

Lightweight and efficient library for Vue & Nuxt

vue badge nuxt badge nuxt badge npm types Downloads

Coverage github actions test unit

Documentation · Getting Started · Showcase

Maz UI Demo Dashboard
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

Please refer to

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.

📄 License

MIT

Built with ❤️ by Louis Mazel