Ir para o conteúdo principal Pular para a navegação de documentos
Check
in English

Spinners

Indique o estado de carregamento de um componente ou página com spinners Bootstrap, construídos inteiramente com HTML, CSS e sem JavaScript.

Sobre

Bootstrap “spinners” podem ser usados ​​para mostrar o estado de carregamento em seus projetos. Eles são construídos apenas com HTML e CSS, o que significa que você não precisa de nenhum JavaScript para criá-los. No entanto, você precisará de algum JavaScript personalizado para alternar sua visibilidade. Sua aparência, alinhamento e dimensionamento podem ser facilmente personalizados com nossas incríveis classes de utilidade.

Para fins de acessibilidade, cada carregador aqui inclui role="status"um arquivo <span class="visually-hidden">Loading...</span>.

O efeito de animação deste componente depende da prefers-reduced-motionconsulta de mídia. Consulte a seção de movimento reduzido de nossa documentação de acessibilidade .

Girador de borda

Use os giradores de borda para um indicador de carregamento leve.

Carregando...
html
<div class="spinner-border" role="status">
  <span class="visually-hidden">Loading...</span>
</div>

Cores

O girador de borda usa currentColorpara border-colorisso, o que significa que você pode personalizar a cor com utilitários de cor de texto . Você pode usar qualquer um dos nossos utilitários de cores de texto no spinner padrão.

Carregando...
Carregando...
Carregando...
Carregando...
Carregando...
Carregando...
Carregando...
Carregando...
html
<div class="spinner-border text-primary" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-border text-secondary" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-border text-success" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-border text-danger" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-border text-warning" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-border text-info" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-border text-light" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-border text-dark" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
Por que não usar border-colorutilitários? Cada girador de borda especifica uma transparentborda para pelo menos um lado, então os .border-{color}utilitários substituiriam isso.

Girador crescente

Se você não gosta de um girador de borda, mude para o girador de cultivo. Embora tecnicamente não gire, cresce repetidamente!

Carregando...
html
<div class="spinner-grow" role="status">
  <span class="visually-hidden">Loading...</span>
</div>

Mais uma vez, este spinner é construído com currentColor, para que você possa alterar facilmente sua aparência com utilitários de cor de texto . Aqui está em azul, junto com as variantes suportadas.

Carregando...
Carregando...
Carregando...
Carregando...
Carregando...
Carregando...
Carregando...
Carregando...
html
<div class="spinner-grow text-primary" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow text-secondary" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow text-success" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow text-danger" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow text-warning" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow text-info" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow text-light" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow text-dark" role="status">
  <span class="visually-hidden">Loading...</span>
</div>

Alinhamento

Spinners no Bootstrap são construídos com rems, currentColor, e display: inline-flex. Isso significa que eles podem ser facilmente redimensionados, recoloridos e alinhados rapidamente.

Margem

Use utilitários de margem como .m-5para espaçamento fácil.

Carregando...
html
<div class="spinner-border m-5" role="status">
  <span class="visually-hidden">Loading...</span>
</div>

Canal

Use utilitários flexbox , utilitários float ou utilitários de alinhamento de texto para colocar os spinners exatamente onde você precisa deles em qualquer situação.

Flexão

Carregando...
html
<div class="d-flex justify-content-center">
  <div class="spinner-border" role="status">
    <span class="visually-hidden">Loading...</span>
  </div>
</div>
Carregando...
html
<div class="d-flex align-items-center">
  <strong>Loading...</strong>
  <div class="spinner-border ms-auto" role="status" aria-hidden="true"></div>
</div>

Flutuadores

Carregando...
html
<div class="clearfix">
  <div class="spinner-border float-end" role="status">
    <span class="visually-hidden">Loading...</span>
  </div>
</div>

Alinhamento de texto

Carregando...
html
<div class="text-center">
  <div class="spinner-border" role="status">
    <span class="visually-hidden">Loading...</span>
  </div>
</div>

Tamanho

Adicione .spinner-border-sme .spinner-grow-smpara fazer um spinner menor que pode ser usado rapidamente em outros componentes.

Carregando...
Carregando...
html
<div class="spinner-border spinner-border-sm" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow spinner-grow-sm" role="status">
  <span class="visually-hidden">Loading...</span>
</div>

Ou use CSS personalizado ou estilos embutidos para alterar as dimensões conforme necessário.

Carregando...
Carregando...
html
<div class="spinner-border" style="width: 3rem; height: 3rem;" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow" style="width: 3rem; height: 3rem;" role="status">
  <span class="visually-hidden">Loading...</span>
</div>

Botões

Use spinners dentro dos botões para indicar que uma ação está sendo processada ou ocorrendo. Você também pode trocar o texto do elemento giratório e utilizar o texto do botão conforme necessário.

html
<button class="btn btn-primary" type="button" disabled>
  <span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>
  <span class="visually-hidden">Loading...</span>
</button>
<button class="btn btn-primary" type="button" disabled>
  <span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>
  Loading...
</button>
html
<button class="btn btn-primary" type="button" disabled>
  <span class="spinner-grow spinner-grow-sm" role="status" aria-hidden="true"></span>
  <span class="visually-hidden">Loading...</span>
</button>
<button class="btn btn-primary" type="button" disabled>
  <span class="spinner-grow spinner-grow-sm" role="status" aria-hidden="true"></span>
  Loading...
</button>

CSS

Variáveis

Adicionado na v5.2.0

Como parte da abordagem de variáveis ​​CSS em evolução do Bootstrap, os spinners agora usam variáveis ​​CSS locais .spinner-bordere .spinner-growpara 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.

Variáveis ​​do girador de borda:

  --#{$prefix}spinner-width: #{$spinner-width};
  --#{$prefix}spinner-height: #{$spinner-height};
  --#{$prefix}spinner-vertical-align: #{$spinner-vertical-align};
  --#{$prefix}spinner-border-width: #{$spinner-border-width};
  --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed};
  --#{$prefix}spinner-animation-name: spinner-border;
  

Variáveis ​​de spinner crescentes:

  --#{$prefix}spinner-width: #{$spinner-width};
  --#{$prefix}spinner-height: #{$spinner-height};
  --#{$prefix}spinner-vertical-align: #{$spinner-vertical-align};
  --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed};
  --#{$prefix}spinner-animation-name: spinner-grow;
  

Para ambos os spinners, pequenas classes modificadoras de spinner são usadas para atualizar os valores dessas variáveis ​​CSS conforme necessário. Por exemplo, a .spinner-border-smclasse faz o seguinte:

  --#{$prefix}spinner-width: #{$spinner-width-sm};
  --#{$prefix}spinner-height: #{$spinner-height-sm};
  --#{$prefix}spinner-border-width: #{$spinner-border-width-sm};
  

Variáveis ​​atrevidas

$spinner-width:           2rem;
$spinner-height:          $spinner-width;
$spinner-vertical-align:  -.125em;
$spinner-border-width:    .25em;
$spinner-animation-speed: .75s;

$spinner-width-sm:        1rem;
$spinner-height-sm:       $spinner-width-sm;
$spinner-border-width-sm: .2em;

Quadros-chave

Usado para criar as animações CSS para nossos spinners. Incluído em scss/_spinners.scss.

@keyframes spinner-border {
  to { transform: rotate(360deg) #{"/* rtl:ignore */"}; }
}
@keyframes spinner-grow {
  0% {
    transform: scale(0);
  }
  50% {
    opacity: 1;
    transform: none;
  }
}