Package Exports
- maz-ui
- maz-ui/aos-styles
- maz-ui/components
- maz-ui/components/MazAccordion
- maz-ui/components/MazAnimatedCounter
- maz-ui/components/MazAnimatedElement
- maz-ui/components/MazAnimatedText
- maz-ui/components/MazAvatar
- maz-ui/components/MazBackdrop
- maz-ui/components/MazBadge
- maz-ui/components/MazBottomSheet
- maz-ui/components/MazBtn
- maz-ui/components/MazCard
- maz-ui/components/MazCardSpotlight
- maz-ui/components/MazCarousel
- maz-ui/components/MazChart
- maz-ui/components/MazCheckbox
- maz-ui/components/MazChecklist
- maz-ui/components/MazCircularProgressBar
- maz-ui/components/MazDatePicker
- maz-ui/components/MazDatePicker/MazPickerCalendar
- maz-ui/components/MazDatePicker/MazPickerCalendarMonth/MazPickerCalendarDays
- maz-ui/components/MazDatePicker/MazPickerCalendarMonth/MazPickerCalendarGrid
- maz-ui/components/MazDatePicker/MazPickerCalendarMonth/MazPickerCalendarMonth
- maz-ui/components/MazDatePicker/MazPickerCalendarSwitcher
- maz-ui/components/MazDatePicker/MazPickerContainer
- maz-ui/components/MazDatePicker/MazPickerHeader
- maz-ui/components/MazDatePicker/MazPickerMonthSwitcher
- maz-ui/components/MazDatePicker/MazPickerShortcuts
- maz-ui/components/MazDatePicker/MazPickerTime
- maz-ui/components/MazDatePicker/MazPickerYearSwitcher
- maz-ui/components/MazDialog
- maz-ui/components/MazDialogConfirm
- maz-ui/components/MazDrawer
- maz-ui/components/MazDropdown
- maz-ui/components/MazDropzone
- maz-ui/components/MazExpandAnimation
- maz-ui/components/MazFullscreenLoader
- maz-ui/components/MazGallery
- maz-ui/components/MazIcon
- maz-ui/components/MazInput
- maz-ui/components/MazInputCode
- maz-ui/components/MazInputNumber
- maz-ui/components/MazInputPhoneNumber
- maz-ui/components/MazInputPhoneNumber/PhoneInput
- maz-ui/components/MazInputPrice
- maz-ui/components/MazInputTags
- maz-ui/components/MazLazyImg
- maz-ui/components/MazLink
- maz-ui/components/MazLoadingBar
- maz-ui/components/MazPagination
- maz-ui/components/MazPopover
- maz-ui/components/MazPullToRefresh
- maz-ui/components/MazRadio
- maz-ui/components/MazRadioButtons
- maz-ui/components/MazReadingProgressBar
- maz-ui/components/MazSelect
- maz-ui/components/MazSelectCountry
- maz-ui/components/MazSlider
- maz-ui/components/MazSpinner
- maz-ui/components/MazStepper
- maz-ui/components/MazSwitch
- maz-ui/components/MazTable
- maz-ui/components/MazTableCell
- maz-ui/components/MazTableRow
- maz-ui/components/MazTableTitle
- maz-ui/components/MazTabs
- maz-ui/components/MazTabsBar
- maz-ui/components/MazTabsContent
- maz-ui/components/MazTabsContentItem
- maz-ui/components/MazTextarea
- maz-ui/components/index
- maz-ui/composables
- maz-ui/composables/index
- maz-ui/composables/useAos
- maz-ui/composables/useBreakpoints
- maz-ui/composables/useDialog
- maz-ui/composables/useDisplayNames
- maz-ui/composables/useDropzone
- maz-ui/composables/useFormField
- maz-ui/composables/useFormValidator
- maz-ui/composables/useFormValidator/config
- maz-ui/composables/useFormValidator/dom-events
- maz-ui/composables/useFormValidator/state-management
- maz-ui/composables/useFormValidator/types
- maz-ui/composables/useFormValidator/validation
- maz-ui/composables/useFreezeValue
- maz-ui/composables/useIdleTimeout
- maz-ui/composables/useInjectStrict
- maz-ui/composables/useInstanceUniqId
- maz-ui/composables/useMountComponent
- maz-ui/composables/useMutationObserver
- maz-ui/composables/useReadingTime
- maz-ui/composables/useStringMatching
- maz-ui/composables/useSwipe
- maz-ui/composables/useTimer
- maz-ui/composables/useToast
- maz-ui/composables/useUserVisibility
- maz-ui/composables/useWait
- maz-ui/composables/useWindowSize
- maz-ui/directives
- maz-ui/directives/index
- maz-ui/directives/vClickOutside
- maz-ui/directives/vFullscreenImg
- maz-ui/directives/vFullscreenImg/MazFullscreenImg.vue
- maz-ui/directives/vFullscreenImg/fullscreen-img.directive
- maz-ui/directives/vFullscreenImg/fullscreen-img.handler
- maz-ui/directives/vLazyImg
- maz-ui/directives/vLazyImg/lazy-img.directive
- maz-ui/directives/vLazyImg/lazy-img.handler
- maz-ui/directives/vLazyImg/types
- maz-ui/directives/vTooltip
- maz-ui/directives/vZoomImg
- maz-ui/directives/vZoomImg/style
- maz-ui/directives/vZoomImg/svgs
- maz-ui/directives/vZoomImg/zoom-img.directive
- maz-ui/directives/vZoomImg/zoom-img.handler
- maz-ui/icons
- maz-ui/plugins
- maz-ui/plugins/aos
- maz-ui/plugins/dialog
- maz-ui/plugins/dialog/DialogHandler
- maz-ui/plugins/index
- maz-ui/plugins/maz-ui
- maz-ui/plugins/toast
- maz-ui/plugins/toast/MazToast.vue
- maz-ui/plugins/toast/ToastHandler
- maz-ui/plugins/toast/types
- maz-ui/plugins/wait
- maz-ui/resolvers
- maz-ui/resolvers/MazComponentsResolver
- maz-ui/resolvers/MazDirectivesResolver
- maz-ui/resolvers/MazModulesResolver
- maz-ui/resolvers/index
- maz-ui/styles
- maz-ui/tailwindcss
- maz-ui/tailwindcss/index
- maz-ui/tailwindcss/tailwind.config
- maz-ui/tailwindcss/utils/colors
- maz-ui/tailwindcss/variables/breakpoints
- maz-ui/tailwindcss/variables/colors
- maz-ui/tailwindcss/variables/design-tokens
- maz-ui/tailwindcss/variables/utilities
- maz-ui/tailwindcss/variables/z-indexes
- maz-ui/themes
- maz-ui/translations
Readme
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.