Jak Vytvořit Efekt Zvednutí a Stínu na Kartách
Zjistěte, jak implementovat klassické hover efekty se stíny a transformacemi, které karty zvednou.
Nauč se, jak přidat dynamické barevné vrstvy a fade-in efekty na text při najetí myši. Perfektní pro objev obsahu a vytvoření interaktivních miniatur, které přitahují pozornost.
Barevné překrytí — to je vlastně přidání polotransparentní barevné vrstvy přes obrázek nebo obsah. Když si na kartu najede myší, překrytí se objeví nebo změní intenzitu. Texty pak postupně vyjdou najevo. Není to nic složitého, ale efekt vypadá opravdu profesionálně.
Kombinace barevného efektu s textovými animacemi vytváří dynamický a moderní vzhled. Uživatelé vidí, že karty reagují na jejich interakci — to jim signalizuje, že obsah je aktivní a klikatelný. Právě tenhle detaily dělají rozdíl mezi obyčejným webem a web, který se lidem líbí.
Technicky řečeno, používáme pseudoelement ::before nebo ::after k vytvoření vrstvy. Ta se nachází přes obrázek a má barvu s průhledností. Při hover stavu se opacita změní nebo se přesune na jiné místo.
Vrstva se vytváří pomocí background-color s hodnotou rgba(). Čtvrtý parametr (alpha) určuje, jak viditelná vrstva je. Hodnota 0 = neviditelná, 1 = úplně viditelná. Při hover se tato hodnota animuje.
Text se ukrývá pomocí opacity: 0. Při hover se změní na opacity: 1. Transition vlastnost zajistí, že změna probíhá hladce — ne okamžitě, ale postupně. Ideální doba je 0,3 až 0,5 sekundy.
Klíč k profesionálnímu vzhledu je transition vlastnost. Bez ní by se vše měnilo okamžitě — byla by to nula elegance. S transition: all 0,3s ease se všechno mění hladce a přirozeně.
Nejdřív si vytvoříme základní strukturu. Máme kartu — to je kontejner. Uvnitř je obrázek a textový obsah. Textový obsah se skrývá pomocí opacity nebo position: absolute mimo viditelné oblasti.
Důležité: Karta musí mít position: relative. Bez toho se pseudoelementy nebudou chovat správně. Pseudoelement ::before se stane vrstvou — bude absolutně pozicionován přes celý obrázek.
Při hover stavu se dvě věci stanou. Barevná vrstva změní svou průhlednost — ze 0 (neviditelná) na 0,7 nebo 0,8. Zároveň se textový obsah animuje do viditelnosti. To znamená: opacity se změní z 0 na 1.
Timing je důležitý. Není dobré, když se text objeví okamžitě a vrstva se animuje pomalu. Všechno by mělo mít stejnou dobu trvání — kolem 300 až 400 milisekund. Tak to vypadá sladěně a připravené.
Na mobilních zařízeních neexistuje hover stav — prostě se tam nenajetí myší. Když uživatel klepne na kartu, aktivuje se. Takže musíme vytvořit alternativu pro dotykové zařízení. Nejčastěji se používá :active pseudo-třída.
Existují dva přístupy. Buď se překrytí a text objeví a zmizí po jednom klepnutí — to je méně ideální. Nebo se vrstvě a textu změní stav trvale — to je lepší pro UX. Uživatel uvidí, co se pod vrstvou skrývá.
Tip pro dotyk: Použij media query @media (hover: none) { }. Tímhle způsobem detekuješ zařízení bez schopnosti hover. Tam můžeš vytvořit jinou logiku — třeba visibility: visible místo opacity.
Modernější přístup je použít @supports (pointer: coarse) — to cílí přesně na dotykové zařízení. Pak se můžeš rozhodnout, co se bude dít. Třeba se vrstva neanimuje, ale prostě se zobrazí, když uživatel klepne.
Barevné překrytí a textové animace jsou podporovány ve všech moderních prohlížečích. CSS transitions a opacity jsou standardní vlastnosti — nejsou žádné experimentální funkce. Pokud pracuješ se staršími prohlížeči (Internet Explorer), bude se ti chovat bez animací, ale obsah bude pořád viditelný. To je přijatelný fallback.
Barevné překrytí a textové animace nejsou o tom být okázalý. Jde o to, aby se karty chovaly přirozeně a signalizovaly uživateli, že se s nimi dá interagovat. Když to uděláš správně, uživatel to ani nemusí осознávat — prostě se mu to bude líbit.
Vrstva je pseudoelement (::before nebo ::after) s rgba barvou a absolutní pozicí
Text se ukrývá s opacity: 0 a animuje na opacity: 1 při hover
Transition vlastnost zajišťuje hladké přechody — používej 0,3–0,5 sekundy
Na mobilních zařízeních použij media query @media (hover: none) pro alternativu
Tenhle efekt je skvělý na e-commerce stránky, portfolia a galérie. Zvyšuje to engagement a dělá web interaktivnějším. Teď máš všechno, co potřebuješ — zkus to implementovat na svých kartách a uvidíš, jak to změní jejich vzhled!
Senior Frontend Designer & UX Developer
Senior frontend designer se 14 lety zkušeností v CSS animacích a interaktivním design – specialista na hover efekty a dotykově přívětivá řešení.
Podívej se na další efekty a techniky pro interaktivní karty
Zjistěte, jak implementovat klassické hover efekty se stíny a transformacemi, které karty zvednou.
Seznamte se s tím, jak zajistit, aby vaše hover efekty fungovaly správně na mobilních zařízeních.
Podrobný průvodce vytvářením efektů zářivého ohraničení, které přitahují pozornost.