Tutti i componenti

MotionSheet

Un bottom sheet, un top sheet o un cassetto laterale con detent, colpi rapidi e passaggio dello scroll.

WebReact NativeOverlay

Provalo

Preparazione dell’esempio…

L’uso più breve

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

Di che cosa si occupa al posto tuo

  • Segue i trascinamenti, fa resistenza oltre il detent più grande e si assesta con la velocità del tuo rilascio; un colpo rapido sposta di un detent o lo chiude.
  • I trascinamenti touch passano al contenuto scorrevole: tirando giù, il contenuto torna in cima prima che lo sheet si muova.
  • Detent come frazioni dello schermo, pixel, oppure 'content' per la dimensione naturale del contenuto.
  • Uno sheet modale tiene il focus al suo interno, rende inerte la pagina e si chiude con Esc o lo sfondo.

Usalo per

  • Un pannello di filtri.
  • Un menu di condivisione.
  • Un cassetto di navigazione con side="start".

Props

PropTipoPredefinitoDescrizione
openbooleanfalseSe lo sheet è visibile.
onOpenChange(open) => voidViene eseguito con false quando lo sheet viene chiuso trascinandolo, toccando fuori o con Esc.
detents(number | 'content')[]['content']Dimensioni di riposo: una frazione dello schermo, pixel, oppure 'content'.
detentnumberIndice del detent controllato.
defaultDetentnumber0Indice del detent usato all’apertura senza detent.
onDetentChange(index) => voidViene eseguito con l’indice del detent su cui lo sheet si assesta.
side'bottom' | 'top' | 'start' | 'end''bottom'Il bordo da cui arriva lo sheet.
modalbooleantrueAggiunge uno sfondo, tiene il focus all’interno e rende inerte la pagina.
dismissiblebooleantrueTrascinare oltre il detent più piccolo, lo sfondo ed Esc lo chiudono.
backdropClassNamestringClasse per lo sfondo; backdropStyle imposta il suo stile inline.
transitionTransitionspringUna curva di timing { duration, easing } o una molla { tempo: 'spring', spring }. Le molle conservano lo slancio quando vengono interrotte.

Le altre props vanno all’elemento renderizzato, quindi className, style e gli event handler funzionano come sempre.

Web e React Native

Sul web uno sheet modale è un dialog nativo; il pannello è una colonna flex che stilizzi con className.

Su React Native viene renderizzato in un Modal trasparente e il tasto Indietro lo chiude. Gli ScrollView interni mantengono i propri gesti, quindi lo sheet si trascina dalla maniglia, dall’intestazione e dalle altre aree fisse.

Usato in questi esempi

Cerca

Scrivi per cercare nella documentazione.