Popover

Primitiva contenedor superponible que muestra ventanas emergentes contextuales.

La primitiva Popover es un contenedor superponible utilizado para renderizar menús, tooltips, formularios de selección o widgets de ventana emergente contextuales personalizados activados por botones de anclaje.

Inicio RápidoLink

Una implementación básica de Popover usando componentes disparadores de React Aria:

tsx
import { DialogTrigger, Button } from 'react-aria-components'
import { Popover } from 'boltdocs/primitives'

export default function ConfigPopover() {
  return (
    <DialogTrigger>
      <Button className="px-4 py-2 bg-primary-500 text-white rounded-lg">
        Configuración
      </Button>
      <Popover className="p-4 bg-surface border border-subtle rounded-xl shadow-xl max-w-sm">
        <div>
          <h4 className="font-bold mb-2">Configuración del Espacio de Trabajo</h4>
          <p className="text-xs text-muted mb-4">Ajusta las banderas del compilador y objetivos del proyecto a continuación.</p>
          <button className="px-3 py-1 bg-soft rounded text-xs font-semibold">Listo</button>
        </div>
      </Popover>
    </DialogTrigger>
  )
}

Props del ComponenteLink

El componente Popover envuelve las propiedades de Popover de React Aria:

PropiedadTipoPredeterminadoDescripción
placement'bottom' | 'top' | 'left' | 'right' | 'start' | 'end''bottom'Lado objetivo del elemento disparador para posicionar el popover.
offsetnumber8Distancia de espaciado en píxeles entre el elemento disparador y la superposición del popover.
crossOffsetnumber0Desplazamiento de alineación del eje cruzado en píxeles.
isDismissablebooleantrueCierra el popover automáticamente al hacer clic fuera o presionar Escape.
childrenReactNodeRequeridoElementos hijos a renderizar dentro del marco de contenido de la superposición del popover.
classNamestringundefinedSobrescrituras de clases CSS utilitarias personalizadas.
styleCSSPropertiesundefinedSobrescrituras de estilo en línea.

Personalización y estadosLink

Popover es un overlay flotante sin visuales propias — colores, bordes, radios y sombras vienen del tema mediante className, que es un passthrough de cadena simple (esta primitiva no desempaqueta la forma de función de renderizado). React Aria refleja la animación de apertura/cierre y la colocación en el elemento como atributos data-*, por lo que las transiciones de entrada/salida se estilizan puramente desde CSS.

Estado / SlotMecanismo
classNamePassthrough de cadena simple fusionado en el overlay; el tema controla colores, bordes, radios, sombras
data-enteringPresente mientras el popover anima su entrada — usa variantes data-entering:
data-exitingPresente mientras el popover anima su salida — usa variantes data-exiting:
data-placementtop / bottom / left / right — offsets sensibles a la colocación
data-triggerNombre del componente disparador (p. ej. DialogTrigger)
placement / offset / crossOffsetSolo comportamiento de posicionamiento, sin visuales

Tailwind v4:

tsx
<Popover className="data-entering:animate-in data-entering:fade-in data-entering:zoom-in-95
                   data-exiting:animate-out data-exiting:fade-out
                   rounded-xl bg-surface border border-subtle shadow-xl p-4">
  <div>Contenido del popover</div>
</Popover>
Last updated on October 18, 2026

Was this page helpful?