Instalación
npx logic2b@next add sheetUso
import {
Sheet,
SheetContent,
SheetDescription,
SheetHeader,
SheetTitle,
SheetTrigger,
} from "@/components/ui/sheet"
<Sheet>
<SheetTrigger>Abrir</SheetTrigger>
<SheetContent side="right">
<SheetHeader>
<SheetTitle>Editar perfil</SheetTitle>
<SheetDescription>Modifica aquí los datos de tu perfil.</SheetDescription>
</SheetHeader>
</SheetContent>
</Sheet>
Ejemplos
Desde cualquier lado
Panel de navegación
Accesibilidad
Sheet está construido sobre Dialog de Radix, por lo que hereda el comportamiento de diálogo modal WAI-ARIA.
- El foco queda contenido dentro del panel mientras está abierto y vuelve al disparador al cerrarse.
- Escape o un clic en la capa exterior cierran el panel.
- El contenido situado detrás queda inerte y oculto para los lectores de pantalla.
- Incluye un
SheetTitley, preferiblemente, unSheetDescriptionpara etiquetar correctamente el diálogo.
Playground interactivo
Edita las propiedades del componente y revisa el JSX exacto antes de copiarlo. La vista previa se carga solo cuando esta sección entra en pantalla.
JSX generado
<Sheet>
<SheetTrigger
className="rounded-md border px-4 py-2 text-sm font-medium"
>Open settings</SheetTrigger>
<SheetContent
side="right"
>
<SheetHeader>
<SheetTitle>Project settings</SheetTitle>
<SheetDescription>Configure the generated registry output.</SheetDescription>
</SheetHeader>
<div
className="p-4 text-sm"
>Package name · output path · aliases</div>
<SheetFooter>
<SheetClose
className="rounded-md border px-4 py-2 text-sm font-medium"
>Save</SheetClose>
</SheetFooter>
</SheetContent>
</Sheet>Referencia de API
Generada a partir de las exportaciones públicas de TypeScript en src/ui/sheet.tsx. Las descripciones técnicas conservan el texto canónico del código fuente.
Sheet
ComponenteProps: React.ComponentProps<typeof SheetPrimitive.Root>SheetTrigger
ComponenteProps: React.ComponentProps<typeof SheetPrimitive.Trigger>SheetClose
ComponenteProps: React.ComponentProps<typeof SheetPrimitive.Close>SheetContent
ComponenteProps: React.ComponentProps<typeof SheetPrimitive.Content> & VariantProps<typeof sheetVariants>| Propiedad | Tipo | Obligatoria | Valor predeterminado | Descripción |
|---|---|---|---|---|
side | null | "top" | "bottom" | "left" | "right" | No | "right" | — |
SheetHeader
ComponenteProps: React.ComponentProps<"div">SheetFooter
ComponenteProps: React.ComponentProps<"div">SheetTitle
ComponenteProps: React.ComponentProps<typeof SheetPrimitive.Title>SheetDescription
ComponenteProps: React.ComponentProps<typeof SheetPrimitive.Description>Contrato de accesibilidad
Comportamiento legible por máquinas y responsabilidades de quien integra sheet. Los detalles normativos conservan el texto canónico del registro.
- Soporte
- Gestionado por la primitiva
- Patrón
- modal dialog
- Radix Dialog
| Teclas | Comportamiento |
|---|---|
| Escape | Close the open surface and restore focus. |
| Tab Shift+Tab | Cycle focus inside the sheet. |
Semántica incorporada
- Uses dialog semantics with focus trapping/restoration and title/description linkage.
Responsabilidades de integración
- Render SheetTitle and provide a labelled close control.