Toolbarv1.0.0
ظرفی برای گروهی از دکمه/ضامن همردیف با role=toolbar؛ فقط یکی از فرزندهایش هر لحظه در چرخهٔ Tab قرار میگیرد و جابهجایی بین آنها با کلیدهای جهتدار (راستبهچپآگاه) انجام میشود.
این کامپوننت فعلاً برای ۱ فریمورک از ۴ فریمورک آماده است.
این نمونه هنوز برای Vue پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Svelte پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Angular پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
نصب
با CLI اختصاصی digdesign کامپوننت را از رجیستری دیگ نصب کنید؛ وابستگیها و فایلها خودکار اضافه میشوند.
npx digdesign@latest add https://docs.digdesign.ir/r/toolbar.jsonpnpm dlx digdesign@latest add https://docs.digdesign.ir/r/toolbar.jsonyarn dlx digdesign@latest add https://docs.digdesign.ir/r/toolbar.jsonbunx --bun digdesign@latest add https://docs.digdesign.ir/r/toolbar.jsonاین کامپوننت هنوز برای Vue پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
این کامپوننت هنوز برای Svelte پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
این کامپوننت هنوز برای Angular پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
استفاده
import { Toolbar } from "@/components/ui/toolbar"
<Toolbar aria-label="ابزار برچسبگذاری">
<Toggle aria-label="برچسب"><DigcheIcon file="Tag=linear.svg" /></Toggle>
<Toggle aria-label="پرچم"><DigcheIcon file="Flag=linear.svg" /></Toggle>
</Toolbar>این کامپوننت هنوز برای Vue پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
این کامپوننت هنوز برای Svelte پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
این کامپوننت هنوز برای Angular پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
ترکیب اجزا
Toolbar بهجای پیچیدن فرزندها در یک کامپوننت اختصاصی، مستقیم Button/Toggle/ToggleGroup/Separator موجود دیگ را میپذیرد و roving-tabindex را خودش روی عناصر فوکوسپذیر داخلش پیاده میکند.
برای جداکننده از Separator عمودی با کلاس h-6 استفاده کنید، چون Separator عمودی به یک والدِ با ارتفاع مشخص نیاز دارد.
دسترسپذیری
- role=toolbar و aria-orientation دارد؛ حتماً aria-label یا aria-labelledby روی خودش بگذارید تا صفحهخوان هدف نوار را بگوید.
- فقط یک آیتم tabIndex=0 دارد (roving-tabindex)؛ بقیه با فلش راست/چپ (یا بالا/پایین در حالت عمودی) قابلدسترسیاند، نه با Tabِ پیاپی. این دقیقاً الگوی توصیهشدهٔ WAI-ARIA برای toolbar است.
- جهت فلشها از روی direction محاسبهشدهٔ مرورگر تشخیص داده میشود، پس در RTL خودکار برعکس LTR کار میکند.
- Home/End به اولین/آخرین آیتم میپرد.
مرجع API
Toolbar
| ویژگی | نوع | پیشفرض | توضیح |
|---|---|---|---|
| orientation | "horizontal" | "vertical" | "horizontal" | جهت چیدمان و کلیدهای فلشیِ فعال. |
| children | React.ReactNode | — | هر Button/Toggle/ToggleGroup/Separator دیگ. |
این کامپوننت هنوز برای Vue پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
این کامپوننت هنوز برای Svelte پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
این کامپوننت هنوز برای Angular پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
نمونهها
با ToggleGroup و جداکننده
این نمونه هنوز برای Vue پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Svelte پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Angular پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
نوار ابزار مدیریت محتوا
این نمونه هنوز برای Vue پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Svelte پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Angular پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
عمودی
این نمونه هنوز برای Vue پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Svelte پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Angular پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
آیتم غیرفعال (Disabled)
ناوبری با کلید جهتدار خودش آیتمهای disabled را رد میکند، پس لازم نیست دستی مدیریتش کنید. آیتم را حذف نکنید؛ جای ثابتِ ابزارها در نوار به حافظهٔ عضلانی کاربر مینشیند.
این نمونه هنوز برای Vue پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Svelte پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Angular پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
کدام نمونه برای کدام موقعیت
| نمونه | کجا به کار میآید |
|---|---|
| با ToggleGroup و جداکننده | نواری که کنشهای تکانتخابی (نمای فهرست) را از یک دکمهٔ مستقل جدا نگه میدارد |
| نوار ابزار مدیریت محتوا | نوار ابزار یک پنل مدیریت محتوا: برچسبگذاری، نمای نمایش، سازماندهی و تاریخچه در یک ردیف |
| عمودی | نوار ابزار کنارِ یک بوم طراحی یا پنل جانبی که فضای افقی محدود است |
| آیتم غیرفعال (Disabled) | کنشی که برای انتخاب فعلی معنا ندارد |