تصفّح التوثيق
الثيم كنز
Englishاحصل على Ritla UI

المكوّنات

قائمة السياق

إجراءات العنصر الذي تحت المؤشر، تُفتح بالنقر بالزر الأيمن على الحاسوب وبالضغط المطوّل على اللمس، بصفوف القائمة نفسها.

Figmaالمقابل في shadcncontext-menu

المعاينة

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

التثبيت

قريبًايُفتح التثبيت من السجل قريبًا، وهذه هي الأوامر التي ستشغّلها حينها.
npx ritla add context-menu

ويعمل أيضًا مع shadcn: npx shadcn@latest add @ritla/context-menu

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

التثبيت اليدوي ينسخ مصدر المكوّن إلى مشروعك. المصدر يأتي مع ترخيص Ritla UI، وأداة سطر الأوامر هي الطريق الأقصر إلى الملفات نفسها.

الاستخدام

import { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuTrigger } from "@/components/ui/context-menu";
<ContextMenu>
  <ContextMenuTrigger>
    Statement_Sep_2026.pdf
    {/* Also give the row a visible ⋮ button with the same actions: it is the keyboard path. */}
  </ContextMenuTrigger>
  <ContextMenuContent>
    <ContextMenuItem leadingIcon={PencilSimpleIcon} shortcut="F2" aria-keyshortcuts="F2">Rename</ContextMenuItem>
    <ContextMenuItem leadingIcon={TrashIcon} danger>Delete file</ContextMenuItem>
  </ContextMenuContent>
</ContextMenu>

مرجع الخصائص

ContextMenu

الخاصيةالنوعالافتراضيالوصف
open / defaultOpen / onOpenChangeboolean, (open) => voidلا يوجدحالة الفتح، إن أردت التحكم بها.
childrenReactNodeلا يوجد‏ContextMenuTrigger وContextMenuContent.

ContextMenuTrigger

الخاصيةالنوعالافتراضيالوصف
childrenReactNodeلا يوجدالمنطقة التي تفتح القائمة: صف أو بطاقة. أبقِها خارج ترتيب التنقل بمفتاح Tab، وضع فيها زرًا ظاهرًا (⋮) يفتح الإجراءات نفسها: هذا الزر طريق لوحة المفاتيح.

ContextMenuItem

الخاصيةالنوعالافتراضيالوصف
childrenReactNodeلا يوجدخاصية Title: اسم الإجراء في كلمتين أو ثلاث، بصيغة المصدر («إعادة التسمية»).
leadingIconIconComponentلا يوجدخاصية Show leading: أيقونة 24 بكسل في البداية.
shortcutReactNodeلا يوجدالاختصار كما يُطبع (‏⌘D)، عرضًا فقط؛ مرّر معه aria-keyshortcuts.
dangerbooleanلا يوجدالإجراء الهدّام (حذف): باللون الأحمر، أخيرًا، في مجموعته.
descriptionReactNodeلا يوجدسطر ثانٍ تحت العنوان.
onClick() => voidلا يوجدينفّذ الإجراء ويغلق القائمة.

ContextMenuSeparator / ContextMenuGroup / ContextMenuLabel

الخاصيةالنوعالافتراضيالوصف
…Menu partsلا يوجدخط بين المجموعات، ومجموعة، وعنوان مجموعة، كما في القائمة.

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

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

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

المفتاحما يفعله
Tabيصل إلى زر ⋮ في الصف، لا إلى الصف نفسه.
EnterSpaceعلى زر ⋮: يفتح الإجراءات نفسها.
ArrowDownArrowUpبين الإجراءات.
Enterينفّذ الإجراء.
Escapeيغلق القائمة ويعيد التركيز إلى الزر.

ARIA

  • القائمة menu وكل إجراء menuitem، واتجاهها ولغتها من المنطقة التي فُتحت منها.
  • لا تجعل قائمة السياق الطريق الوحيد إلى أي إجراء: اقرنها بزر ظاهر (‏⋮ في الصف) يفتح الإجراءات نفسها، لأن كثيرين لا ينقرون بالزر الأيمن ولا يصلون إليها بلوحة المفاتيح. يبقى الصف خارج ترتيب التنقل، والزر طريق لوحة المفاتيح.
  • الإجراء الهدّام يقول ما يفعل في اسمه («حذف الملف»)، لا باللون الأحمر وحده.

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

ينعكس

  • تُفتح القائمة إلى يسار المؤشر في العربية، والأيقونات على اليمين والاختصارات على اليسار.

لا ينعكس

  • ترتيب الإجراءات.
  • الاختصارات تبقى بحروفها اللاتينية من اليسار إلى اليمين (‏⌘D، F2).
  • أيقونات مثل التنزيل والحذف.
الأرقام
الاختصارات كما تُطبع، بلا تحويل للأرقام.
الخط العربي
الصف 48 بكسل، والعنوان label-14 بوزن Medium، والاختصار label-12 بوزن Medium على container/muted.
النص ثنائي الاتجاه
الاختصار معزول باتجاه LTR.