البناء · جديد

قائمة التنقل

تنقّل الموقع بلوحات منسدلة: كل لوحة فيها وجهات قليلة بأيقونة وسطر قصير، وبطاقة مميزة واحدة على الأكثر.

المعاينة

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

التثبيت

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

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

الاستخدام

import {
  NavigationMenu,
  NavigationMenuContent,
  NavigationMenuItem,
  NavigationMenuLink,
  NavigationMenuLinks,
  NavigationMenuList,
  NavigationMenuPanelLink,
  NavigationMenuTrigger,
} from "@/components/ui/navigation-menu";
<NavigationMenu aria-label="Main">
  <NavigationMenuList>
    <NavigationMenuItem>
      <NavigationMenuTrigger>Products</NavigationMenuTrigger>
      <NavigationMenuContent>
        <NavigationMenuLinks>
          <NavigationMenuPanelLink href="/payments" icon={CreditCardIcon} title="Payments" description="Accept cards, Apple Pay and CliQ." />
        </NavigationMenuLinks>
      </NavigationMenuContent>
    </NavigationMenuItem>
    <NavigationMenuItem>
      <NavigationMenuLink href="/pricing">Pricing</NavigationMenuLink>
    </NavigationMenuItem>
  </NavigationMenuList>
</NavigationMenu>

أمثلة

عمود واحد، والصفحة الحالية

‏columns={1} للوحات القصيرة وبلا بطاقة مميزة. الرابط البسيط للصفحة الحالية يأخذ active (aria-current="page").

مرجع الخصائص

NavigationMenu

الخاصيةالنوعالافتراضيالوصف
aria-labelstringاسم التنقل، إن كان في الصفحة أكثر من nav.
delay / closeDelaynumber50 / 50المهلة قبل الفتح والإغلاق بالمؤشر (ملّي ثانية).
value / onValueChangestring | nullاللوحة المفتوحة، للتحكم من الكود.

NavigationMenuTrigger

الخاصيةالنوعالافتراضيالوصف
childrenReactNodeخاصية Label. السهم يُضاف تلقائيًا.

NavigationMenuLink

الخاصيةالنوعالافتراضيالوصف
hrefstringرابط بسيط في الصف، بلا لوحة.
activebooleanالصفحة الحالية.
renderReactElementرابط إطار العمل، مثل <Link /> من Next.

NavigationMenuLinks

الخاصيةالنوعالافتراضيالوصف
columns1 | 22أعمدة الروابط، بعرض 220px.

NavigationMenuPanelLink

الخاصيةالنوعالافتراضيالوصف
iconIconComponentأيقونة في مربع brand/faint.
titleReactNodeخاصية Title: الوجهة.
descriptionReactNodeخاصية Description: سطر قصير.
href / renderstring / ReactElementالرابط.

NavigationMenuFeatured

الخاصيةالنوعالافتراضيالوصف
tagReactNodeالوسم الصغير في الأعلى («جديد»).
title / descriptionReactNodeالعنوان والوصف.
linkLabelReactNodeالدعوة في الأسفل؛ البطاقة كلها رابط.

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

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

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

المفتاحما يفعله
Tabبين عناصر الصف؛ من زر مفتوح إلى روابط لوحته ثم إلى العنصر التالي.
EnterSpaceعلى زر: يفتح لوحته أو يغلقها.
ArrowRightArrowLeftبين عناصر الصف؛ بالعربية السهم الأيسر إلى التالي.
Escيغلق اللوحة ويعيد التركيز إلى زرها.

ARIA

  • ‏<nav> فيه قائمة (ul) من العناصر؛ لكل زر aria-expanded وaria-controls.
  • روابط اللوحة روابط حقيقية، والبطاقة المميزة رابط واحد.
  • الأزرار ارتفاعها 32px ومنطقة لمسها 48px عموديًا فقط.
  • على الجوال: زر قائمة يفتح درجًا فيه المجموعات نفسها في أكورديون.

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

ينعكس

  • أول عنصر على اليمين، واللوحة تبدأ من الحافة اليمنى للصف.
  • روابط اللوحة تُقرأ من اليمين، والبطاقة المميزة على اليسار.

لا ينعكس

  • سهم الزر يشير إلى الأسفل ويدور عند الفتح، ولا ينعكس.
  • أيقونات الروابط لا تنعكس.
الأرقام
الأرقام في الأوصاف تتبع إعداد الأرقام (toNumerals للنصوص الثابتة).
الخط العربي
الأزرار label-14 Medium، وعناوين الروابط label-14 Semibold، والأوصاف label-12، وعنوان البطاقة label-16 Semibold.
النص ثنائي الاتجاه
أسماء المنتجات اللاتينية (Apple Pay وiOS) داخل الوصف العربي تبقى بترتيبها. اللوحة تحمل اتجاه الصفحة ولغتها إلى خارجها.

كل المكونات ›