البناء · جديد

النافذة الحوارية

توقف سير العمل لتأكيد إجراء أو التنبيه إلى خطر أو جمع مدخل قصير. تظهر فوق طبقة معتمة، ويبقى التركيز داخلها حتى تُغلق.

المعاينة

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

التثبيت

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

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

الاستخدام

import { Dialog, DialogActions, DialogClose, DialogContent, DialogHeader, DialogTrigger } from "@/components/ui/dialog";
<Dialog>
  <DialogTrigger render={<Button />}>Send money</DialogTrigger>
  <DialogContent>
    <DialogHeader icon={CheckCircleIcon} title="Transfer sent" description="It usually arrives within a few minutes." />
    <DialogActions>
      <DialogClose render={<Button variant="outline" />}>View receipt</DialogClose>
      <DialogClose render={<Button />}>Done</DialogClose>
    </DialogActions>
  </DialogContent>
</Dialog>

أمثلة

تحذير بتخطيط أفقي

‏layout="horizontal" يضع الأيقونة بجانب النص بعرض 544 بكسل (size="lg")، وlayout="end" يجمع الأزرار في نهاية السطر. للشاشات العريضة والنصوص القصيرة.

تأكيد الحذف

‏AlertDialog لما يحذف أو يزيل: دوره alertdialog، ولا يُغلق بالنقر خارجه، ويبدأ التركيز على «إلغاء». العنوان سؤال محدد، والزر الأحمر يكرر الفعل، ورقم البطاقة يبقى من اليسار إلى اليمين.

مهمة قصيرة في نموذج

يبدأ التركيز في الحقل، وEnter يرسل. وdisablePointerDismissal يمنع إغلاقها بنقرة خارجها فلا يضيع ما كُتب.

محتوى طويل

لا تتجاوز النافذة الشاشة: DialogBody يمرّر محتواه ويبقى العنوان والأزرار في مكانهما. هنا فواصل فوق المحتوى وتحته، ومربع اختيار في بداية صف الأزرار.

قائمة داخل النافذة

القوائم المنسدلة التي تُفتح من داخل النافذة تظهر فوقها، في طبقة popover.

مرجع الخصائص

Dialog / AlertDialog

الخاصيةالنوعالافتراضيالوصف
open / defaultOpen / onOpenChangebooleanللتحكم في الفتح.
disablePointerDismissalbooleanfalseلا تُغلق بالنقر خارجها (للنماذج). في AlertDialog دائمًا.

DialogContent

الخاصيةالنوعالافتراضيالوصف
size"sm" | "md" | "lg" | "xl""sm"العرض: 400 للتأكيد، 480، 544 للأفقي، 640 للنماذج.
breakpoint"auto" | "desktop" | "mobile""auto"خاصية Breakpoint: في الوسط على الحاسوب، وفي الأسفل على الجوال.
initialFocus / finalFocusRefObject<HTMLElement>أين يبدأ التركيز وأين يعود.

DialogHeader

الخاصيةالنوعالافتراضيالوصف
titleReactNodeخاصية Title، وهي اسم النافذة.
descriptionReactNodeخاصية Description، وهي وصف النافذة.
iconIconComponentخاصية Featured icon.
iconColor"success" | "warning" | "error" | "brand" | "gray""success"لون حامل الأيقونة.
layout"stacked" | "centered" | "horizontal""stacked"خاصية Type للرأس.
closeButtonbooleantrueخاصية X close button.
closeLabelstring"Close"اسم زر الإغلاق، بلغة النافذة افتراضيًا.
dividerbooleanfalseخاصية Divider.
patternbooleantrueالحلقات الزخرفية خلف الأيقونة.

DialogActions

الخاصيةالنوعالافتراضيالوصف
childrenReactNodeالأزرار بترتيب القراءة: الإلغاء ثم التأكيد.
layout"fill" | "stacked" | "end""fill"خاصية Type للأزرار. على الجوال تتكدس كلها والتأكيد في الأعلى.
startReactNodeمربع اختيار أو رابط في بداية الصف (layout="end").
dividerbooleanfalseخاصية Divider.

DialogBody / DialogTrigger / DialogClose

الخاصيةالنوعالافتراضيالوصف
DialogBodydivالمحتوى بين الرأس والأزرار، ويمرَّر عند الحاجة.
renderReactElementالزر المرئي لـ DialogTrigger وDialogClose.

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

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

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

المفتاحما يفعله
TabShift+Tabبين عناصر النافذة فقط، والصفحة خلفها معطلة.
Escيغلق النافذة ويعيد التركيز إلى الزر الذي فتحها.
Enterيرسل النموذج داخلها.

ARIA

  • دورها dialog (أو alertdialog لتأكيد الحذف) مع aria-modal، والعنوان اسمها والوصف وصفها.
  • يبدأ التركيز في أول حقل، أو على «إلغاء» في تأكيد الحذف، ويعود إلى الزر الذي فتحها.
  • لزر الإغلاق اسم («إغلاق»). والخطر لا يُعرف باللون الأحمر وحده: العنوان والفعل يقولانه.
  • تُفتح في 300 ملّي ثانية وتتلاشى فقط مع تقليل الحركة.

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

ينعكس

  • الأيقونة والنص إلى اليمين، وزر الإغلاق في أعلى اليسار.
  • الأزرار تنعكس: «إلغاء» على اليمين والتأكيد على اليسار، في نهاية السطر.
  • النافذة تحمل اتجاه المكان الذي كُتبت فيه ولغته، حتى وهي خارج الشجرة.

لا ينعكس

  • أيقونات النجاح والتحذير والحذف، والحلقات الزخرفية المتناظرة.
الأرقام
المبالغ تتبع إعداد الأرقام؛ أرقام البطاقات تبقى من اليسار إلى اليمين داخل <bdi dir="ltr">.
الخط العربي
العنوان body-18 Semibold والوصف body-14، والأزرار lg.
النص ثنائي الاتجاه
اكتب العنوان سؤالًا عربيًا محددًا: «إزالة هذه البطاقة؟» لا «هل أنت متأكد؟».

كل المكونات ›