Toate componentele

MotionSheet

Sheet inferior, sheet superior sau sertar lateral, cu opriri, mișcări bruște și predarea derulării.

WebReact NativeSuprapuneri

Încercați

Se pregătește exemplul…

Cea mai scurtă utilizare

Filters.jsx
<MotionSheet open={open} onOpenChange={setOpen} detents={[0.45, 0.92]}>
  <FilterList />
</MotionSheet>;

Ce rezolvă în locul dumneavoastră

  • Urmează tragerile, opune rezistență după cea mai mare oprire și se așază cu viteza eliberării; o mișcare bruscă îl mută cu o oprire sau îl închide.
  • Tragerile tactile se predau conținutului derulabil: tragerea în jos derulează conținutul înapoi sus înainte să se miște sheet-ul.
  • Opririle ca fracțiuni din ecran, pixeli sau 'content' pentru mărimea naturală a conținutului.
  • Un sheet modal păstrează focusul înăuntru, face pagina inertă și se închide cu Escape sau cu fundalul.

Folosiți-o pentru

  • Un panou de filtre.
  • Un meniu de partajare.
  • Un sertar de navigare cu side="start".

Props

PropTipImplicitDescriere
openbooleanfalseDacă sheet-ul este afișat.
onOpenChange(open) => voidRulează cu false când sheet-ul e închis prin tragere, atingere sau Escape.
detents(number | 'content')[]['content']Mărimi de repaus: o fracțiune din ecran, pixeli sau 'content'.
detentnumberIndexul de oprire controlat.
defaultDetentnumber0Indexul de oprire folosit la deschiderea fără detent.
onDetentChange(index) => voidRulează cu indexul opririi pe care se așază sheet-ul.
side'bottom' | 'top' | 'start' | 'end''bottom'Marginea de pe care vine sheet-ul.
modalbooleantrueAdaugă un fundal, păstrează focusul înăuntru și face pagina inertă.
dismissiblebooleantrueTragerea dincolo de cea mai mică oprire, fundalul și Escape îl închid.
backdropClassNamestringClasă pentru fundal; backdropStyle îi setează stilul inline.
transitionTransitionspringO curbă timing { duration, easing } sau un arc { tempo: 'spring', spring }. Arcurile își păstrează impulsul când sunt întrerupte.

Celelalte props merg la elementul randat, așa că className, style și handlerele de evenimente funcționează ca de obicei.

Web și React Native

Pe web, un sheet modal este un dialog nativ; panoul este o coloană flex pe care o stilizați cu className.

În React Native se randează într-un Modal transparent, iar butonul înapoi îl închide. ScrollView-urile interioare își păstrează gesturile, așa că sheet-ul se trage de mâner, de antet și de alte zone statice.

Folosită în aceste exemple

Căutare

Tastați pentru a căuta în documentație.