نمودار

chartکامپوننت

نمودار میله‌ای، خطی و اسپارک‌لاین با SVG خالص، با برچسب‌های شمسی، هفته‌ای که از شنبه شروع میشه، تیک‌های فارسی و محور مقدار در سمت راست.

فروش هفتگی (میله‌ای)

۰۱۰ میلیون۲۰ میلیونیدسچپجش

بازدید ۱۰ روز اخیر (خطی)

۰۲۵۰۵۰۰۷۵۰۱ هزار۱۹ شهریور۲۰ شهریور۲۱ شهریور۲۲ شهریور۲۳ شهریور۲۴ شهریور۲۵ شهریور۲۶ شهریور۲۷ شهریور۲۸ شهریور
اسپارک‌لاین:

نصب

  1. با CLI

    اگر هنوز init نکردید، اول از راهنمای نصب پروژه را آماده کنید. بعد این دستور کامپوننت و وابستگی‌هاش را می‌نویسه.

    $ npx vibefarsi add chart
  2. نصب دستی

    محتوای تب «کد» را در components/ui/chart.tsx بگذارید.

    $ npm i lucide-react
    کپی کل فایلregistry json

استفاده

usage.tsx
1import { BarChart, LineChart, Sparkline, jalaliWeekLabels, jalaliDayLabels } from "@/components/ui/chart"23const week = jalaliWeekLabels() // ["ش","ی","د","س","چ","پ","ج"] ending today4<BarChart data={week.map((label, i) => ({ label, value: sales[i] }))} highlight={6} />5<LineChart data={jalaliDayLabels(10).map((label, i) => ({ label, value: visits[i] }))} />6<Sparkline data={[3, 5, 4, 8, 7, 9]} />

پراپ‌ها

پراپنوعپیش‌فرضتوضیح
data{ label: string; value: number }[]-نقطه‌ها. اولی سمت راست رسم میشه.
format(n) => stringcompactFaقالب تیک‌ها، مثل «۱۲ میلیون» و «۸۰۰ هزار».
highlightnumber-شاخص میله‌ی برجسته (مثلاً امروز).
heightnumber180ارتفاع viewBox.

نکته‌های راست‌چین

  • بدون کتابخانه‌ی نمودار، فقط SVG با viewBox و عرض ۱۰۰٪. برای داشبوردهای سنگین همین هندسه را میشه به Recharts منتقل کرد.
  • jalaliWeekLabels از شنبه شروع نمی‌کنه و هفت روز اخیر را با نام روز شمسی برمی‌گردونه. برای هفته‌ی تقویمی ثابت از JALALI_WEEKDAYS_SHORT استفاده کنید.