Popup

Mantenedor:
amje
GitHub
open
hasArrow
placement
import {Popup} from '@gravity-ui/uikit';

Puedes usar un Popup para mostrar contenido flotante sobre la página. Técnicamente, es un envoltorio de una interfaz de usuario flotante con algunos valores predeterminados. Para gestionar Popup la visibilidad, utilice la open propiedad. Los componentes Popup secundarios se representan dentro del Portal componente. Para deshabilitar este comportamiento, utilice la disablePortal propiedad.

Ancla

Para especificar el ancla de un elemento flotante, puede usar la anchorElement propiedad.

const [buttonElement, setButtonElement] = React.useState(null);
const [open, setOpen] = React.useState(false);

<Button ref={setButtonElement} onClick={() => setOpen((prevOpen) => !prevOpen)}>
  Toggle Popup
</Button>
<Popup anchorElement={buttonElement} open={open} placement="bottom">
  Content
</Popup>

Colocación

Utilice la placement propiedad para gestionar la Popup posición alrededor del elemento de anclaje. De forma predeterminada, Popup usa flip middleware para evitar el desbordamiento. Si la propiedad se establece en una matriz, el primer elemento se usará como valor de ubicación predeterminado y el resto se usará como ubicaciones alternativas. También es aceptable usar los valores auto, auto-start, auto-end para usar el middleware AutoPlacement en lugar de flip.

Anchor
Top Start
Top
Top End
Right Start
Right
Right End
Bottom End
Bottom
Bottom Start
Left End
Left
Left Start
const [boxElement, setBoxElement] = React.useState(null);

<div ref={setBoxElement} />
<Popup open anchorElement={boxElement} placement="top-start">Top Start</Popup>
<Popup open anchorElement={boxElement} placement="top">Top</Popup>
<Popup open anchorElement={boxElement} placement="top-end">Top End</Popup>
<Popup open anchorElement={boxElement} placement="right-start">Right Start</Popup>
<Popup open anchorElement={boxElement} placement="right">Right</Popup>
<Popup open anchorElement={boxElement} placement="right-end">Right End</Popup>
<Popup open anchorElement={boxElement} placement="bottom-end">Bottom End</Popup>
<Popup open anchorElement={boxElement} placement="bottom">Bottom</Popup>
<Popup open anchorElement={boxElement} placement="bottom-start">Bottom Start</Popup>
<Popup open anchorElement={boxElement} placement="left-end">Left End</Popup>
<Popup open anchorElement={boxElement} placement="left">Left</Popup>
<Popup open anchorElement={boxElement} placement="left-start">Left Start</Popup>

Propiedades

NombreDescripciónTipoPredeterminado
anchorElementElemento de anclaje. También puede ser un VirtualElementPopupAnchorElement
aria, descrita poraria-describedby atributo. Úselo si tiene nodos de etiqueta y descripciónstring
etiqueta ariaaria-label atributo. Úselo solo si no tiene ningún subtítulo visiblestring
aria - etiquetada poraria-labelledby atributo. Es preferible si tiene subtítulos visiblesstring
niñosCualquier contenido de ReactReact.ReactNode
classNameclass Atributo HTML para el nodo raízstring
disableEscapeKeyDownDeshabilita la activación de cerca Escbooleanfalse
disableFocusOutDesactiva la activación del cierre al enfocarbooleanfalse
disableOutsideClickDesactiva la activación de clics cercanos al hacer clic desde el exteriorbooleanfalse
disablePortalDeshabilita el uso Portal para niñosbooleanfalse
disableTransitionDesactiva la animación de la apertura/desaparición de ventanas emergentesbooleanfalse
floatingClassNameClase adicional para aplicar al Floating UI elementostring
floatingContextFloating UI contexto para proporcionar interaccionesFloatingRootContext
floatingInteractionsAnular interacciones Floating UIMatriz<ElementProps>
floatingMiddlewaresFloating UI middleware. Si se configuran, sobrescribirán por completo los middlewares predeterminados.Matriz<Middleware>
floatingStylesEstilos que se van a aplicar al Floating UI elementoReact.CSSProperties
focusOrderEl orden en el que se centra el círculoMatriz<'referencia'| 'flotante'| 'contenido'>['content']
hasArrowRepresenta la flecha que apunta al anclabooleanfalse
identificaciónid Atributo HTMLstring
initialFocusElemento inicial en el que centrarse. El número positivo es el índice del elemento tabulable.number Reactar.Ref<HTMLElement>
keepMountedPopup no se eliminará del DOM al ocultarsebooleanfalse
modalPermite un comportamiento de captura de enfoquebooleanfalse
compensarFloating UI valor de compensaciónPopupOffset4
onOpenChangeManeja Popup el evento de cambio abiertoFunction
onTransitionInAnimación emergente abierta al iniciarFunction
onTransitionInCompleteAl terminar, abre la animación emergenteFunction
onTransitionOutAnimación emergente al iniciar y cerrarFunction
onTransitionOutCompleteAl terminar, cierre la animación emergenteFunction
abiertoGestiona Popup la visibilidadbooleanfalse
colocaciónFloating UI colocaciónPlacement Array: inicio<Placement> automático , finalización automática
qaAtributo de prueba (data-qa)string
returnFocusElemento en el que centrarse el cierreboolean Reactar.Ref<HTMLElement>true
papelFunción de accesibilidad de la ventana emergentestring
estrategiaFloating UI estrategia de posicionamientoabsolute fixedabsolute
estilostyle Atributo HTML para nodo raízReact.CSSProperties

API CSS

NombreDescripción
--g-popup-background-colorColor de fondo
--g-popup-border-colorColor del borde
--g-popup-border-widthAncho del borde