Sheet
Un panel fijado a un borde de la pantalla, para filtros, detalles y formularios que no deberían sacarte de la página.
Instalación
pnpm dlx nachui add sheetAnatomía
Un sheet va pegado al borde desde el que abre y lo cubre de punta a punta. Atrapa el foco, cierra con Escape y con el fondo, bloquea el scroll de la página y devuelve el foco al trigger cuando se va.
Sheet o Drawer
Se parecen y son familia, pero responden preguntas distintas. Drawer es el táctil: una isla flotante con una manija que arrastrás para cerrar, cómodo en un teléfono. Sheet es el de escritorio: un panel lateral fijo sin arrastre, con tamaños en escalones, pensado para un riel de filtros, un formulario de edición o una vista de detalle. Si el contenido es algo que se completa, usá Sheet. Si es algo que se descarta con un gesto, usá Drawer.
Composición
Usa la siguiente composición para construir un
Sheet:Header, Body y Footer son layout: el cuerpo scrollea solo y el pie se queda abajo, así los formularios largos mantienen las acciones a mano.Lados
Tamaños
size es un ancho a izquierda y derecha, y una altura máxima arriba y abajo. full cubre la pantalla.Referencia de API
Sheet
| Prop | Type | Default | Description |
|---|---|---|---|
defaultOpen | boolean | false | Estado abierto cuando no se controla |
open | boolean | - | Estado abierto controlado |
onOpenChange | (open: boolean) => void | - | Se llama al cambiar el estado |
Sheet.Trigger
| Prop | Type | Default | Description |
|---|---|---|---|
asChild | boolean | false | Renderiza el hijo como trigger en vez de un botón |
className | string | - | Clases CSS adicionales |
Sheet.Content
| Prop | Type | Default | Description |
|---|---|---|---|
side | 'top' | 'bottom' | 'left' | 'right' | 'right' | Borde al que se fija |
size | 'sm' | 'md' | 'lg' | 'xl' | 'full' | 'md' | Ancho a los lados, alto arriba y abajo |
showClose | boolean | true | Muestra el botón de cerrar de la esquina |
closeLabel | string | 'Close' | Nombre accesible de ese botón |
className | string | - | Clases CSS adicionales |
Sheet.Close
| Prop | Type | Default | Description |
|---|---|---|---|
asChild | boolean | false | Renderiza el hijo como cerrador en vez de un botón |
className | string | - | Clases CSS adicionales |
Sheet.Header / Sheet.Body / Sheet.Footer / Sheet.Title / Sheet.Description
| Prop | Type | Default | Description |
|---|---|---|---|
className | string | - | Clases CSS adicionales |
¿Encontraste algo que mejorar?
¿Notaste un error, tipografía o detalle faltante en esta página? Ayúdanos a mejorar la documentación abriendo un issue en GitHub.