Podąża za przeciąganiem, stawia opór za największym punktem zatrzymania i układa się z prędkością twojego puszczenia; machnięcie przesuwa o jeden punkt lub zamyka.
Przeciąganie dotykiem przechodzi na przewijaną treść: pociągnięcie w dół najpierw przewija treść na górę, a dopiero potem porusza arkusz.
Punkty zatrzymania jako ułamki ekranu, piksele lub 'content' dla naturalnego rozmiaru treści.
Arkusz modalny trzyma fokus w środku, czyni stronę nieaktywną i zamyka się klawiszem Escape lub tłem.
Do czego służy
Panel filtrów.
Menu udostępniania.
Szuflada nawigacji z side="start".
Props
Prop
Typ
Domyślnie
Opis
open
boolean
false
Czy arkusz jest widoczny.
onOpenChange
(open) => void
Uruchamia się z false, gdy arkusz zostaje zamknięty przeciągnięciem, dotknięciem lub klawiszem Escape.
detents
(number | 'content')[]
['content']
Rozmiary spoczynku: ułamek ekranu, piksele lub 'content'.
detent
number
Kontrolowany indeks punktu zatrzymania.
defaultDetent
number
0
Indeks punktu zatrzymania przy otwarciu bez detent.
onDetentChange
(index) => void
Uruchamia się z indeksem punktu zatrzymania, na którym arkusz się układa.
side
'bottom' | 'top' | 'start' | 'end'
'bottom'
Krawędź, z której wysuwa się arkusz.
modal
boolean
true
Dodaje tło, trzyma fokus w środku i czyni stronę nieaktywną.
dismissible
boolean
true
Przeciągnięcie poza najmniejszy punkt zatrzymania, tło i Escape go zamykają.
backdropClassName
string
Klasa tła; backdropStyle ustawia jego styl inline.
transition
Transition
spring
Krzywa timing { duration, easing } lub sprężyna { tempo: 'spring', spring }. Sprężyny zachowują pęd po przerwaniu.
Pozostałe props trafiają do renderowanego elementu, więc className, style i obsługa zdarzeń działają jak zwykle.
Sieć i React Native
W sieci arkusz modalny to natywny dialog; panel to kolumna flex, którą stylizujesz przez className.
W React Native renderuje się w przezroczystym Modal, a przycisk wstecz go zamyka. Wewnętrzne ScrollView zachowują własne gesty, więc arkusz przeciąga się za uchwyt, nagłówek i inne statyczne obszary.