Drawer
لوحة تنزلق من إحدى حواف الشاشة.
- المتصفحات
- Chrome 123+Firefox 121+Safari 17.5+
- الفئة
- 0
- الحجم المضغوط
- 4.01 kB
- ميزانية التخطيط القسري
- 0 ms
- ميزانية axe
- 0
- متوافق مع SSR
- نعم
- مبني على
- elements/dialog
- العقد المنشور
- بيئة الاختبار
المختبر
API
DrawerPanel
| الخاصية | النوع | افتراضي | الوصف |
|---|---|---|---|
size | "sm" | "md" | "lg" | "full" | "md" | عروض الأجهزة المكتبية: أربع وعشرون أو اثنتان وثلاثون أو أربعون وحدة rem، أو العرض المتاح. على الهاتف يتحول كل حجم إلى لوحة سفلية عمودية. |
dismiss | "any" | "closerequest" | "none" | "any" | سياسة الإغلاق الأصلية. تتيح Any النقر على الخلفية وضغط Escape والسحب للأسفل على الهاتف؛ وتتطلب none عنصر تحكم صريحًا للإغلاق. |
backdrop | "opaque" | "transparent" | "opaque" | مظهر الخلفية؛ لا يغيّر دلالات مربع الحوار المشروط. |
footer | ReactNode | — | الإجراءات التي تلي الجسم القابل للتمرير. |
id* | string | — | معرّف فريد لمربع الحوار يستهدفه زر التفعيل وزر الإغلاق، لتفتح اللوحة الجانبية وتغلق قبل الإماهة. |
trigger* | ReactNode | — | محتوى الزر الذي يفتح اللوحة الجانبية. |
title* | ReactNode | — | عنوان يُعرض داخل اللوحة الجانبية ويُستخدم اسمًا لها للتقنيات المساعدة. |
description | ReactNode | — | نص مساعد يُعرض تحت العنوان وتشير إليه aria-describedby. |
children | ReactNode | — | محتوى الجسم الموضوع بين الوصف وزر الإغلاق. |
side | "top" | "right" | "bottom" | "left" | "bottom" | الحافة التي تنزلق منها اللوحة الجانبية. |
closeLabel | string | "Close" | تسمية أيقونة الإغلاق الدائرية للتقنيات المساعدة. |
className | string | — | الفئة المطبّقة على عنصر مربع الحوار. |
Drawer.Root (client)
| الخاصية | النوع | افتراضي | الوصف |
|---|---|---|---|
open | boolean | — | حالة الفتح المتحكّم بها. |
defaultOpen | boolean | — | حالة الفتح الأولية غير المتحكّم بها. |
onOpenChange | DialogChangeHandler | — | تُستدعى بحالة الفتح التالية وتفاصيل سبب التغيير. |
side | "top" | "right" | "bottom" | "left" | "bottom" | الحافة التي تنزلق منها اللوحة الجانبية، وتحدّد أيضًا محور السحب. |
modal | boolean | true | يفتح باستخدام showModal() ليصبح باقي الصفحة خاملًا خلف خلفية حاجبة. |
dismissible | boolean | true | يسمح للسحب بعد آخر نقطة استقرار بإغلاق اللوحة الجانبية. |
snapPoints | readonly number[] | — | نِسَب من حجم اللوحة الجانبية تستقر عندها اللوحة أثناء السحب. |
activeSnapPoint | number | — | نقطة الاستقرار المتحكّم بها، وتكون إحدى قيم snapPoints. |
defaultActiveSnapPoint | number | — | نقطة الاستقرار الأولية غير المتحكّم بها. |
onSnapChange | (snap: number) => void | — | تُستدعى بنقطة الاستقرار التي استقرت عندها اللوحة الجانبية. |
children | ReactNode | — | الأجزاء Trigger وContent والأجزاء الداخلية. |
Drawer.Trigger (client)
| الخاصية | النوع | افتراضي | الوصف |
|---|---|---|---|
className | string | — | الفئة المطبّقة على زر التفعيل. |
onClick | (event: MouseEvent<HTMLButtonElement>) => void | — | تُستدعى عند النقر على زر التفعيل وقبل فتح اللوحة الجانبية. |
ref | Ref<HTMLButtonElement> | — | مرجع إلى زر التفعيل، ويعود إليه التركيز عند إغلاق اللوحة الجانبية. |
children | ReactNode | — | محتوى زر التفعيل. |
Drawer.Content (client)
| الخاصية | النوع | افتراضي | الوصف |
|---|---|---|---|
className | string | — | الفئة المطبّقة على عنصر مربع الحوار. |
style | CSSProperties | — | نمط مضمن يُدمج مع تحويل السحب الذي تطبّقه اللوحة الجانبية. |
onCancel | ReactEventHandler<HTMLDialogElement> | — | تُستدعى عند حدث cancel الأصلي لمربع الحوار، مثل ضغط Escape. |
onClose | ReactEventHandler<HTMLDialogElement> | — | تُستدعى عند حدث close الأصلي لمربع الحوار. |
ref | Ref<HTMLDialogElement> | — | مرجع إلى عنصر مربع الحوار. |
children | ReactNode | — | محتوى اللوحة الجانبية. |
Drawer.Title (client)
| الخاصية | النوع | افتراضي | الوصف |
|---|---|---|---|
className | string | — | الفئة المطبّقة على عنصر العنوان. |
children | ReactNode | — | محتوى العنوان، ويصبح اسم اللوحة الجانبية للتقنيات المساعدة. |
Drawer.Description (client)
| الخاصية | النوع | افتراضي | الوصف |
|---|---|---|---|
className | string | — | الفئة المطبّقة على عنصر الوصف. |
children | ReactNode | — | محتوى الوصف الذي تشير إليه aria-describedby. |
Drawer.Close (client)
| الخاصية | النوع | افتراضي | الوصف |
|---|---|---|---|
className | string | — | الفئة المطبّقة على زر الإغلاق. |
onClick | (event: MouseEvent<HTMLButtonElement>) => void | — | تُستدعى عند النقر على زر الإغلاق وقبل إغلاق اللوحة الجانبية. |
children | ReactNode | — | محتوى زر الإغلاق. |
Drawer.Handle (client)
| الخاصية | النوع | افتراضي | الوصف |
|---|---|---|---|
className | string | — | الفئة المطبّقة على مقبض السحب. |
onPointerDown | (event: PointerEvent<HTMLDivElement>) => void | — | تُستدعى عند بدء السحب من المقبض. |
onPointerMove | (event: PointerEvent<HTMLDivElement>) => void | — | تُستدعى مع تحرّك المؤشر أثناء السحب. |
onPointerUp | (event: PointerEvent<HTMLDivElement>) => void | — | تُستدعى عند انتهاء السحب واستقرار اللوحة الجانبية عند نقطة استقرار. |
onPointerCancel | (event: PointerEvent<HTMLDivElement>) => void | — | تُستدعى حين يلغي المتصفح السحب. |
لوحة المفاتيح
| المفتاح | الإجراء |
|---|---|
| Enter / Space | فتح مربع الحوار من زر تفعيله أو تفعيل Close |
| Escape | طلب الإغلاق ما لم تكن dismiss مساوية لـ none |
| Tab / Shift+Tab | التنقل داخل مربع الحوار المشروط |
إمكانية الوصول
يستخدم DrawerPanel مربع حوار بمعرّفات للوجهات، لذا يعمل الفتح والإغلاق وحصر التركيز وإعادته قبل الإماهة؛ وتتحكّم dismiss في الخلفية وEscape. تتوفر اللوحات بعروض sm وmd وlg وfull، وتتحول إلى لوحات سفلية على الهواتف. يبدأ السحب من المقبض أو الترويسة، ليظل الجسم قابلًا للتمرير. تضيف API الخاصة بالعميل الحالة المتحكّم بها ونقاط الاستقرار.
نقاط التنسيق
data-uiify-drawerdata-partdata-sidedata-sizedata-backdropdata-statedata-dragging--uiify-drawer-inline-size--uiify-drawer-transform--uiify-sheet-offset