Alla komponenter

MotionSheet

En bottom sheet, top sheet eller sidolåda med stopplägen, snärtar och överlämning av scrollning.

WebbReact NativeÖverlägg

Prova

Förbereder exemplet…

Kortaste användning

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

Det här sköter den åt dig

  • Följer dragningar, gör motstånd förbi sitt största stoppläge och landar med din släpphastighet; en snärt flyttar ett stoppläge eller stänger.
  • Pekdragningar lämnas över till scrollbart innehåll: att dra nedåt scrollar innehållet tillbaka till toppen innan sheeten rör sig.
  • Stopplägen som bråkdelar av skärmen, pixlar eller 'content' för innehållets naturliga storlek.
  • En modal sheet håller fokus inuti, gör sidan inert och stängs med Escape eller bakgrunden.

Använd den för

  • En filterpanel.
  • En delningsmeny.
  • En navigationslåda med side="start".

Props

PropTypStandardBeskrivning
openbooleanfalseOm sheeten visas.
onOpenChange(open) => voidKörs med false när sheeten dras, trycks eller Escape-stängs.
detents(number | 'content')[]['content']Vilostorlekar: en bråkdel av skärmen, pixlar eller 'content'.
detentnumberKontrollerat index för stoppläge.
defaultDetentnumber0Index för stoppläge vid öppning utan detent.
onDetentChange(index) => voidKörs med index för stoppläget som sheeten landar på.
side'bottom' | 'top' | 'start' | 'end''bottom'Kanten som sheeten kommer från.
modalbooleantrueLägger till en bakgrund, håller fokus inuti och gör sidan inert.
dismissiblebooleantrueDragning förbi det minsta stoppläget, bakgrunden och Escape stänger den.
backdropClassNamestringKlass för bakgrunden; backdropStyle sätter dess inline-style.
transitionTransitionspringEn timingkurva { duration, easing } eller en fjäder { tempo: 'spring', spring }. Fjädrar behåller sitt momentum när de avbryts.

Andra props går till det renderade elementet, så className, style och händelsehanterare fungerar som vanligt.

Webb och React Native

På webben är en modal sheet en native dialog; panelen är en flex-kolumn som du stylar med className.

I React Native renderas den i en genomskinlig Modal och bakåtknappen stänger den. Inre ScrollViews behåller sina egna gester, så sheeten dras i sitt handtag, sitt sidhuvud och andra fasta ytor.

Används i de här exemplen

Sök

Skriv för att söka i dokumentationen.