Kinetic Zlín Logo Kinetic Zlín Kontaktujte Nás
Kontaktujte Nás

CSS Animace od Základů — Co Musíte Vědět

Naučte se psát hladké animace bez JavaScriptu. Zahrnuje @keyframes, timing-functions a běžné chyby, které všichni dělají.

12 min čtení Začátečník Květen 2026
Profesionální pracovní stůl s dvěma monitory, jedna obrazovka zobrazuje CSS kód s animacemi, teplé osvětlení
Tomáš Kovařík

Tomáš Kovařík

Senior Frontend Developer a UI/UX Specialista

Senior frontend developer s 13 lety praxe, specialista na animace a mikrointerakce v moderních webech.

Proč se animace nemusí komplikovat

Animace v CSS jsou jednodušší, než si myslíte. Není potřeba JavaScript, není potřeba knihovny — stačí pár řádků CSS a vaše stránka se oživí. Problém je, že začátečníci často dělají stejné chyby. Používají špatné timing-funkce, příliš dlouhé trvání animace, nebo animují vlastnosti, které by neměly být animovány.

Věříme, že každý webový vývojář by měl vědět, jak animace fungují. Není to pokročilý trik pro seniory — je to základní dovednost. A když to porozumíte, uvidíte, jak se vaše weby stanou příjemnější k používání.

Co se naučíte

  • Jak fungují @keyframes a animation properties
  • Které timing-funkce použít a kdy
  • Jak se vyhnout lagům a ztrátě výkonu
  • Pět běžných chyb a jak je napravit

@keyframes — Základ všeho

@keyframes je CSS pravidlo, které definuje, jak se prvek mění v průběhu animace. Má tři části: jméno animace, procenta (nebo from/to) a vlastnosti, které se mění.

Napíšete jméno, třeba “slide-in”. Pak řeknete, co se děje na 0%, 50% a 100%. Prvek se změní postupně mezi těmito stavy. Je to jednoduché — ale důležité pochopit, jak se to skládá.

Nejčastější chyba? Lidé animují transform a opacity spolu s pozicí (left, top). To zpomaluje stránku. Animujte pouze transform, opacity a background-color — ty jsou rychlé.

CSS editor s @keyframes kódem na obrazovce, modrý monitor, moderní pracovní prostor
Grafické znázornění timing-funkcí, diagramy linear cubic-bezier ease-in-out na bílém pozadí

Timing-funkce — Rytmus animace

Timing-funkce rozhoduje, jak se animace pohybuje. Linear znamená rovnoměrně. Ease-in znamená pomalu na začátku, pak rychle. Ease-out je opak — rychle na začátku, pak zpomaluje.

Jaká je rozdíl v praxi? Zkuste si to sami. Tlačítko se ease-in-out terčením se cítí přirozeně. Tlačítko s lineární animací se cítí roboticky. To je celý rozdíl mezi OK webem a pěkným webem.

Pro UI prvky obvykle chcete ease-in-out nebo cubic-bezier(0.4, 0, 0.2, 1). Pro loading indikátory je linear v pořádku. Znalost těchto rozdílů vás oddělí od průměrného vývojáře.

Poznámka k výkonu

Tento článek je vzdělávacím materiálem zaměřeným na porozumění CSS animacím. Konkrétní implementace se liší podle vašeho projektu. Vždy testujte animace na reálných zařízeních a zkontrolujte výkon pomocí Chrome DevTools.

Pět chyb, které byste měli znát

Zkušenost učí. Viděli jsme tisíce projektů a stejné chyby se opakují. Tady jsou ty nejčastější.

1

Animace příliš rychle

Animace pod 300ms jsou příliš rychlé. Oči je neuvidí správně. 400-600ms je obvykle ideální.

2

Animace všeho

Jen proto, že můžete animovat něco, neznamená, že byste měli. Animujte pouze interaktivní prvky.

3

Animace width a height

Nikdy neanimujte width/height. Použijte scale transform místo toho — je to 100x rychlejší.

4

Chybí delay na skupiny prvků

Všechny prvky se pohybují najednou? Přidejte animation-delay. Staggering efekt vypadá lépe.

5

Nepoužívají will-change

will-change říká prohlížeči, aby se připravil. Není to zázrak, ale pomáhá to se složitějšími animacemi.

Vývojář ladící animace v Chrome DevTools, developer tools otevřené na druhém monitoru

Performance — Měřit a optimalizovat

Animace mohou být rychlé nebo pomalé. Záleží na tom, co animujete. Transform a opacity jsou levné — prohlížeč to zvládne bez problémů. Box-shadow, blur a position jsou drahé.

Jak to poznáte? Otevřete DevTools, jděte na Performance a nahrávejte animaci. Vidíte FPS? Pokud je pod 60, něco není v pořádku. Obvykle je to proto, že animujete špatné vlastnosti.

Pravidlo: animujte transform a opacity. Pokud potřebujete něco jiného, přemýšlejte dvakrát. Možná je tu lepší cesta.

Monitor s otevřeným Chrome DevTools Performance záložkou, graf ukazující FPS a frame timing

Začněte psát animace

CSS animace nejsou magie. Je to jen pravidlo, které řeší, jak se prvek mění v čase. Když porozumíte @keyframes a timing-funkcím, zvládnete psát plynulé, příjemné animace.

Nejlepší je začít jednoduše. Zkuste animovat barvu tlačítka. Pak zkuste transform. Pak zkuste opacity. Postupně budete pochopit, jak se to chová. Není to třeba učit se ze skript — stačí experimentovat.

Pamatujte: dobré animace nejsou vidět. Uživatel si jich ani neuvědomí. Prostě se web cítí lépe. A to je cíl.