Saltar al contenido principal

backdrop

Paquete: @tiendana/ngx-core/ui

Fondo oscuro semitransparente que cubre toda la pantalla. Se usa automáticamente en drawer y puede usarse en modales, diálogos, etc.

Características​

✅ Posición fija que cubre todo el viewport
✅ Background rgba(0, 0, 0, 0.7) por defecto
✅ z-index 4 (drawer usa z-index 5)
✅ Template vacío - solo estilos visuales
✅ Evento onClick (deprecated - usa (click) nativo)

API​

Outputs​

OutputTipoDescripción
onClickEventEmitter<MouseEvent>Deprecated - Usa (click) nativo en su lugar
Evento Deprecated

El evento onClick será eliminado en futuras versiones. Usa el evento nativo (click) de Angular:

// ❌ Deprecated
<backdrop (onClick)="close()" />

// ✅ Recomendado
<backdrop (click)="close()" />

Uso​

Con Drawer (Automático)​

El componente drawer incluye backdrop automáticamente cuando se abre:

<drawer #myDrawer>
<!-- Contenido -->
</drawer>

No necesitas agregar <backdrop> manualmente.

En Modales Personalizados​

@if (showModal()) {
<backdrop (click)="closeModal()" />

<div class="modal">
<h2>Modal Title</h2>
<p>Contenido del modal</p>
<button (click)="closeModal()">Cerrar</button>
</div>
}

Backdrop Sin Cierre​

<!-- No emite eventos - solo visual -->
<backdrop />

<div class="loading-spinner">
<p>Cargando...</p>
</div>

Estilos​

:host {
display: flex;
flex-direction: column;
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: rgba(0, 0, 0, 0.7);
align-items: center;
justify-content: center;
z-index: 4;
}

Personalización​

Puedes sobrescribir los estilos con CSS:

backdrop {
background: rgba(0, 0, 0, 0.5); // Más claro
}

// O usar una clase custom
backdrop.light {
background: rgba(255, 255, 255, 0.9);
}

z-index Hierarchy​

Backdrop: z-index 4
Drawer: z-index 5
Modal: z-index 6 (recomendado)
Tooltip: z-index 10 (recomendado)

Accesibilidad​

  • Agrega role="presentation" si es puramente visual
  • Para modales, usa aria-modal="true" en el contenedor del modal
  • Considera trap focus dentro del modal activo