Na této stránce je použitý vlastní animovaný nadpis vytvořený pomocí kombinace HTML a CSS, bez potřeby JavaScriptu. Výsledkem je čistý, lehký a vizuálně zajímavý efekt, při kterém se jednotlivá písmena nadpisu postupně objevují odspodu nahoru. Celý text tak působí živě, moderně a přitom nerušivě.
Tento princip je vhodný všude tam, kde má nadpis zaujmout návštěvníka hned při načtení sekce, ale zároveň nemá působit agresivně nebo přehnaně efektně. Hodí se proto zejména pro firemní prezentace, přehledy služeb, portfolio, projektové sekce nebo úvodní bannery.
Prvoplánovitě jsem tento efekt nadpisu chtěl vložit, a vlastně i vložil do patičky mých stránek. Ostatně, pokud se dostanete až na konec této stránky, tak tam tento nadpis uvidíte.
Celý systém stojí na jednoduché myšlence: místo jednoho souvislého textu je nadpis rozdělený na jednotlivá písmena, přičemž každé písmeno je vložené do samostatného HTML prvku. Díky tomu je možné ovládat animaci každého znaku zvlášť.
Každé písmeno dostane:
Právě díky tomu nevyskočí celý text najednou, ale skládá se plynule znak po znaku.
V HTML kódu jsou mezi značkami <!– popisky funkcí –>, a obdobné je to u CSS kódu, kde mezi značkami /* jsou také popisky funkcí */, které následně doporučuji vymazat!
U všech důležitých funkcí jsou popisky mezi lomítky, nebo závorkami, které po aplikaci kódu prosím vymažte.
Další úpravy a nastavení již nechám na Vaší fantazii.
V HTML je nadpis zapsaný tak, že každé písmeno je umístěné do samostatného elementu <span>. To umožňuje přiřadit každému znaku pořadí pomocí vlastní proměnné, například --i:0, --i:1, --i:2 a podobně.
Toto pořadí se pak využívá v CSS jako základ pro časové zpoždění animace.
Výsledkem je plynulé „odhalování“ textu.
Zvlášť jsou řešené také mezery mezi slovy. Ty se neanimují jako písmena, ale pouze udržují správné rozestupy v textu.
P
ř
e
h
l
e
d
p
r
o
j
e
k
t
ů
B
e
a
r
H
u
g
s
s
.
r
.
o
.
CSS se stará o tři hlavní oblasti:
Zde se nastavuje typografie a rozložení, tedy například:
Tato vrstva určuje celkový vizuální dojem nadpisu.
Každé písmeno je na začátku:
Během animace se postupně:
Tím vzniká elegantní efekt nájezdu odspodu nahoru.
Nadpis je upravený zvlášť pro:
Na každém typu zařízení se může měnit velikost písma, řádkování i síla animačního posunu. Díky tomu je text dobře čitelný na velké obrazovce i na mobilu.
/* NADPIS: Přehled projektů Bear Hugs s.r.o.
Animace: písmena se objevují odspodu nahoru*/
/* 1) HLAVNÍ OBAL
Tento blok určuje šířku, zarovnání a prostor kolem nadpisu*/
.bh-title-wrap{
width: 100%; /* blok zabere celou dostupnou šířku */
text-align: center; /* zarovnání obsahu doprostřed */
padding: 10px 0 18px 0; /* horní / pravé / dolní / levé odsazení */
overflow: visible; /* nic se nesmí ořezat */
}
/* 2) NADPIS
Zde je hlavní nastavení pro PC */
.bh-reveal-title{
--bh-offset-y: 34px; /* počáteční svislý posun písmen směrem dolů */
margin: 0; /* zrušení výchozího vnějšího odsazení nadpisu */
padding: 0 0 0.14em 0; /* spodní vnitřní prostor proti ořezu spodních tahů */
font-size: 54px; /* velikost písma na PC */
font-weight: 300; /* tloušťka písma */
line-height: 1.22; /* výška řádku */
letter-spacing: 0.02em; /* mezery mezi písmeny */
text-transform: none; /* bez automatické změny na velká/malá písmena */
font-family: inherit; /* přebere font z webu */
color: #020202; /* barva textu */
display: inline-flex; /* nadpis se chová jako pružný inline blok */
flex-wrap: wrap; /* umožní zalomení na další řádek */
justify-content: center; /* obsah uvnitř nadpisu na střed */
align-items: flex-end; /* zarovnání písmen ke spodní hraně */
gap: 0; /* bez mezer mezi prvky */
overflow: visible; /* důležité – neusekne spodní části písmen */
text-shadow: 0 1px 0 rgba(0,0,0,0.03); /* velmi jemný stín textu */
}
/* 3) JEDNOTLIVÁ PÍSMENA
Každé písmeno má vlastní animaci a zpoždění */
.bh-reveal-title span{
display: inline-block; /* každé písmeno je samostatný blok */
opacity: 0; /* na začátku je neviditelné */
transform: translateY(var(--bh-offset-y)); /* na začátku je posunuté dolů */
animation-name: bhLetterLoop; /* název animace */
animation-duration: 15s; /* délka celého cyklu */
animation-timing-function: linear; /* rovnoměrný průběh animace */
animation-iteration-count: infinite; /* animace se opakuje stále dokola */
animation-delay: calc(var(--i) * 0.15s); /* postupné zpoždění podle pořadí písmene */
will-change: transform, opacity; /* optimalizace pro prohlížeč */
}
/* 4) MEZERY MEZI SLOVY
Speciální prvek, který vytváří mezery a neanimuje se
*/
.bh-reveal-title .bh-space{
width: 0.38em; /* šířka mezery mezi slovy */
opacity: 1; /* mezera je stále aktivní */
transform: none; /* bez posunu */
animation: none; /* mezera se neanimuje */
}
/* 5) ANIMACE
Písmena se objeví odspodu, zůstanou viditelná a pak se resetují */
@keyframes bhLetterLoop{
0%{
opacity: 0; /* písmeno je skryté */
transform: translateY(var(--bh-offset-y)); /* písmeno je posunuté dolů */
}
4%{
opacity: 1; /* písmeno se zobrazí */
transform: translateY(0); /* písmeno dojede na své místo */
}
90%{
opacity: 1; /* většinu času zůstává viditelné */
transform: translateY(0); /* zůstává na místě */
}
100%{
opacity: 0; /* na konci cyklu zmizí */
transform: translateY(var(--bh-offset-y)); /* a vrátí se dolů pro nový cyklus */
}
}
/* 6) TABLET
Nastavení pro zařízení do šířky 1024 px */
@media (max-width: 1024px){
.bh-title-wrap{
text-align: center; /* zarovnání na střed i na tabletu */
padding: 8px 0 16px 0; /* mírně menší odsazení */
}
.bh-reveal-title{
--bh-offset-y: 28px; /* menší posun písmen při animaci */
font-size: 40px; /* velikost písma pro tablet */
line-height: 1.24; /* výška řádku */
letter-spacing: 0.015em; /* menší mezery mezi písmeny */
justify-content: center; /* obsah na střed */
padding-bottom: 0.16em; /* spodní prostor proti ořezu */
}
}
/* 7) MOBIL NA VÝŠKU
Nastavení pro zařízení do šířky 767 px */
@media (max-width: 767px){
.bh-title-wrap{
text-align: center; /* zarovnání na střed i na mobilu */
padding: 6px 0 14px 0; /* menší odsazení pro mobil */
}
.bh-reveal-title{
--bh-offset-y: 22px; /* menší nájezd písmen odspodu */
font-size: 28px; /* velikost písma pro mobil */
line-height: 1.28; /* vyšší řádek kvůli čitelnosti */
letter-spacing: 0.01em; /* jemnější rozestup písmen */
justify-content: center; /* obsah doprostřed */
padding-bottom: 0.18em; /* spodní prostor proti ořezu */
}
}
/* 8) PŘÍSTUPNOST
Pokud má uživatel omezené animace, vše se zobrazí bez pohybu */
@media (prefers-reduced-motion: reduce){
.bh-reveal-title span{
animation: none !important; /* vypnutí animace */
opacity: 1 !important; /* písmena budou stále vidět */
transform: none !important; /* bez posunu */
}
}
Řádek 26:
font-family: inherit; /* přebere font z webu */ můžete změnit na všechna Google Fonts – Roboto, Open Sans, Lato, Montserrat, Poppins atd.
Řádek 27:
color: #020202; /* barva textu */ změna barvy písma.
Řádek 47:
animation-duration: 15s; /* délka celého cyklu */ reset celé animace, můžete nastavit v sekundách.
Jednou z hlavních výhod tohoto projektu je to, že efekt funguje čistě přes HTML a CSS. To má několik praktických přínosů.
Není potřeba načítat další skript. Stránka zůstává lehčí a rychlejší.
HTML a CSS se upravují velmi snadno. Pokud je potřeba změnit text, velikost, rychlost animace nebo zarovnání, stačí upravit několik řádků kódu.
Tento způsob dobře funguje i v běžných page builderech, například v Elementor PRO, kde lze HTML vložit do HTML widgetu a CSS přidat samostatně.
Oddělení HTML a CSS je přehledné. HTML definuje obsah, CSS vzhled a pohyb. Díky tomu je kód lépe čitelný a lépe se s ním pracuje i v budoucnu.
Animace je založená na CSS @keyframes. V praxi to znamená, že pro každé písmeno je přesně určeno:
Písmeno se na začátku nachází níže, než je jeho výsledná pozice. Současně má nulovou viditelnost. Jakmile animace začne, písmeno se plynule zvedne nahoru a zároveň se zobrazí. Díky tomu nevzniká tvrdý skok, ale měkký reveal efekt.
Celý cyklus je nastavený tak, aby se po určité době znovu opakoval. Nadpis tedy nepůsobí staticky, ale pravidelně se znovu „nadechne“ a připomene svou přítomnost.
U některých znaků, například:
může docházet k tomu, že jejich spodní tah zasahuje níž než běžná výška písma. Pokud je kontejner příliš těsný nebo má nastavené ořezávání obsahu, může spodní část takového písmene vypadat useknutě.
Proto bylo v projektu důležité upravit:
overflow),Díky tomu jsou všechna písmena zobrazena správně a nic se dole neztrácí.
Další nastavení je opět jen a jen na Vás…
Abychom poskytli co nejlepší služby, používáme k ukládání a/nebo přístupu k informacím o zařízení, technologie jako jsou soubory cookies. Souhlas s těmito technologiemi nám umožní zpracovávat údaje, jako je chování při procházení nebo jedinečná ID na tomto webu. Nesouhlas nebo odvolání souhlasu může nepříznivě ovlivnit určité vlastnosti a funkce. Bear Hugs s.r.o.