البناء · جديد

مجموعة الأزرار

خيارات مترابطة في صف واحد متصل، يُختار منها واحد: لتبديل طريقة العرض أو تصفية النتائج. الخيار الأول في بداية السطر، أي على اليمين في العربية.

المعاينة

المعكوسة هي المحتوى الإنجليزي نفسه من اليمين إلى اليسار، لتفصل خطأ الاتجاه عن خطأ الترجمة.

التثبيت

قريبًايُفتح التثبيت من السجل مع الإطلاق. حتى ذلك الحين، هذا هو الأمر الذي ستستخدمه.
npx shadcn@latest add @ritla/button-group

الاعتماديات التي يضيفها: @base-ui/react, @phosphor-icons/react

الاستخدام

import { ButtonGroup, ButtonGroupItem } from "@/components/ui/button-group";
<ButtonGroup aria-label="Period" defaultValue="week">
  <ButtonGroupItem value="day" label="Day" />
  <ButtonGroupItem value="week" label="Week" />
  <ButtonGroupItem value="month" label="Month" />
</ButtonGroup>

أمثلة

الأنماط

outline (الافتراضي) وtonal وfilled. الخيار المختار يأخذ لون الزر المضغوط، والفواصل والإطار بلون واحد. الخيار المعطّل يبقى ظاهراً.

الأحجام

بارتفاعات الزر: ‏56 و48 و40 و32 بكسل. مساحة النقر 48 بكسل على الأقل في sm وxs.

أيقونات فقط

showLabel={false} يُبقي الأيقونة وحدها لأشرطة الأدوات المدمجة، ويبقى label اسماً لقارئات الشاشة.

تصفية ولوحة المفاتيح

نسخة متحكَّم بها عبر value وonValueChange، والأعداد تتبع إعداد الأرقام. Tab يدخل المجموعة مرة واحدة، والأسهم تنتقل بين الخيارات: في العربية السهم الأيسر هو التالي.

مرجع الخصائص

ButtonGroup

الخاصيةالنوعالافتراضيالوصف
variant"outline" | "tonal" | "filled""outline"خاصية Style.
size"lg" | "md" | "sm" | "xs""lg"خاصية Size: ‏56 و48 و40 و32 بكسل.
valuestringقيمة الخيار المختار (متحكَّم به).
defaultValuestringالخيار المختار في البداية. في Figma هو الأول.
onValueChange(value: string) => voidيُستدعى بالقيمة الجديدة. الضغط على المختار مجدداً لا يلغي اختياره.
disabledbooleanfalseيعطّل كل الخيارات.
aria-labelstringاسم المجموعة («الفترة»، «طريقة العرض»).

ButtonGroupItem

الخاصيةالنوعالافتراضيالوصف
valuestringمعرّف الخيار.
labelstringمطلوب. خاصية Label، واسم الخيار حتى لو أُخفي النص.
showLabelbooleantrueخاصية Show Label.
iconLeadingIconComponentIcon leading: أيقونة قبل النص.
disabledbooleanfalseState = Disabled لهذا الخيار.

إمكانية الوصول

لوحة المفاتيح

المفاتيح مكتوبة للاتجاه من اليسار إلى اليمين. في الاتجاه من اليمين يتبادل السهمان دورهما: السهم المتجه مع اتجاه القراءة ينقلك إلى الأمام.

المفتاحما يفعله
Tabيدخل المجموعة مرة واحدة، على الخيار المختار، ويخرج منها بالضغطة التالية.
ArrowRightArrowLeftينتقل إلى الخيار التالي أو السابق ويلتف عند الطرفين. في العربية ينعكس الاتجاه.
EnterSpaceيختار الخيار الذي عليه التركيز.

ARIA

  • مجموعة role="group" باسم من aria-label، وكل خيار زر أصلي يحمل aria-pressed.
  • الاختيار لا يعتمد على اللون وحده: يعلنه aria-pressed، ويبقى خيار واحد مختاراً دائماً.
  • في وضع الأيقونات فقط يصبح label قيمة aria-label للخيار.

ملاحظات العربية والاتجاه

ينعكس

  • ترتيب الخيارات ينعكس: الأول في بداية السطر (اليمين في العربية)، والفواصل حدود منطقية تتبع الاتجاه.
  • الأسهم تتبع اتجاه القراءة: السهم الأيسر ينتقل إلى الخيار التالي في العربية.

لا ينعكس

  • الأيقونات غير الاتجاهية (قائمة، شبكة، خريطة) لا تنعكس؛ الاتجاهية فقط تنعكس عبر <Icon>.
الأرقام
الأعداد داخل الخيارات («مفتوحة 12») تُنسّق بـformatNumber وتتبع إعداد الأرقام.
الخط العربي
body-16 (وbody-14 في xs) بوزن Semibold كالزر. الخيارات تأخذ عرض نصها، فالعربية الأقصر لا تُمدّ.
النص ثنائي الاتجاه
اسم لاتيني داخل خيار عربي («عرض Kanban») يُعرض صحيحاً في نهاية النص؛ في وسطه ضعه في <bdi>.

كل المكونات ›