Spinners
Indicate u statu di carica di un cumpunente o di una pagina cù i spinners Bootstrap, custruitu interamente cù HTML, CSS, è senza JavaScript.
À propositu
Bootstrap "spinners" pò esse usatu per vede u statu di carica in i vostri prughjetti. Sò custruiti solu cù HTML è CSS, chì significa chì ùn avete micca bisognu di JavaScript per creà. Averete, però, bisognu di qualchì JavaScript persunalizatu per cambià a so visibilità. U so aspettu, l'allineamentu è a dimensione pò esse facilmente persunalizati cù e nostre classi di utilità incredibili.
Per scopi di accessibilità, ogni caricatore quì include role="status"
è un <span class="visually-hidden">Loading...</span>
.
prefers-reduced-motion
media query. Vede a
sezione di movimentu ridottu di a nostra documentazione d'accessibilità .
Spinner di cunfini
Aduprate i spinners di cunfini per un indicatore di carica ligera.
<div class="spinner-border" role="status">
<span class="visually-hidden">Loading...</span>
</div>
Culori
U spinner di cunfini usa currentColor
per u so border-color
, chì significa chì pudete persunalizà u culore cù utilità di culore di testu . Pudete utilizà qualsiasi di e nostre utilità di culore di testu nantu à u spinner standard.
<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>
border-color
utilità? Ogni spinner di cunfini specifica un
transparent
cunfini per almenu un latu, cusì l'
.border-{color}
utilità anu da annunzià quellu.
Spinner in crescita
Se ùn ti piace micca un spinner di cunfini, cambia à u spinner di crescita. Ancu s'ellu ùn hè micca tecnicamente spin, cresce ripetutamente!
<div class="spinner-grow" role="status">
<span class="visually-hidden">Loading...</span>
</div>
Una volta, stu spinner hè custruitu cù currentColor
, cusì pudete facilmente cambià a so apparenza cù utilità di culore di testu . Quì hè in blu, cù e varianti supportati.
<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>
Allineamentu
Spinners in Bootstrap sò custruiti cù rem
s, currentColor
, è display: inline-flex
. Questu significa chì ponu esse facilmente ridimensionati, ricolorati è allinati rapidamente.
Margine
Aduprate utilità di marghjini cum'è .m-5
per un spaziu faciule.
<div class="spinner-border m-5" role="status">
<span class="visually-hidden">Loading...</span>
</div>
Placement
Aduprate l'utilità flexbox , l'utilità float , o l'utilità di allineamentu di testu per mette i spinner esattamente induve ne avete bisognu in ogni situazione.
Flex
<div class="d-flex justify-content-center">
<div class="spinner-border" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
<div class="d-flex align-items-center">
<strong>Loading...</strong>
<div class="spinner-border ms-auto" role="status" aria-hidden="true"></div>
</div>
Flotti
<div class="clearfix">
<div class="spinner-border float-end" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
Allineate u testu
<div class="text-center">
<div class="spinner-border" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
Taglia
Aghjunghjite .spinner-border-sm
è .spinner-grow-sm
per fà un spinner più chjucu chì pò esse rapidamente utilizatu in altri cumpunenti.
<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>
Or, utilizate CSS persunalizati o stili inline per cambià e dimensioni cum'è necessariu.
<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>
Bottoni
Aduprate spinners in i buttoni per indicà chì un'azzione hè attualmente in elaborazione o in corso. Pudete ancu scambià u testu fora di l'elementu spinner è aduprà u testu di u buttone quantu necessariu.
<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>
<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
Variabili
Aggiuntu in v5.2.0Comu parte di l'approcciu di variabili CSS in evoluzione di Bootstrap, i spinners usanu avà variabili CSS lucali nantu à .spinner-border
è .spinner-grow
per una persunalizazione rinfurzata in tempu reale. I valori per e variabili CSS sò stabiliti via Sass, cusì a persunalizazione di Sass hè ancu supportata.
Variabili di spinner di cunfini:
--#{$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;
Variabili di spinner crescente:
--#{$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;
Per i dui spinners, i picculi classi di modificatori di spinner sò usati per aghjurnà i valori di sti variàbili CSS cum'è necessariu. Per esempiu, a .spinner-border-sm
classa face i seguenti:
--#{$prefix}spinner-width: #{$spinner-width-sm};
--#{$prefix}spinner-height: #{$spinner-height-sm};
--#{$prefix}spinner-border-width: #{$spinner-border-width-sm};
Variabili Sass
$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;
Keyframes
Adupratu per creà l'animazioni CSS per i nostri spinners. Inclusu in scss/_spinners.scss
.
@keyframes spinner-border {
to { transform: rotate(360deg) #{"/* rtl:ignore */"}; }
}
@keyframes spinner-grow {
0% {
transform: scale(0);
}
50% {
opacity: 1;
transform: none;
}
}