Saltar al contenido
Logic2BUI

Buscar en la documentación

Busca componentes y documentación

Nuevo
Menú

Diálogo

Superpone una ventana sobre la interfaz principal para mostrar contenido que requiere la atención del usuario.

Instalación

npx logic2b@next add dialog

Uso

import {
  Dialog,
  DialogContent,
  DialogDescription,
  DialogHeader,
  DialogTitle,
  DialogTrigger,
} from "@/components/ui/dialog"

<Dialog>
  <DialogTrigger>Abrir</DialogTrigger>
  <DialogContent>
    <DialogHeader>
      <DialogTitle>¿Confirmas la acción?</DialogTitle>
      <DialogDescription>
        Esta acción no se puede deshacer.
      </DialogDescription>
    </DialogHeader>
  </DialogContent>
</Dialog>

Ejemplos

Compartir enlace

Controlado

Gestiona el estado abierto desde tu aplicación para confirmar una acción destructiva.

Accesibilidad

  • Está construido sobre Dialog de Radix: el foco queda contenido dentro del diálogo y vuelve al disparador al cerrarlo.
  • DialogTitle aporta el nombre accesible. Combínalo con DialogDescription; Radix conecta ambos mediante aria-labelledby y aria-describedby.
  • Tanto Escape como un clic en la capa exterior cierran el diálogo. El botón de cierre incluye una etiqueta solo visible para lectores de pantalla.

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
<Dialog>
  <DialogTrigger
    className="rounded-md border px-4 py-2 text-sm font-medium"
  >Edit project</DialogTrigger>
  <DialogContent>
    <DialogHeader>
      <DialogTitle>Edit project</DialogTitle>
      <DialogDescription>Update the project details, then save your changes.</DialogDescription>
    </DialogHeader>
    <label
      className="grid gap-2 text-sm"
    >
      <span>Project name</span>
      <input
        type="text"
        defaultValue="logic2b ui"
        className="h-9 rounded-md border px-3"
       />
    </label>
    <DialogFooter>
      <DialogClose
        className="rounded-md border px-4 py-2 text-sm font-medium"
      >Save changes</DialogClose>
    </DialogFooter>
  </DialogContent>
</Dialog>

Referencia de API

Generada a partir de las exportaciones públicas de TypeScript en src/ui/dialog.tsx. Las descripciones técnicas conservan el texto canónico del código fuente.

Ver JSON

Dialog

Componente
Props: React.ComponentProps<typeof DialogPrimitive.Root>

DialogClose

Componente
Props: React.ComponentProps<typeof DialogPrimitive.Close>

DialogContent

Componente
Props: React.ComponentProps<typeof DialogPrimitive.Content> & { showCloseButton?: boolean }
PropiedadTipoObligatoriaValor predeterminadoDescripción
showCloseButtonbooleanNotrue—

DialogDescription

Componente
Props: React.ComponentProps<typeof DialogPrimitive.Description>

DialogFooter

Componente
Props: React.ComponentProps<"div">

DialogHeader

Componente
Props: React.ComponentProps<"div">

DialogOverlay

Componente
Props: React.ComponentProps<typeof DialogPrimitive.Overlay>

DialogPortal

Componente
Props: React.ComponentProps<typeof DialogPrimitive.Portal>

DialogTitle

Componente
Props: React.ComponentProps<typeof DialogPrimitive.Title>

DialogTrigger

Componente
Props: React.ComponentProps<typeof DialogPrimitive.Trigger>

Contrato de accesibilidad

Comportamiento legible por máquinas y responsabilidades de quien integra dialog. Los detalles normativos conservan el texto canónico del registro.

Ver JSON
Soporte
Gestionado por la primitiva
Patrón
modal dialog
Radix Dialog
Interacciones de teclado para dialog
TeclasComportamiento
EscapeClose the open surface and restore focus.
Tab Shift+TabCycle focus inside the modal surface.

Semántica incorporada

  • Content is a dialog, traps focus and restores it to the trigger on close.
  • Title and description wire aria-labelledby and aria-describedby.

Responsabilidades de integración

  • Always render DialogTitle; add DialogDescription when explanatory copy exists.