Sheet

Liukupaneeli

Sisällön päälle liukuva paneeli, joka lukitsee taustan.

Käyttöpaikat

Suoraan: palvelu tuo osan itse. Välillisesti: osa tulee mukaan toisen paketin osan kautta, ja sen muutos näkyy palvelussa silti. Laskettu julkaisun yhteydessä 23.10.2026.

TP-PERUSTUS
TP-IAM · kautta: AppFrame, HEADER_SEARCH_INPUT
TP-MEDIA · AppFramein kautta
TP-NOTIFY · AppShellin kautta
TP-TTK · kautta: AppFrame, HEADER_SEARCH_INPUT
TP-VASTAANOTTO · kautta: AppFrame, HEADER_SEARCH_INPUT
Esimerkki valitulla teemalla ja sävyllä; vaihda ne yläpalkista.

Käyttö

Paketin README:n luku sellaisenaan.

Sheet — sivupaneeli

Reunasta liukuva modaali. Rakentuu samalle Radix-dialogille kuin Dialog, joten fokusansa, Esc, scroll-lukitus ja aria-attribuutit tulevat samasta lähteestä. Ei uutta riippuvuutta.

import {
  Sheet, SheetContent, SheetHeader, SheetTitle, SheetDescription,
  SheetBody, SheetFooter, Button,
} from "@karkkainen/ui";

<Sheet open={open} onOpenChange={setOpen}>
  <SheetContent size="lg">
    <SheetHeader>
      <SheetTitle>Toimittajan tiedot</SheetTitle>
      <SheetDescription>Lähetys SUB-4821</SheetDescription>
    </SheetHeader>

    <SheetBody>{/* pitkä sisältö vierii tässä */}</SheetBody>

    <SheetFooter>
      <Button variant="ghost" onClick={() => setOpen(false)}>Peruuta</Button>
      <Button onClick={onSave}>Tallenna</Button>
    </SheetFooter>
  </SheetContent>
</Sheet>
PropsiArvotOletus
sideright · left · top · bottomright
sizesm · default · lg · fulldefault
hideClosepiilottaa sulkupainikkeenfalse

size säätää vaakasuunnassa leveyttä ja pystysuunnassa korkeutta. Kapealla näytöllä sivupaneeli on aina täysleveä.

Kolme osaa, ja keskimmäinen on se tärkeä

SheetHeader ja SheetFooter ovat kiinteitä, SheetBody vierii. Dialogilla ei ole vastaavaa Body-osaa, koska se vierittää koko sisältönsä — paneelissa se tarkoittaisi että &rdquo;Tallenna&rdquo; katoaa näkyvistä pitkässä lomakkeessa, juuri silloin kun käyttäjä etsii sitä.

Jätä `SheetFooter` pois kun toimintoa ei ole (esim. loki). Tyhjä toimintopalkki vie tilaa ja lupaa toimintoa jota ei ole.

Tausta jätetään näkyviin

Sheet ei sumenna eikä tummenna taustaa oletuksena. Paneeliin syötetään usein tietoa jota luetaan taustan sisältöalueelta, ja sumennettu tausta tekee siitä mahdotonta. overlay-propsi palauttaa tummennuksen kun taustan piilottaminen on nimenomainen tarkoitus.

Dialog säilyttää sumennuksen tarkoituksella: se on lyhyt keskeytys jossa taustan piilottaminen on koko pointti.

> Tausta pysyy silti klikkaamattomana, koska Radix lukitsee sen > modaalitilassa. Jos haluat taustan myös *käytettäväksi*, tarvitset > SidePanelin.

Tuonti ja lähde

import { Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger } from "@karkkainen/ui";
  • src/components/sheet.tsx
Liukupaneeli · TP-DESIGN-SYSTEM