03 · Components

Overlays

Capas flotantes sobre el contenido: Modal, Drawer, Tooltip, Popover (y Menu como variante de Popover). Todos atrapan el foco, cierran con Esc y devuelven el foco al disparador.

Drawer

<Drawer />

Panel lateral deslizante. Ideal para edición contextual sin perder el contexto de la lista (configurar un artículo, filtros avanzados, detalle de pedido). Posiciones: right (default), left, bottom.

Panel derecho de edición
Viewport
Editar artículo
Camiseta algodón orgánico
€
Publicado
<Drawer open={open} onClose={close} position="right" size="md">
  <Drawer.Header kicker="Editar artículo">
    Camiseta algodón orgánico
  </Drawer.Header>
  <Drawer.Body>{/* campos */}</Drawer.Body>
  <Drawer.Footer>
    <Button variant="secondary">Cancelar</Button>
    <Button>Guardar</Button>
  </Drawer.Footer>
</Drawer>
PropTipoDefaultDescripción
openbooleanfalseControla la visibilidad.
onClose() => void—Handler de cierre.
position'right' | 'left' | 'bottom''right'Borde de aparición.
size'sm' | 'md' | 'lg''md'320 / 380 / 480 px (ancho).
closeOnOverlaybooleantrueCerrar al clicar el fondo.

Tooltip

<Tooltip />

Etiqueta contextual que aparece al hover/focus. Solo para texto breve aclaratorio (nunca interactivo — para contenido con acciones usar Popover). Aparece tras 400ms de delay.

Simple · 4 posiciones
Duplicar artículo
Exportar a PDF
Acción no disponible
Rich (con título)
SKU sincronizado
Última sincronización con el ERP hace 3 minutos. Los cambios se reflejan automáticamente.
<Tooltip content="Duplicar artículo">
  <IconButton aria-label="Duplicar"><IconDuplicar /></IconButton>
</Tooltip>

<Tooltip title="SKU sincronizado" content="Hace 3 min" placement="top">
  <Badge variant="success">Sync</Badge>
</Tooltip>
PropTipoDefaultDescripción
contentstring | ReactNode—Texto o cuerpo del tooltip.
titlestring—Título (activa variante rich).
placement'top' | 'bottom' | 'left' | 'right''top'Posición relativa al trigger.
delaynumber400Ms antes de mostrarse.
childrenReactElement—Elemento disparador.

Popover & Menu

<Popover /> · <Menu />

Panel flotante anclado a un disparador, con contenido interactivo (a diferencia del Tooltip). Menu es la variante especializada en listas de acciones: items, atajos, separadores y acciones destructivas.

Popover genérico
Filtrar por precio
—
Menu de accionescon secciones, atajos y acción destructiva
Artículo
Editar E
Duplicar ⌘D
Compartir
Eliminar ⌫
// Popover
<Popover trigger={<Button>Precio</Button>} placement="bottom-start">
  {/* contenido interactivo */}
</Popover>

// Menu
<Menu trigger={<IconButton aria-label="Opciones">…</IconButton>}>
  <Menu.Label>Artículo</Menu.Label>
  <Menu.Item icon={<IconLapiz />} shortcut="E">Editar</Menu.Item>
  <Menu.Divider />
  <Menu.Item danger icon={<IconEliminar />}>Eliminar</Menu.Item>
</Menu>
PropTipoDefaultDescripción
Popover / Menu
triggerReactElement—Elemento que abre el panel.
placement'bottom-start' | 'bottom-end' | 'top-start' | …'bottom-start'Anclaje respecto al trigger.
openboolean—Modo controlado (opcional).
onOpenChange(open) => void—Cambio de estado.
Menu.Item
iconReactNode—Icono a la izquierda.
shortcutstring—Atajo de teclado mostrado a la derecha.
dangerbooleanfalseEstilo destructivo (rojo).
onSelect() => void—Handler al elegir el item.