עוקב אחרי גרירות, מתנגד מעבר לנקודת העצירה הגדולה ביותר ומתייצב לפי מהירות השחרור; הנפה מזיזה נקודת עצירה אחת או סוגרת.
גרירות מגע עוברות לתוכן הנגלל: משיכה למטה גוללת קודם את התוכן לראשו ורק אז הגיליון זז.
נקודות עצירה כשברים של המסך, בפיקסלים, או 'content' לגודל הטבעי של התוכן.
גיליון מודאלי שומר את הפוקוס בפנים, הופך את העמוד ללא פעיל ונסגר עם Escape או ברקע.
מתאים ל־
לוח מסננים.
תפריט שיתוף.
מגירת ניווט עם side="start".
Props
Prop
טיפוס
ברירת מחדל
תיאור
open
boolean
false
האם הגיליון מוצג.
onOpenChange
(open) => void
רץ עם false כשהגיליון נסגר בגרירה, בהקשה או ב־Escape.
detents
(number | 'content')[]
['content']
גדלי מנוחה: שבר מהמסך, פיקסלים, או 'content'.
detent
number
אינדקס נקודת עצירה מבוקר.
defaultDetent
number
0
אינדקס נקודת העצירה שבשימוש בפתיחה בלי detent.
onDetentChange
(index) => void
רץ עם האינדקס של נקודת העצירה שבה הגיליון מתייצב.
side
'bottom' | 'top' | 'start' | 'end'
'bottom'
הקצה שממנו הגיליון מגיע.
modal
boolean
true
מוסיף רקע, שומר את הפוקוס בפנים והופך את העמוד ללא פעיל.
dismissible
boolean
true
גרירה מעבר לנקודת העצירה הקטנה ביותר, הרקע ו־Escape סוגרים אותו.
backdropClassName
string
class לרקע; backdropStyle מגדיר את הסגנון המוטבע שלו.
transition
Transition
spring
עקומת timing { duration, easing } או קפיץ { tempo: 'spring', spring }. קפיצים שומרים על התנופה שלהם כשמפריעים להם.
props אחרים עוברים לאלמנט המרונדר, כך ש־className, style ומטפלי אירועים עובדים כרגיל.
אינטרנט ו־React Native
באינטרנט גיליון מודאלי הוא dialog נייטיב; הלוח הוא עמודת flex שאתם מעצבים עם className.
ב־React Native הוא מרונדר ב־Modal שקוף וכפתור החזרה סוגר אותו. רכיבי ScrollView פנימיים שומרים על המחוות שלהם, אז גוררים את הגיליון מהידית, מהכותרת ומאזורים סטטיים אחרים.