Alerts
Proporciona mensajes de feedback contextuales para acciones típicas del usuario con el puñado de mensajes de alert disponibles y flexibles.
Ejemplos
Los alerts están disponibles para cualquier longitud de texto, así como un botón de cierre
opcional. Para un estilo adecuado, usa una de las ocho clases contextuales requeridas (ej.,
.alert-success). Para el cierre inline, usa el plugin JavaScript de
alerts.
<div class="alert alert-primary" role="alert">
A simple primary alert—check it out!
</div>
<div class="alert alert-secondary" role="alert">
A simple secondary alert—check it out!
</div>
<div class="alert alert-success" role="alert">
A simple success alert—check it out!
</div>
<div class="alert alert-danger" role="alert">
A simple danger alert—check it out!
</div>
<div class="alert alert-warning" role="alert">
A simple warning alert—check it out!
</div>
<div class="alert alert-info" role="alert">
A simple info alert—check it out!
</div>
<div class="alert alert-light" role="alert">
A simple light alert—check it out!
</div>
<div class="alert alert-dark" role="alert">
A simple dark alert—check it out!
</div>
Transmisión de significado a tecnologías asistivas
Usar color para añadir significado solo proporciona una indicación visual, que no será
transmitida a los usuarios de tecnologías asistivas – como los lectores de pantalla. Asegúrate de que la
información denotada por el color sea evidente desde el contenido mismo (ej. el texto visible), o se incluya
mediante medios alternativos, como texto adicional oculto con la clase .visually-hidden.
Color del enlace
Usa la clase utilitaria .alert-link para proporcionar rápidamente enlaces de
colores coincidentes dentro de cualquier alert.
<div class="alert alert-primary" role="alert">
A simple primary alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
</div>
<div class="alert alert-secondary" role="alert">
A simple secondary alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
</div>
<div class="alert alert-success" role="alert">
A simple success alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
</div>
<div class="alert alert-danger" role="alert">
A simple danger alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
</div>
<div class="alert alert-warning" role="alert">
A simple warning alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
</div>
<div class="alert alert-info" role="alert">
A simple info alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
</div>
<div class="alert alert-light" role="alert">
A simple light alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
</div>
<div class="alert alert-dark" role="alert">
A simple dark alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
</div>
Contenido adicional
Los alerts también pueden contener elementos HTML adicionales como encabezados, párrafos y divisores.
¡Bien hecho!
¡Así es, has leído con éxito este importante mensaje de alert. Este texto de ejemplo va a ser un poco más largo para que puedas ver cómo funciona el espaciado dentro de un alert con este tipo de contenido.
Cuando lo necesites, asegúrate de usar utilidades de margin para mantener todo ordenado y limpio.
<div class="alert alert-success" role="alert">
<h4 class="alert-heading">Well done!</h4>
<p>Aww yeah, you successfully read this important alert message. This example text is going to run a bit longer so that you can see how spacing within an alert works with this kind of content.</p>
<hr>
<p class="mb-0">Whenever you need to, be sure to use margin utilities to keep things nice and tidy.</p>
</div>
Iconos
De manera similar, puedes usar utilidades de flexbox y Bootstrap Icons para crear alerts con iconos. Dependiendo de tus iconos y contenido, puede que quieras añadir más utilidades o estilos personalizados.
<div class="alert alert-primary d-flex align-items-center" role="alert">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="bi bi-exclamation-triangle-fill flex-shrink-0 me-2" viewBox="0 0 16 16" role="img" aria-label="Warning:">
<path d="M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"/>
</svg>
<div>
An example alert with an icon
</div>
</div>
¿Necesitas más de un icono para tus alerts? Considera usar más Bootstrap Icons y hacer un SVG sprite local así para referenciar fácilmente los mismos iconos repetidamente.
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="check-circle-fill" fill="currentColor" viewBox="0 0 16 16">
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z"/>
</symbol>
<symbol id="info-fill" fill="currentColor" viewBox="0 0 16 16">
<path d="M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16zm.93-9.412-1 4.705c-.07.34.029.533.304.533.194 0 .487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703 0-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381 2.29-.287zM8 5.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"/>
</symbol>
<symbol id="exclamation-triangle-fill" fill="currentColor" viewBox="0 0 16 16">
<path d="M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"/>
</symbol>
</svg>
<div class="alert alert-primary d-flex align-items-center" role="alert">
<svg class="bi flex-shrink-0 me-2" width="24" height="24" role="img" aria-label="Info:"><use xlink:href="#info-fill"/></svg>
<div>
An example alert with an icon
</div>
</div>
<div class="alert alert-success d-flex align-items-center" role="alert">
<svg class="bi flex-shrink-0 me-2" width="24" height="24" role="img" aria-label="Success:"><use xlink:href="#check-circle-fill"/></svg>
<div>
An example success alert with an icon
</div>
</div>
<div class="alert alert-warning d-flex align-items-center" role="alert">
<svg class="bi flex-shrink-0 me-2" width="24" height="24" role="img" aria-label="Warning:"><use xlink:href="#exclamation-triangle-fill"/></svg>
<div>
An example warning alert with an icon
</div>
</div>
<div class="alert alert-danger d-flex align-items-center" role="alert">
<svg class="bi flex-shrink-0 me-2" width="24" height="24" role="img" aria-label="Danger:"><use xlink:href="#exclamation-triangle-fill"/></svg>
<div>
An example danger alert with an icon
</div>
</div>
Cierre
Usando el plugin JavaScript de alert, es posible cerrar cualquier alert inline. Así es como:
- Asegúrate de haber cargado el plugin de alert, o el JavaScript compilado de Bootstrap.
- Añade un botón de cierre y la clase
.alert-dismissible, que añade padding extra a la derecha del alert y posiciona el botón de cierre. - En el botón de cierre, añade el atributo
data-bs-dismiss="alert", que activa la funcionalidad JavaScript. Asegúrate de usar el elemento<button>con él para un comportamiento adecuado en todos los dispositivos. - Para animar los alerts al cerrarlos, asegúrate de añadir las clases
.fadey.show.
Puedes ver esto en acción con una demo en vivo:
<div class="alert alert-warning alert-dismissible fade show" role="alert">
<strong>Holy guacamole!</strong> You should check in on some of those fields below.
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
closed.bs.alert y establezca programáticamente focus() en la ubicación más apropiada
de la página. Si planeas mover el foco a un elemento no interactivo que normalmente no recibe foco, asegúrate
de añadir tabindex="-1" al elemento.Sass
Variables
$alert-padding-y: $spacer;
$alert-padding-x: $spacer;
$alert-margin-bottom: 1rem;
$alert-border-radius: $border-radius;
$alert-link-font-weight: $font-weight-bold;
$alert-border-width: $border-width;
$alert-bg-scale: -80%;
$alert-border-scale: -70%;
$alert-color-scale: 40%;
$alert-dismissible-padding-r: $alert-padding-x * 3; // 3x covers width of x plus default padding on either side
Mixin de variantes
Usado en combinación con $theme-colors para crear clases modificadoras
contextuales para nuestros alerts.
@mixin alert-variant($background, $border, $color) {
color: $color;
@include gradient-bg($background);
border-color: $border;
.alert-link {
color: shade-color($color, 20%);
}
}
Loop
Loop que genera las clases modificadoras con el mixin alert-variant().
// Generate contextual modifier classes for colorizing the alert.
@each $state, $value in $theme-colors {
$alert-background: shift-color($value, $alert-bg-scale);
$alert-border: shift-color($value, $alert-border-scale);
$alert-color: shift-color($value, $alert-color-scale);
@if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) {
$alert-color: mix($value, color-contrast($alert-background), abs($alert-color-scale));
}
.alert-#{$state} {
@include alert-variant($alert-background, $alert-border, $alert-color);
}
}
Comportamiento de JavaScript
Disparadores
Habilita el cierre de un alert vía JavaScript:
var alertList = document.querySelectorAll('.alert')
alertList.forEach(function (alert) {
new bootstrap.Alert(alert)
})
O con atributos data en un botón dentro del alert, como se
demuestra arriba:
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
Ten en cuenta que cerrar un alert lo eliminará del DOM.
Métodos
Puedes crear una instancia de alert con el constructor de alert, por ejemplo:
var myAlert = document.getElementById('myAlert')
var bsAlert = new bootstrap.Alert(myAlert)
Esto hace que un alert escuche eventos de clic en elementos descendientes que tienen el
atributo data-bs-dismiss="alert". (No es necesario cuando se usa la auto-inicialización de la
data-api.)
| Método | Descripción |
|---|---|
close
|
Cierra un alert eliminándolo del DOM. Si las clases .fade y
.show están presentes en el elemento, el alert se desvanecerá antes de ser eliminado. |
dispose
|
Destruye el alert de un elemento. (Elimina los datos almacenados en el elemento DOM) |
getInstance
|
Método estático que permite obtener la instancia de alert asociada a un elemento
DOM, puedes usarlo así: bootstrap.Alert.getInstance(alert) |
getOrCreateInstance
|
Método estático que devuelve una instancia de alert asociada a un elemento DOM o
crea una nueva en caso de que no estuviera inicializada.
Puedes usarlo así: bootstrap.Alert.getOrCreateInstance(element) |
var alertNode = document.querySelector('.alert')
var alert = bootstrap.Alert.getInstance(alertNode)
alert.close()
Eventos
El plugin de alert de Bootstrap expone algunos eventos para conectarse a la funcionalidad de alert.
| Evento | Descripción |
|---|---|
close.bs.alert |
Se dispara inmediatamente cuando se llama al método de instancia close.
|
closed.bs.alert |
Se dispara cuando el alert se ha cerrado y las transiciones CSS han finalizado. |
var myAlert = document.getElementById('myAlert')
myAlert.addEventListener('closed.bs.alert', function () {
// do something, for instance, explicitly move focus to the most appropriate element,
// so it doesn't get lost/reset to the start of the page
// document.getElementById('...').focus()
})