Generator keyframes CSS

Wyniki

Reguła @keyframes definiuje kamienie milowe animacji: jak wygląda element na początku, w środku i na końcu. Ten generator pisze regułę dla czterech popularnych ruchów: fade-slide, pulse, spin i bounce. Nadaj animacji nazwę, ustaw czas trwania i, dla ruchów przesuwania i odbijania, odległość w pikselach. Wynik to skrócona notacja animation plus blok @keyframes, gotowy do wklejenia do arkusza stylów.

Jak wygenerować keyframes

  1. 1

    Wybierz typ animacji

    Fade slide, pulse, spin lub bounce. Każde ustawienie zawiera gotowe klatki.

  2. 2

    Nadaj animacji nazwę

    Nazwa w notacji kebab-case, na przykład `fade-slide`, używana później w skróconej notacji `animation`.

  3. 3

    Ustaw czas trwania

    W sekundach, na przykład 0.6 dla szybkiego przejścia.

  4. 4

    Ustaw odległość (slide i bounce)

    Odległość przebyta w pikselach, używana w ruchu pionowym.

  5. 5

    Skopiuj CSS

    Skrócona notacja plus blok `@keyframes`, gotowe do wklejenia do arkusza stylów.

Cztery ustawienia

Fade slide

.animated {
  animation: fade-slide 0.6s ease both;
}

@keyframes fade-slide {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

Element pojawia się, przesuwając się z dołu do góry.

Pulse

@keyframes pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50%      { transform: scale(1.05); opacity: .8; }
}

Delikatny efekt pulsowania, dobry do punktów powiadomień i plakietek.

Spin

@keyframes spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

Pełny obrót, przydatny dla loaderów i ikon.

Bounce

@keyframes bounce {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-24px); }
}

Element podskakuje do góry i wraca.

Dlaczego transform i opacity?

Przeglądarki komponują transform i opacity na GPU bez ponownego obliczania układu i malowania, więc ich animowanie pozostaje płynne. Ustawienia celowo unikają właściwości uruchamiających obliczanie układu.

Skrócona notacja animation

animation: fade-slide 0.6s ease both; czytamy: animacja o nazwie fade-slide, trwająca 0.6 sekundy, z domyślnym przejściem ease. Tryb wypełnienia both stosuje stan początkowy przed startem animacji i utrzymuje stan końcowy po jej zakończeniu, dzięki czemu element nie miga przed ruchem ani nie cofa się gwałtownie po nim.

Konwencje nazewnictwa

  • Używaj notacji kebab-case, zgodnie z konwencją CSS.
  • Opisuj ruch, nie element: fade-in-up jest lepsze niż alert-appear.
  • Unikaj nazw, które mogą kolidować z bibliotekami firm trzecich.

Wsparcie przeglądarek

@keyframes jest uniwersalne, obsługiwane przez każdą przeglądarkę od IE 10.

Najczęściej zadawane pytania

Fade slide dla treści wchodzących na stronę, takich jak karty, banery czy okna dialogowe. Pulse dla punktów uwagi, plakietek i przycisków, które mają się wyróżniać. Spin dla loaderów i ikon postępu. Bounce dla zabawnego podkreślenia, na przykład strzałki call-to-action.

Odległość to pionowe przemieszczenie w pikselach dla ustawień slide i bounce: animacja fade-slide zaczyna 24px niżej i przesuwa się w górę, a bounce podskakuje 24px w górę i wraca. Ustawienie spin jej nie używa.

Tak, wynik to czysty CSS. Zastąp ease dowolnym słowem kluczowym przejścia lub wartością cubic-bezier(...) i dodaj pośrednie wartości procentowe, takie jak 25% lub 75%, w bloku @keyframes, aby lepiej ukształtować ruch.

Ponieważ ponowne renderowanie przez framework może ponownie zastosować klasę i uruchomić animację od nowa. Użyj animation-fill-mode: both (już zawartego w wyniku), aby utrzymać stan końcowy, albo odłącz wyzwalacz animacji od elementu renderowanego ponownie.

Powiązane narzędzia