Czym jest to narzędzie?
Loader CSS to niewielki animowany element — obracający się pierścień, skaczące kropki, pulsujące koło albo poruszający się pasek postępu — używany, by pokazać, że treść się ładuje, bez pętli animacji w JavaScript i bez obrazka czy GIF-a. Składa się z kilku reguł CSS oraz bloku @keyframes, który definiuje, jak element zmienia się w czasie.
To narzędzie generuje cztery popularne wzorce loadera z rzeczywistym, działającym CSS-em: obracający się spinner oparty na obramowaniu, trzy kropki skaczące po kolei, koło pulsujące na zewnątrz i do wewnątrz oraz pasek z przesuwającym się wypełnieniem. Ustaw rozmiar, kolor i czas trwania w podglądzie na żywo, a następnie skopiuj wygenerowany CSS i minimalny element HTML, do którego się on odnosi.
Źródło: CSS Animations Level 1, W3C — specyfikacja definiująca @keyframes i właściwości animacji, na których oparte są te loadery.
Dlaczego warto go używać?
- Podgląd na żywo animuje się w czasie rzeczywistym przy zmianie stylu, rozmiaru, koloru lub szybkości — widzisz dokładnie to, co wdrożysz.
- Generuje pełny CSS, łącznie z blokiem @keyframes, a nie tylko fragment do dokończenia samodzielnie.
- Generuje też dokładny znacznik HTML, którego oczekuje CSS, więc nie musisz zgadywać nazw klas ani struktury elementów.
- Cztery różne wzorce animacji (spinner, kropki, puls, pasek) pokrywają najczęstsze przypadki użycia stanów ładowania.
- Czysta animacja CSS — bez JavaScriptu, bez plików graficznych, lżejsza i płynniejsza niż animowany GIF.
- Działa w całości w przeglądarce, za darmo, bez rejestracji.
Jak używać
- Wybierz styl loadera: obracający się pierścień, skaczące kropki, pulsujące koło lub pasek postępu.
- Przeciągnij suwak rozmiaru, aby powiększyć lub zmniejszyć loader.
- Wybierz kolor — stanie się kolorem akcentu loadera (obracające się obramowanie, kropki lub wypełnienie paska).
- Dostosuj szybkość, aby animacja była szybsza lub wolniejsza; większość loaderów interfejsu wygląda najlepiej przy 0,6–1,5 sekundy na cykl.
- Skopiuj wygenerowany CSS do arkusza stylów i wklej fragment HTML tam, gdzie loader ma się pojawić.
Przykład
Wejście
Styl: obracający się pierścień · Rozmiar: 40px · Kolor: pomarańczowy · Szybkość: 1,0sWynik
.css-loader-spinner {
width: 40px;
height: 40px;
border: 4px solid rgba(0, 0, 0, 0.1);
border-top-color: #f97316;
border-radius: 50%;
animation: css-loader-spin 1s linear infinite;
}
@keyframes css-loader-spin {
to { transform: rotate(360deg); }
}Klasyczny spinner pierścieniowy: koło z niemal przezroczystym obramowaniem po trzech stronach i pełnym kolorem po czwartej, obracające się nieprzerwanie z liniową, nieskończoną animacją.
Dlaczego loadery CSS zamiast animowanych GIF-ów
Animowane spinnery GIF były domyślnym wyborem przez lata, ale dziś loader CSS jest niemal zawsze lepszym rozwiązaniem: to kilkaset bajtów tekstu zamiast binarnego pliku graficznego, skaluje się do dowolnego rozmiaru bez pikselizacji, bo jest rysowany obramowaniami i transformacjami, a kolor można zmienić natychmiast jedną wartością CSS zamiast eksportować nowy obrazek.
Cztery style tutaj — spinner, kropki, puls, pasek — to też te, które najczęściej pojawiają się w rzeczywistych interfejsach, od stanów ładowania w przyciskach po nakładki na całą stronę. Każdy z nich animuje w keyframes tylko transform i opacity, co przeglądarki mogą płynnie animować na GPU, nie zwalniając reszty strony.
Dobór stylu do sytuacji
- Obracający się pierścień: najbardziej neutralny, uniwersalny wybór — dobrze sprawdza się w przyciskach i małych, wbudowanych stanach ładowania.
- Skaczące kropki: sprawiają wrażenie lżejszych i bardziej zabawnych; częste w czatach jako wskaźnik „pisze...” oraz przy krótkich oczekiwaniach.
- Pulsujące koło: dobre jako wskaźnik ładowania pojedynczego elementu lub jako kropka statusu „aktywny/na żywo”.
- Pasek postępu: sugeruje ruch do przodu i często jest oczekiwany przy ładowaniu strony lub wieloetapowych procesach, nawet bez dokładnego procenta.
Użycie loadera w projekcie
Wklej wygenerowany CSS raz do arkusza stylów, a potem wielokrotnie używaj fragmentu HTML wszędzie tam, gdzie potrzebny jest stan ładowania — w przycisku podczas wysyłania formularza, nad kartą podczas pobierania danych, albo wyśrodkowany w nakładce na całą stronę. Ponieważ animacja to czysty CSS, włączanie i wyłączanie jej sprowadza się do dodania lub usunięcia elementu z DOM, albo ukrycia go za pomocą display: none.
Najczęściej zadawane pytania
Czy te loadery działają bez JavaScriptu?
Tak — każdy loader tutaj jest animowany wyłącznie za pomocą CSS-owych @keyframes i właściwości animation. JavaScript jest potrzebny tylko, gdy chcesz pokazywać lub ukrywać loader w zależności od zdarzenia, na przykład wysłania formularza lub zakończenia zapytania.
Dlaczego wygenerowany CSS zawiera blok @keyframes?
Animacje CSS potrzebują dwóch części: podstawowych stylów elementu (rozmiar, kolor, kształt) oraz reguły @keyframes opisującej, jak te style zmieniają się w czasie trwania animacji. Obie części są niezbędne, by animacja działała, dlatego to narzędzie zawsze generuje pełną parę, a nie tylko styl bazowy.
Czy mogę użyć więcej niż jednego stylu loadera na tej samej stronie?
Tak. Każdy styl generuje własne, unikatowo nazwane klasy CSS i keyframes (np. css-loader-spinner i css-loader-dots), więc możesz skopiować kilka stylów do tego samego arkusza stylów bez konfliktów.
Czy animacja loadera spowolni moją stronę?
Nie — wszystkie cztery style animują wyłącznie transform i opacity, co przeglądarki mogą obsłużyć na kompozytorze/GPU bez wywoływania ponownego przeliczania layoutu. Dzięki temu pozostają płynne nawet na słabszych urządzeniach, w przeciwieństwie do animowania bezpośrednio właściwości takich jak width czy top.
Jak później zmienić kolor loadera bez ponownego generowania?
Otwórz skopiowany CSS i zmień wartość koloru bezpośrednio — w zależności od stylu pojawia się ona tylko raz (jako border-top-color, background lub podobna właściwość), a nie w wielu miejscach reguły, więc jedno wyszukaj-i-zamień zaktualizuje ją wszędzie.