UNPKG

maz-ui

Version:

A standalone components library for Vue.Js 3 & Nuxt.Js 3

211 lines (158 loc) โ€ข 6.12 kB
<div align="center"> <img src="https://maz-ui.com/img/logo.svg" alt="Maz UI Logo" width="100"> <h1>Maz UI</h1> <p> <strong> Lightweight and efficient library for Vue & Nuxt </strong> </p> </div> <p align="center"> <a href="https://vuejs.org"><img src="https://img.shields.io/badge/vue-3-42b983.svg" alt="vue badge"></a> <a href="https://nuxt.com/"><img src="https://img.shields.io/badge/nuxt-4-42b983.svg" alt="nuxt badge"></a> <a href="https://nuxt.com/"><img src="https://img.shields.io/badge/nuxt-3-42b983.svg" alt="nuxt badge"></a> <a href="https://www.npmjs.com/package/maz-ui"><img src="https://img.shields.io/npm/v/maz-ui/latest.svg" alt="npm"></a> <a href="https://www.npmjs.com/package/maz-ui"><img src="https://badgen.net/npm/types/maz-ui" alt="types"></a> <a href="https://npm-stat.com/charts.html?package=maz-ui"><img src="https://badgen.net/npm/dm/maz-ui" alt="Downloads"></a> </p> <p align="center"> <!-- <a href="https://codecov.io/github/LouisMazel/maz-ui" > <img src="https://codecov.io/github/LouisMazel/maz-ui/branch/master/graph/bundle/lib-esm/badge.svg" alt="Coverage"/> </a> --> <a href="https://codecov.io/github/LouisMazel/maz-ui" > <img src="https://codecov.io/github/LouisMazel/maz-ui/branch/master/graph/badge.svg?token=C6WEHHD8T9" alt="Coverage"/> </a> <a href="https://github.com/LouisMazel/maz-ui/actions/workflows/lib-test-unit.yml"> <img src="https://github.com/LouisMazel/maz-ui/actions/workflows/lib-test-unit.yml/badge.svg" alt="github actions test unit"> </a> </p> <h3 align="center"> <a href="https://maz-ui.com">Documentation</a> <span> ยท </span> <a href="https://maz-ui.com/guide/getting-started">Getting Started</a> <span> ยท </span> <a href="https://maz-ui.com/made-with-maz-ui">Showcase</a> </h3> <p align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://maz-ui.com/img/demo/dashboard-dark.png"> <img src="https://maz-ui.com/img/demo/dashboard-light.png" alt="Maz UI Demo Dashboard" width="100%" style="border-radius: 1rem;"> </picture> <br> <sub><i>Example of a dashboard built with Maz UI components</i></sub> </p> ## โœจ 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 ```bash npm install maz-ui ``` ### Vue ```ts // 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: ```vue <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](https://maz-ui.com/guide/getting-started#recommendations) ### 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](https://maz-ui.com/guide/nuxt) ```ts // 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. ```vue <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: ```bash # 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](https://maz-ui.com/guide/themes) in our documentation. ## ๐Ÿงฐ What's included? - ๐Ÿงฉ [Components](https://maz-ui.com/components/maz-btn) - Beautiful, accessible UI components - ๐Ÿ”Œ [Plugins](https://maz-ui.com/plugins/dialog) - Powerful plugins for common use cases - ๐ŸŽฃ [Composables](https://maz-ui.com/composables/use-form-validator) - Reusable composition functions - ๐Ÿ“ [Directives](https://maz-ui.com/directives/fullscreen-img) - Useful Vue directives - ๐Ÿ› ๏ธ [Helpers](https://maz-ui.com/helpers/currency) - 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](https://heroicons.com/) set. All icons are optimized as Vue components with full TypeScript support. ### Documentation Please refer to [](https://maz-ui.com/guide/icons) ### Installation ```bash npm install @maz-ui/icons ``` ### Usage Import the icons you need from the package: ```vue <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](./CONTRIBUTING.md) to get started. ## ๐Ÿ“„ License [MIT](./LICENSE) <div align="center"> <sub>Built with โค๏ธ by <a href="https://github.com/LouisMazel">Louis Mazel</a></sub> </div>