Motiv Studio Logo Motiv Studio Kontaktujte Nás
Kontaktujte Nás

Základy CSS Animací — Od Keyframes po Transitions

Naučte se rozdíl mezi transitions a keyframes. Pokrývá praktické příklady a běžné chyby, které dělají začátečníci.

12 min čtení Začátečník Únor 2026
Notebook s CSS kódem animací na tmavém stole s osvětlením z monitoru

Proč animace v CSS?

CSS animace jsou dnes nezbytnou součástí moderního webdesignu. Nejsou jen o tom, aby se stránka vypadala hezky — jde o to vytvořit zkušenost, která dává uživateli smysl. Když prvek zmizí bez přechodu, vypadá to divně. Když se objeví s plynulým efektem, uživatel to vníká jako přirozené a intuitivní.

Existují dva hlavní způsoby, jak animovat prvky v CSS. Transitions jsou pro jednoduché změny stavů. Keyframes umožňují složitější sekvence pohybu. Každá má svůj účel, a pokud je nepoužijete správně, budete mít problém — animace se budou zadrhávat, budou příliš rychlé nebo vůbec nebudou fungovat tak, jak chcete.

Vývojář pracující na animacích CSS v editoru kódu se zobrazeným náhledem v prohlížeči

Transitions — Jednoduché přechody mezi stavy

Transition je nejjednodušší forma animace v CSS. Říkáte prohlížeči: „Když se změní tato vlastnost, změní se ji postupně, ne okamžitě.” Trvá to zpravidla od 200 milisekund do jedné sekundy.

Vezměte si tlačítko. Bez transition se barva změní okamžitě, když najedete myší. S transition se barva změní plynule během daného času. To je rozdíl mezi něčím, co vypadá jak web z roku 2005, a něčím, co vypadá moderně.

Základní syntaxe:

transition: property duration timing-function delay;

  • property — jakou vlastnost animovat (background-color, opacity, transform)
  • duration — jak dlouho (0.3s, 500ms)
  • timing-function — jak se animace vyvíjí (ease, linear, ease-in-out)
  • delay — zpoždění před spuštěním (volitelné)
Diagramatické znázornění lineárního a ease-in-out timing funkcí s křivkami přechodů

Keyframes — Složitější animační sekvence

Keyframes vám umožňují definovat více kroků v animaci. Místo aby se prvek jen změnil z jednoho stavu do druhého, můžete mu říci: „V 0% bude tady, v 50% bude tady a v 100% bude tady.” To otevírá obrovské možnosti.

Keyframes se používají pro animace, které se opakují, nebo pro komplexnější pohyby. Třeba loading spinner, který se neustále otáčí. Nebo prvek, který se pohybuje po obrazovce po určité cestě. Bez keyframes bychom to mohli dělat jen s JavaScriptem, což by bylo pomalejší.

Základní struktura:

@keyframes animationName { 0% { … } 50% { … } 100% { … } }

Potom aplikujete animaci na prvek: animation: animationName 2s ease-in-out infinite;

Vizualizace keyframe sekvence s čtyřmi kroky animace spineru

Kdy používat co?

Transitions — pro změny stavů

  • Hover efekty na tlačítka
  • Zmizení/objevení prvků
  • Změny barvy při interakci
  • Rozšíření/stažení prvků
  • Krátké přechody mezi stavy

Transitions jsou rychlé, jednoduché a ideální pro uživatelské interakce.

Keyframes — pro komplexní pohyby

  • Rotující loadery a spinnery
  • Pohyby po cestě (nejen přímé)
  • Pulzující nebo blikající efekty
  • Animace při načtení stránky
  • Opakované pohyby a efekty

Keyframes jsou mocné, umožňují více kontroly a mohou běžet neustále nebo na příkaz.

Porovnání transitions a keyframes v interaktivní vizualizaci

Běžné chyby a jak je vyhnout

Příliš dlouhé animace

Animace, která trvá 3 sekundy, frustruje uživatele. Člověk čeká, jestli se něco stane. Udržujte transitions pod 0,5 sekundy a keyframes pod 2 sekundy. Výjimkou jsou opakující se animace, které mají být vidět — ty můžou být pomalejší, ale měly by být hypnotické, ne nudné.

Animace bez důvodu

Jen proto, že můžete animovat prvek, neznamená, že byste měli. Každá animace by měla mít účel — dát uživateli zpětnou vazbu nebo přesunout pozornost. Nadměrné animace dělají stránku matoucí a pomalejší.

Špatné timing funkce

Linear timing vypadá roboticky. Ease-in-out se cítí přirozeněji. Pro vstupní animace používejte ease-out (zpomaluje na konci), pro výstupní ease-in (zrychluje). Správná timing funkce dělá animaci o 100% lepší.

Animace, které zpomalují stránku

Animace opacity a transform jsou rychlé (GPU akcelerace). Animace width, height, left, top jsou pomalé (zpomalovací). Pokud máte problém s výkonem, kontrolujte, co animujete. Na mobilu je to ještě důležitější.

Vizualizace výkonu animací — zelené pro GPU akcelerované, červené pro pomalé vlastnosti

Praktické příklady na začátek

Tady jsou jednoduché příklady, které si můžete zkopírovat a začít používat hned. Nejsou to komplikované věci — jen základy, které fungují.

Hover efekt na tlačítko

.button {
background: #3b82f6;
transition: all 0.3s ease;
}
.button:hover {
background: #2563eb;
transform: translateY(-2px);
}

Tlačítko změní barvu a lehce se zdvihne. Prostě a efektivně.

Opacity fade-in

.element {
opacity: 0;
transition: opacity 0.5s ease;
}
.element.visible {
opacity: 1;
}

Prvek se postupně zobrazí. Ideální pro obsah, který se načítá.

Otáčející se spinner

@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.spinner {
animation: spin 2s linear infinite;
}

Klasický loading spinner. Linear timing, aby se otáčel rovnoměrně.

Shrnutí — Co si zapamatovat

Transitions jsou pro jednoduché přechody mezi stavy — když se uživatel podívá na prvek nebo s ním interaguje. Keyframes jsou pro složitější sekvence a opakující se animace. Oba jsou klíčové pro moderní webdesign.

Začněte jednoduše. Nemusíte vytvářet složité animace hned. I malé efekty — jemný fade-in, lehký zoom na hover — dělají rozdíl. Uživatelé to cítí a stránka se cítí kvalitněji. To je důvod, proč CSS animace existují a proč se vyplatí je naučit.

Příští krok? Experimentujte. Vezměte si běžné prvky — tlačítka, karty, nadpisy — a přidejte jim animace. Podívejte se, co funguje. Brzy budete mít instinkt, kdy a jak animovat. A až se dostanete do bodu, kdy vám transition nestačí, budete připraveni na keyframes.

“Animace není jen o tom, aby věci vypadaly hezky. Je to o komunikaci. Řeknete uživateli, co se právě stalo, a usnadníte mu porozumění vašemu webu.”

Chcete jít dál?

Nyní, když rozumíte základům, prozkoumejte pokročilejší techniky. Microinterakce, scroll animace a parallax efekty vám dají nové možnosti.

Čtěte o mikrointerakcích

Poznámka k výkonu

Všechny informace v tomto článku jsou určeny pro vzdělávací účely. Animace se chováním liší v různých prohlížečích a na různých zařízeních. Vždy testujte své animace na mobilních zařízeních a starších prohlížečích. GPU akcelerace není zaručena — vždy optimalizujte pro nejhorší případ. Pokud si nejste jistí, konzultujte dokumentaci MDN nebo Can I Use.