Chart Presetsv1.0.0

مقایسهٔ مقدارِ چند دسته کنارِ هم. نمونهٔ بالا تعاملی است: روی عددهای هدر بزنید تا سری عوض شود. نوارِ پشتِ میلهٔ زیرِ ماوس (cursor=band) دسته را بی‌آنکه میله را بپوشاند نشان می‌دهد.

ری‌اکت ۱۹ و Next.js با پیاده‌سازی دسترس‌پذیری داخلی دیگویو ۳ با Composition API — هنوز برای این کامپوننت پورت نشدهSvelte ۵ با runes — هنوز برای این کامپوننت پورت نشدهانگولار با signals و دایرکتیوهای standalone — هنوز برای این کامپوننت پورت نشده

این کامپوننت فعلاً برای ۱ فریم‌ورک از ۴ فریم‌ورک آماده است.

نمودار میله‌ای، تعاملی
سه ماهِ گذشته، روزانه؛ روی هر عدد بزنید

این نمونه هنوز برای Vue پورت نشده است؛ آنچه می‌بینید نسخهٔ ری‌اکت است.

این نمونه هنوز برای Svelte پورت نشده است؛ آنچه می‌بینید نسخهٔ ری‌اکت است.

این نمونه هنوز برای Angular پورت نشده است؛ آنچه می‌بینید نسخهٔ ری‌اکت است.

نصب

با CLI اختصاصی digdesign کامپوننت را از رجیستری دیگ نصب کنید؛ وابستگی‌ها و فایل‌ها خودکار اضافه می‌شوند.

پکیج‌منیجر پیش‌فرض Node.jsنصب سریع با لینک سخت و دیسک مشترکYarn نسخهٔ ۲ به بالا (Berry)رانتایم و پکیج‌منیجر Bun
npx digdesign@latest add https://docs.digdesign.ir/r/chart-presets.json
pnpm dlx digdesign@latest add https://docs.digdesign.ir/r/chart-presets.json
yarn dlx digdesign@latest add https://docs.digdesign.ir/r/chart-presets.json
bunx --bun digdesign@latest add https://docs.digdesign.ir/r/chart-presets.json

این کامپوننت هنوز برای Vue پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک در دست کار است.

این کامپوننت هنوز برای Svelte پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک در دست کار است.

این کامپوننت هنوز برای Angular پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک در دست کار است.

استفاده

import { BarChart } from "@/components/ui/chart-presets"

<BarChart
  data={data}
  categoryKey="month"
  series={[{ key: "online", label: "فروشِ آنلاین" }]}
  cursor="band"
/>

این کامپوننت هنوز برای Vue پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک در دست کار است.

این کامپوننت هنوز برای Svelte پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک در دست کار است.

این کامپوننت هنوز برای Angular پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک در دست کار است.

ترکیب اجزا

دسته‌ها از راست شروع می‌شوند و محورِ مقدار سمتِ راست می‌نشیند، چون خواندن از راست است. با horizontal میله‌ها افقی می‌شوند و اولین دسته بالا؛ برای برچسب‌های بلندِ فارسی خواناتر است. labelsInside نامِ دسته را داخلِ خودِ میله می‌برد و جای محور را آزاد می‌کند.

showLabels مقدار را بالای هر میله می‌نویسد؛ در انباشته فقط جمع، روی بالاترین تکه. colorByCategory به هر میله رنگِ خودش را می‌دهد و activeIndex یک میله را با کادرِ خط‌چین برجسته می‌کند (مثلاً ماهِ جاری). مقدارِ منفی خودکار رنگِ --destructive و لبهٔ گردِ پایین می‌گیرد.

برای حالتِ تعاملی، onBarClick اندیس و ردیفِ داده را می‌دهد؛ با آن جزئیاتِ همان دسته را باز کنید.

دسترس‌پذیری

  • مقدارهای مهم را با showLabels روی خودِ میله بنویسید؛ تولتیپ با صفحه‌کلید در دسترس نیست.
  • دکمه‌های هدرِ تعاملی role=tab و aria-selected دارند و با Tab و Enter کار می‌کنند.
  • رنگِ منفی تنها نشانه نباشد: برچسبِ عدد علامتِ منفی را هم نشان می‌دهد.

مرجع API

داده

ویژگینوعپیش‌فرضتوضیح
dataChartRow[]—آرایهٔ ردیف‌ها؛ همان شکلی که از API می‌آید.
categoryKeystring—فیلدی که روی محورِ دسته‌ها می‌نشیند (مثلاً ماه).
series{ key, label?, color?, icon? }[]—فیلدهایی که رسم می‌شوند. color پیش‌فرض --chart-N است؛ icon در تولتیپ می‌نشیند و راهنما را HTML می‌کند.

BarChart

ویژگینوعپیش‌فرضتوضیح
horizontalbooleanfalseمیله‌های افقی؛ اولین دسته بالا.
stackedbooleanfalseسری‌ها روی هم؛ فقط بالاترین تکه گرد می‌شود.
showLabelsbooleanfalseمقدار بالای میله؛ در انباشته فقط جمع.
labelsInsidebooleanfalseفقط افقی: نامِ دسته داخلِ میله، محورِ دسته حذف.
colorByCategorybooleanfalseهر میله رنگِ --chart-N خودش.
activeIndexnumber—میلهٔ برجسته با کادرِ خط‌چین.
negativeColorstring"var(--destructive)"رنگِ مقدارهای منفی.
onBarClick(index, row) => void—کلیک روی میله.

مشترک

ویژگینوعپیش‌فرضتوضیح
showLegendbooleanبیش از یک سریراهنمای رنگ‌ها؛ اولین سری سمتِ راست.
showGridbooleantrueخطوطِ شبکه در امتدادِ محورِ مقدار.
hideValueAxisbooleanfalseعددهای محورِ مقدار پنهان؛ وقتی برچسب یا تولتیپ کافی است.
valueFormatter(value: number) => stringعددِ فارسیروی محور، برچسب و تولتیپ هر سه اثر می‌کند.
cursor"line" | "band" | "none""line"نشانگرِ دستهٔ زیرِ ماوس؛ band نوارِ پرِ پشتِ میله‌هاست.
tooltipChartTooltipOptions—ظاهرِ تولتیپ: indicator، hideLabel، labelFormatter، formatValue و showTotal. جزئیات در برگهٔ «تولتیپ».
defaultTooltipIndexnumber—تولتیپِ این اندیس از اول باز باشد؛ مثلاً مقدارِ امروز.
classNamestringh-72 w-fullارتفاع را از همین‌جا بدهید؛ نمودار ارتفاعِ ذاتی ندارد.

این کامپوننت هنوز برای Vue پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک در دست کار است.

این کامپوننت هنوز برای Svelte پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک در دست کار است.

این کامپوننت هنوز برای Angular پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک در دست کار است.