Generator loaderów CSS
Spinner pokazuje użytkownikowi, że coś się dzieje. Ten generator tworzy jeden okrągły spinner w CSS: ustaw średnicę, grubość obramowania, kolor akcentu i prędkość obrotu, obserwuj podgląd na żywo i skopiuj kod CSS. Wszystko to czysty CSS, bez SVG, bez JavaScriptu i bez zewnętrznych bibliotek.
Jak korzystać z generatora
-
1
Ustaw rozmiar
Średnica spinnera w pikselach. 40-80 px pasuje do większości przycisków i obszarów treści.
-
2
Ustaw grubość obramowania
Pierścień to obramowanie narysowane na kole. Grubsze obramowanie daje wyraźniejszy łuk; 4-8 px wygląda dobrze przy 60 px.
-
3
Wybierz kolor
Kolor akcentu obracającego się łuku. Reszta pierścienia pozostaje jasnoszara, aby łuk się wyróżniał.
-
4
Ustaw prędkość i skopiuj CSS
Czas pełnego obrotu w sekundach. Około 1 sekundy to częsty złoty środek; poniżej 500 ms wygląda gorączkowo, a powyżej 2 s ospale.
Jak działa wygenerowany CSS
.loader {
width: 60px;
height: 60px;
border: 6px solid #eee;
border-top-color: #10b981;
border-radius: 50%;
animation: spin 1s linear infinite;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
Spinner to koło narysowane grubym obramowaniem. Reguła border-top-color maluje tylko górną część pierścienia kolorem akcentu, dzięki czemu pierścień wygląda jak łuk, a reguła @keyframes spin obraca go wokół środka. Obrót przez transform: rotate() utrzymuje animację lekką, bo przeglądarka przesuwa element na kompozytorze zamiast rysować go klatka po klatce.
Aby wyświetlić go na stronie, dodaj jeden element i załaduj CSS:
<div class="loader" role="status" aria-label="Ładowanie"></div>
Zadbaj o dostępność
- Dodaj
role="status", aby czytniki ekranu zapowiadały spinner. - Ustaw
aria-labelz tekstem stanu, na przykład “Ładowanie”. - Nie ukrywaj treści za spinnerem dłużej niż kilka sekund bez awaryjnego limitu czasu.
- Szanuj
prefers-reduced-motion. Użytkownikom, którzy wyłączyli animacje, zamiast obrotu pokaż proste wygaszenie lub statyczny tekst “Ładowanie…”:
@media (prefers-reduced-motion: reduce) {
.loader { animation: none; background: currentColor; opacity: .4; }
}
Kiedy używać spinnera, a kiedy optymistycznego UI
- Odpowiedź poniżej 100 ms: spinner zbędny; ludzkie oko ledwie dostrzega opóźnienie.
- 100 ms – 1 s: subtelny spinner (małe kółko, tekst przycisku “Ładowanie…”) zapobiega podwójnym kliknięciom.
- 1 s – 10 s: wyraźny spinner, najlepiej z postępem, jeśli da się go zmierzyć.
- > 10 s: to nie problem spinnera; ustal, co jest wolne, i napraw to.
Przy wysyłaniu formularzy i klikaniu przycisków spinner wewnątrz przycisku zwykle sprawdza się lepiej niż nakładka na całą stronę.
Najczęściej zadawane pytania
CSS do prostych jednoelementowych spinnerów (sztuczka z obracaniem czterech obramowań). SVG, gdy potrzebujesz zwężającej się smugi, wielu animacji stroke-dasharray albo wypełnionych segmentów wyglądających jak pociągnięcia pędzla. CSS jest mniejszy i prostszy; SVG bardziej elastyczny.
Prawdopodobnie dlatego, że obracasz duży element albo animujesz właściwość niekompozytowaną. Utrzymuj mały rozmiar spinnera, używaj transform: rotate() (nie top/margin) i unikaj uruchamiania go, gdy działają inne ciężkie animacje.
Niemal powszechnie zgodnie z ruchem wskazówek zegara. Spinnery obracające się w przeciwną stronę wydają się subtelnie nie tak, bo większość rzeczywistych wskazówek obrotu (zegary, wiatraki) idzie zgodnie z ruchem zegara. Trzymaj się konwencji, chyba że masz konkretny powód.
Za pomocą setTimeout(..., 300) w JavaScripcie, który dodaje klasę loadera, plus clearTimeout, jeśli operacja skończy się wcześniej. Zapobiega migotaniu przy szybkich odpowiedziach, nie ukrywając realnych opóźnień.
Powiązane narzędzia
Generator konfiguracji webpack
Utwórz plik webpack.config.js dla webpacka 5 do czystego JavaScriptu, Reacta lub Vue: TypeScript, Babel, CSS lub Sass, obrazy, HtmlWebpackPlugin, serwer deweloperski i polecenie npm install.
Generator kolorów analogicznych
Twórz pięciokolorowe palety analogiczne z dowolnego koloru bazowego: klasyczną trójkę, dwie zewnętrzne barwy oraz wartości hex, RGB i HSL.
Walidator XSD
Waliduj dokument XML wobec schematu XSD i zgłaszaj niezgodności elementów i typów z dokładnymi numerami wierszy.
Generator fikcyjnych numerów telefonu
Generuj do 50 fikcyjnych numerów z oficjalnie zastrzeżonych zakresów w pięciu krajach.
Kod na obraz
Wklej kod, ustaw motyw, kolory, rozmiar czcionki, odstępy, nagłówek i numery wierszy, sprawdź podgląd canvas i pobierz PNG. Renderowanie zwykłego tekstu, bez podświetlania składni.
Dekoder Protocol Buffers
Dekoduj lokalnie bajty Protobuf z zapisu hex, Base64, Base64URL, tekstu lub pliku, analizuj pola i eksportuj prywatny raport.
Narzędzie jest dostępne w innych językach
- เครื่องมือสร้าง CSS Loader [TH]
- Trình tạo CSS Loader [VI]
- Generator Loader CSS [ID]
- مولّد مؤشرات التحميل بلغة CSS [AR]
- CSS-Loader-Generator [DE]
- CSSローディングアニメーション生成ツール [JA]
- Gerador de Loader CSS [PT]
- Generador de Cargadores CSS [ES]
- CSS 로딩 애니메이션 생성기 [KO]
- CSS-laddningsgenerator [SV]
- Générateur de chargeur CSS [FR]
- CSS-loadergenerator [NL]
- CSS Loader Generator [EN]
- Generatore di Loader CSS [IT]
- Генератор CSS-загрузчиков [RU]
- CSS Yükleyici Oluşturucu [TR]
- CSS 加载动画生成器 [ZH]