Alertas
Forneça mensagens de feedback contextuais para ações típicas do usuário com um punhado de mensagens de alerta flexíveis e disponíveis.
Exemplos
Alertas estão disponíveis para qualquer tamanho de texto, bem como um botão de fechamento opcional. Para um estilo adequado, use uma das oito classes contextuais necessárias.alert-success
(por exemplo, ). Para dispensa em linha, use o plug-in JavaScript de alertas .
<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>
Transmitindo significado às tecnologias assistivas
Usar cores para adicionar significado fornece apenas uma indicação visual, que não será transmitida aos usuários de tecnologias assistivas – como leitores de tela. Certifique-se de que as informações indicadas pela cor sejam óbvias do próprio conteúdo (por exemplo, o texto visível) ou sejam incluídas por meios alternativos, como texto adicional oculto com a .visually-hidden
classe.
Exemplo ao vivo
Clique no botão abaixo para mostrar um alerta (oculto com estilos embutidos para iniciar) e, em seguida, descarte-o (e destrua-o) com o botão Fechar integrado.
<div id="liveAlertPlaceholder"></div>
<button type="button" class="btn btn-primary" id="liveAlertBtn">Show live alert</button>
Usamos o seguinte JavaScript para acionar nossa demonstração de alerta ao vivo:
const alertPlaceholder = document.getElementById('liveAlertPlaceholder')
const alert = (message, type) => {
const wrapper = document.createElement('div')
wrapper.innerHTML = [
`<div class="alert alert-${type} alert-dismissible" role="alert">`,
` <div>${message}</div>`,
' <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>',
'</div>'
].join('')
alertPlaceholder.append(wrapper)
}
const alertTrigger = document.getElementById('liveAlertBtn')
if (alertTrigger) {
alertTrigger.addEventListener('click', () => {
alert('Nice, you triggered this alert message!', 'success')
})
}
Cor do link
Use a .alert-link
classe de utilitário para fornecer rapidamente links coloridos correspondentes em qualquer alerta.
<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>
Conteúdo adicional
Os alertas também podem conter elementos HTML adicionais, como títulos, parágrafos e divisores.
Bem feito!
Ah, sim, você leu com sucesso esta importante mensagem de alerta. Este texto de exemplo ficará um pouco mais longo para que você possa ver como o espaçamento em um alerta funciona com esse tipo de conteúdo.
Sempre que precisar, certifique-se de usar utilitários de margem para manter as coisas bonitas e organizadas.
<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>
Ícones
Da mesma forma, você pode usar utilitários flexbox e ícones do Bootstrap para criar alertas com ícones. Dependendo de seus ícones e conteúdo, você pode querer adicionar mais utilitários ou estilos personalizados.
<div class="alert alert-primary d-flex align-items-center" role="alert">
<svg xmlns="http://www.w3.org/2000/svg" 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>
Precisa de mais de um ícone para seus alertas? Considere usar mais ícones do Bootstrap e criar um sprite SVG local para referenciar facilmente os mesmos ícones repetidamente.
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="check-circle-fill" 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" 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" 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" 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" 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" 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" role="img" aria-label="Danger:"><use xlink:href="#exclamation-triangle-fill"/></svg>
<div>
An example danger alert with an icon
</div>
</div>
Dispensando
Usando o plugin JavaScript de alerta, é possível dispensar qualquer alerta inline. Veja como:
- Certifique-se de ter carregado o plugin de alerta ou o JavaScript Bootstrap compilado.
- Adicione um botão Fechar e a
.alert-dismissible
classe, que adiciona preenchimento extra à direita do alerta e posiciona o botão Fechar. - No botão fechar, adicione o
data-bs-dismiss="alert"
atributo, que aciona a funcionalidade JavaScript. Certifique-se de usar o<button>
elemento com ele para um comportamento adequado em todos os dispositivos. - Para animar alertas ao dispensá-los, certifique-se de adicionar as classes
.fade
e ..show
Você pode ver isso em ação com uma demonstração ao 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
evento e defina programaticamente
focus()
para o local mais apropriado na página. Se você estiver planejando mover o foco para um elemento não interativo que normalmente não recebe o foco, certifique-se de adicionar
tabindex="-1"
ao elemento.
CSS
Variáveis
Adicionado na v5.2.0Como parte da abordagem de variáveis CSS em evolução do Bootstrap, os alertas agora usam variáveis CSS locais .alert
para personalização aprimorada em tempo real. Os valores das variáveis CSS são definidos por meio do Sass, portanto, a personalização do Sass também é suportada.
--#{$prefix}alert-bg: transparent;
--#{$prefix}alert-padding-x: #{$alert-padding-x};
--#{$prefix}alert-padding-y: #{$alert-padding-y};
--#{$prefix}alert-margin-bottom: #{$alert-margin-bottom};
--#{$prefix}alert-color: inherit;
--#{$prefix}alert-border-color: transparent;
--#{$prefix}alert-border: #{$alert-border-width} solid var(--#{$prefix}alert-border-color);
--#{$prefix}alert-border-radius: #{$alert-border-radius};
Variáveis atrevidas
$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
Mistura atrevida
Usado em combinação com $theme-colors
para criar classes modificadoras contextuais para nossos alertas.
@mixin alert-variant($background, $border, $color) {
--#{$prefix}alert-color: #{$color};
--#{$prefix}alert-bg: #{$background};
--#{$prefix}alert-border-color: #{$border};
@if $enable-gradients {
background-image: var(--#{$prefix}gradient);
}
.alert-link {
color: shade-color($color, 20%);
}
}
Laço atrevido
Loop que gera as classes modificadoras com o alert-variant()
mixin.
// 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);
}
}
Comportamento JavaScript
Inicializar
Inicializar elementos como alertas
const alertList = document.querySelectorAll('.alert')
const alerts = [...alertList].map(element => new bootstrap.Alert(element))
Com o único propósito de dispensar um alerta, não é necessário inicializar o componente manualmente por meio da API JS. Ao fazer uso de data-bs-dismiss="alert"
, o componente será inicializado automaticamente e devidamente descartado.
Consulte a seção de gatilhos para obter mais detalhes.
Gatilhos
A demissão pode ser obtida com o data
atributo em um botão dentro do alerta , conforme demonstrado abaixo:
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
ou em um botão fora do alerta usando o data-bs-target
conforme demonstrado abaixo:
<button type="button" class="btn-close" data-bs-dismiss="alert" data-bs-target="#my-alert" aria-label="Close"></button>
Observe que fechar um alerta irá removê-lo do DOM.
Métodos
Você pode criar uma instância de alerta com o construtor de alerta, por exemplo:
const bsAlert = new bootstrap.Alert('#myAlert')
Isso faz com que um alerta escute eventos de clique em elementos descendentes que possuem o data-bs-dismiss="alert"
atributo. (Não é necessário ao usar a inicialização automática da API de dados.)
Método | Descrição |
---|---|
close |
Fecha um alerta removendo-o do DOM. Se as classes .fade e .show estiverem presentes no elemento, o alerta desaparecerá antes de ser removido. |
dispose |
Destrói o alerta de um elemento. (Remove os dados armazenados no elemento DOM) |
getInstance |
Método estático que permite obter a instância de alerta associada a um elemento DOM. Por exemplo: bootstrap.Alert.getInstance(alert) . |
getOrCreateInstance |
Método estático que retorna uma instância de alerta associada a um elemento DOM ou cria uma nova caso não tenha sido inicializada. Você pode usar assim: bootstrap.Alert.getOrCreateInstance(element) . |
Uso básico:
const alert = bootstrap.Alert.getOrCreateInstance('#myAlert')
alert.close()
Eventos
O plugin de alerta do Bootstrap expõe alguns eventos para se conectar à funcionalidade de alerta.
Evento | Descrição |
---|---|
close.bs.alert |
Dispara imediatamente quando o close método de instância é chamado. |
closed.bs.alert |
Disparado quando o alerta foi fechado e as transições CSS foram concluídas. |
const myAlert = document.getElementById('myAlert')
myAlert.addEventListener('closed.bs.alert', event => {
// 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()
})