barati-ui

A gorgeous, feature-rich Vue 3 button component library built with Vite and Tailwind CSS
1,210
Install
npm install barati-ui
Latest Version:0.1.7
Vue:3
License:MIT
Last Updated:Sep 23, 2026
Links: npm

@barati/ui

یک کتابخانه کامپوننت Vue 3 ساخته‌شده با Vite + Tailwind CSS. فعلاً شامل یک کامپوننت Button با کلی قابلیت است.

نصب

npm install @barati/ui

نیازمندی: پروژه شما باید vue@3 داشته باشد.

استفاده سریع

استایل‌ها به‌صورت خودکار هنگام import تزریق می‌شوند (نیازی به import جدا نیست):

<script setup>
import { Button } from '@barati/ui'
</script>

<template>
  <Button variant="gradient" size="lg" glow glossy>
    دکمه شگفت‌انگیز ✨
  </Button>
  <Button variant="danger" :badge="7">حذف</Button>
  <Button variant="primary" loading loading-text="در حال ذخیره...">ذخیره</Button>
</template>

روش دوم (اگر خودت می‌خواهی CSS را جدا مدیریت کنی)

import { Button } from '@barati/ui'
import '@barati/ui/style.css'

نصب سراسری کامپوننت

import { createApp } from 'vue'
import BaratiUI from '@barati/ui'

createApp(App).use(BaratiUI).mount('#app')
// حالا <Button> و <CButton> سراسری در دسترس است

مثال‌ها

<!-- لینک -->
<Button href="https://vuejs.org" target="_blank">برو به Vue</Button>

<!-- آیکون (متن/ایموجی یا slot) -->
<Button icon="🚀">شروع</Button>
<Button icon-position="right" icon="➡️">ادامه</Button>
<Button>
  <template #icon>
    <svg ... />
  </template>
  با آیکون SVG
</Button>

<!-- حالت‌ها -->
<Button disabled>غیرفعال</Button>
<Button loading loading-text="لطفاً صبر کنید...">دکمه</Button>
<Button :loading="isSaving">ذخیره</Button>

<!-- بج و نشان -->
<Button variant="info" :badge="count" badge-max="99">اعلان‌ها</Button>
<Button variant="dark" badge-type="dot">نقطه آنلاین</Button>

<!-- افکت‌ها -->
<Button glow>درخشش</Button>
<Button glossy>جلای عبور نور</Button>
<Button lift>بالا می‌آید</Button>
<Button :ripple="true">ریپل آب</Button>

<!-- اندازه و شکل -->
<Button size="xs">XS</Button>
<Button size="2xl">XXL</Button>
<Button rounded="full">کپسولی</Button>
<Button rounded="none">گوشه تیز</Button>

<!-- کل عرض -->
<Button full-width>تمام عرض</Button>

Props

Prop نوع پیش‌فرض توضیح
variant String primary primary, gradient, secondary, dark, outline, ghost, danger, success, warning, info, light, link
size String md xs, sm, md, lg, xl, 2xl
rounded String md none, sm, md, lg, xl, full
loading Boolean false نمایش اسپینر و غیرفعال‌کردن
loading-text String '' متن کنار اسپینر
disabled Boolean false غیرفعال
full-width Boolean false ۱۰۰٪ عرض
uppercase Boolean false حروف بزرگ
lift Boolean false بلند شدن در hover
glow Boolean false هاله نورانی متحرک
glossy Boolean false افکت عبور نور روی دکمه
ripple Boolean true افکت ریپل روی کلیک
press Boolean true کوچک‌شدن هنگام کلیک
icon String '' ایموجی/متن آیکون
icon-position String left left یا right
badge String/Number/null null مقدار بج
badge-max Number 99 نمایش 99+ برای اعداد بزرگ‌تر
badge-type String danger danger, success, info, warning, violet, slate, dot
href String '' اگر داده شود به <a> تبدیل می‌شود
target String '' برای لینک‌ها
rel String '' اگر target=_blank باشد به‌صورت خودکار noopener noreferrer می‌شود
aria-label String '' دسترسی‌پذیری
type String button button, submit, reset
component Object/Function null کامپوننت جایگزین مثلاً RouterLink از vue-router

Slots و Events

نام توضیح
default متن داخل دکمه
icon آیکون سفارشی (ترجیحاً برای SVG)
#click رویداد کلیک (emits: ['click'])

اجرای پروژه به‌صورت محلی (Development)

npm install
npm run dev      # playground دمو
npm run build    # ساخت خروجی نهایی در dist/

تست پکیج قبل از انتشار (npm link)

در پوشه همین پکیج:

npm link

سپس در پروژه دیگر:

npm link @barati/ui

بعدش به‌صورت عادی:

import { Button } from '@barati/ui'

انتشار روی npm

npm login
npm publish --access public

توجه: چون نام پکیج scope شده (@barati/ui) است، برای داخل npm باید با --access public منتشر شود (مگر اینکه حساب سازمانی داشته باشید).

لایسنس

MIT

Related Packages

Version History

Version Released License
0.1.7 MIT
0.1.6 MIT
0.1.5 MIT
0.1.4 MIT
0.1.3 MIT