Mikrointerakce, Které Uživatelé Milují
Pět ověřených vzorů pro tlačítka, formuláře a navigaci. Každá mikrointerakce má svůj účel.
Naučte se psát hladké animace bez JavaScriptu. Zahrnuje @keyframes, timing-functions a běžné chyby, které všichni dělají.
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í.
@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é.
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.
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.
Zkušenost učí. Viděli jsme tisíce projektů a stejné chyby se opakují. Tady jsou ty nejčastější.
Animace pod 300ms jsou příliš rychlé. Oči je neuvidí správně. 400-600ms je obvykle ideální.
Jen proto, že můžete animovat něco, neznamená, že byste měli. Animujte pouze interaktivní prvky.
Nikdy neanimujte width/height. Použijte scale transform místo toho — je to 100x rychlejší.
Všechny prvky se pohybují najednou? Přidejte animation-delay. Staggering efekt vypadá lépe.
will-change říká prohlížeči, aby se připravil. Není to zázrak, ale pomáhá to se složitějšími animacemi.
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.
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.