Místo pro zvědavé medvědy

Search

Animace složky s odkazy

Animované ikony složek a dokumentů jsou jednoduchým způsobem, jak oživit běžné odkazy na webu. Místo klasického textového odkazu může návštěvník vidět čistou SVG ikonu, která se při najetí myší plynule vyplní barvou a současně změní doprovodný text na akční výzvu.

Toto řešení je vhodné pro odkazy na dokumenty, provozní řády, faktury, certifikáty, archiv, úložiště nebo interní sekce webu. Funguje bez externích pluginů, je lehké, rychlé a dobře použitelné i v Elementor PRO. Díky samostatným CSS třídám lze na jedné stránce použít více sad ikon, aniž by se jejich styly navzájem ovlivňovaly.

U všech důležitých funkcí jsou popisky mezi lomítky, které při aplikaci kódu prosím vymažte.

Další úpravy a nastavení již nechám na Vaší fantazii.

Připravený HTML kód pro základní složky

HTML část – základní struktura odkazu

HTML část tvoří samotnou kostru celého prvku. V ní se určuje, kolik ikon bude na stránce zobrazeno, jaký bude jejich popisek, jaký text se zobrazí při najetí myší a na jakou adresu bude každý odkaz směřovat.

Každý řádek je vytvořený jako klasický HTML odkaz pomocí značky <a>. Díky tomu se celý prvek chová jako běžný klikací odkaz, ale místo obyčejného textu obsahuje ještě SVG ikonu a dva textové popisky.

Zjednodušeně má jeden prvek tuto logiku:

<a href="https://www.example.cz" target="_blank" rel="noopener noreferrer">
ikona
výchozí text
text při hoveru
</a>
Atribut href určuje cílovou adresu odkazu. Právě sem se doplňuje konkrétní URL adresa stránky, dokumentu nebo souboru, na který má odkaz vést.
href="https://www.example.cz/provozni-rad"
Atribut target="_blank" zajistí, že se odkaz otevře v nové záložce prohlížeče. To je užitečné hlavně v případě, kdy nechceme návštěvníka úplně odvést z aktuální stránky.
target="_blank"
Atribut rel="noopener noreferrer" je bezpečnostní doplněk pro odkazy otevírané v nové záložce. Doporučuje se jej používat společně s target="_blank".
rel="noopener noreferrer"
				
					<div class="folder-list">

  <a href="https://www.example.cz/dokumenty-1" class="folder-link folder-1" target="_blank" rel="noopener noreferrer">
    <span class="folder-icon">
      <svg class="folder-svg" viewBox="0 0 120 90" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
        <defs>
          <clipPath id="folderFillClip-1">
            <rect class="folder-fill-mask" x="0" y="0" width="120" height="90" />
          </clipPath>
        </defs>

        <path class="folder-fill" clip-path="url(#folderFillClip-1)" d="M8 25 H43 L52 36 H112 V78 Q112 84 106 84 H14 Q8 84 8 78 Z" />
        <path class="folder-outline" d="M8 25 H43 L52 36 H112 V78 Q112 84 106 84 H14 Q8 84 8 78 Z" />
      </svg>
    </span>

    <span class="folder-text">
      <span class="text-default">Dokumenty 1</span>
      <span class="text-hover">Otevřít</span>
    </span>
  </a>


  <a href="https://www.example.cz/dokumenty-2" class="folder-link folder-2" target="_blank" rel="noopener noreferrer">
    <span class="folder-icon">
      <svg class="folder-svg" viewBox="0 0 120 90" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
        <defs>
          <clipPath id="folderFillClip-2">
            <rect class="folder-fill-mask" x="0" y="0" width="120" height="90" />
          </clipPath>
        </defs>

        <path class="folder-fill" clip-path="url(#folderFillClip-2)" d="M8 25 H43 L52 36 H112 V78 Q112 84 106 84 H14 Q8 84 8 78 Z" />
        <path class="folder-outline" d="M8 25 H43 L52 36 H112 V78 Q112 84 106 84 H14 Q8 84 8 78 Z" />
      </svg>
    </span>

    <span class="folder-text">
      <span class="text-default">Dokumenty 2</span>
      <span class="text-hover">Otevřít</span>
    </span>
  </a>


  <a href="https://www.example.cz/dokumenty-3" class="folder-link folder-3" target="_blank" rel="noopener noreferrer">
    <span class="folder-icon">
      <svg class="folder-svg" viewBox="0 0 120 90" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
        <defs>
          <clipPath id="folderFillClip-3">
            <rect class="folder-fill-mask" x="0" y="0" width="120" height="90" />
          </clipPath>
        </defs>

        <path class="folder-fill" clip-path="url(#folderFillClip-3)" d="M8 25 H43 L52 36 H112 V78 Q112 84 106 84 H14 Q8 84 8 78 Z" />
        <path class="folder-outline" d="M8 25 H43 L52 36 H112 V78 Q112 84 106 84 H14 Q8 84 8 78 Z" />
      </svg>
    </span>

    <span class="folder-text">
      <span class="text-default">Dokumenty 3</span>
      <span class="text-hover">Otevřít</span>
    </span>
  </a>


  <a href="https://www.example.cz/dokumenty-4" class="folder-link folder-4" target="_blank" rel="noopener noreferrer">
    <span class="folder-icon">
      <svg class="folder-svg" viewBox="0 0 120 90" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
        <defs>
          <clipPath id="folderFillClip-4">
            <rect class="folder-fill-mask" x="0" y="0" width="120" height="90" />
          </clipPath>
        </defs>

        <path class="folder-fill" clip-path="url(#folderFillClip-4)" d="M8 25 H43 L52 36 H112 V78 Q112 84 106 84 H14 Q8 84 8 78 Z" />
        <path class="folder-outline" d="M8 25 H43 L52 36 H112 V78 Q112 84 106 84 H14 Q8 84 8 78 Z" />
      </svg>
    </span>

    <span class="folder-text">
      <span class="text-default">Dokumenty 4</span>
      <span class="text-hover">Otevřít</span>
    </span>
  </a>


  <a href="https://www.example.cz/dokumenty-5" class="folder-link folder-5" target="_blank" rel="noopener noreferrer">
    <span class="folder-icon">
      <svg class="folder-svg" viewBox="0 0 120 90" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
        <defs>
          <clipPath id="folderFillClip-5">
            <rect class="folder-fill-mask" x="0" y="0" width="120" height="90" />
          </clipPath>
        </defs>

        <path class="folder-fill" clip-path="url(#folderFillClip-5)" d="M8 25 H43 L52 36 H112 V78 Q112 84 106 84 H14 Q8 84 8 78 Z" />
        <path class="folder-outline" d="M8 25 H43 L52 36 H112 V78 Q112 84 106 84 H14 Q8 84 8 78 Z" />
      </svg>
    </span>

    <span class="folder-text">
      <span class="text-default">Dokumenty 5</span>
      <span class="text-hover">Otevřít</span>
    </span>
  </a>

</div>
				
			

Připravený CSS kód s animací glow efektu

SVG ikona uvnitř HTML

Samotná ikona není vložená jako obrázek, ale jako inline SVG přímo v HTML kódu. To má několik výhod. Ikona je ostrá v jakékoli velikosti, lze ji snadno obarvit pomocí CSS a není nutné načítat žádný další soubor.

				
					<svg class="icon-svg" viewBox="0 0 120 90" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
				
			

Třída icon-svg slouží k tomu, aby bylo možné ikonu stylovat v CSS. Atribut viewBox určuje vnitřní kreslicí prostor ikony. Díky němu se SVG správně škáluje při změně velikosti.

Atribut aria-hidden="true" říká čtečkám obrazovky, že samotná ikona je pouze dekorativní. Důležitý význam odkazu je v textu vedle ikony.

Výplň ikony a hover efekt

Uvnitř SVG je připravena také maska, která umožňuje animaci vyplnění zleva doprava.

				
					<clipPath id="iconFillClip-1">
  <rect class="icon-fill-mask" x="0" y="0" width="120" height="90" />
</clipPath>
				
			

Tato část sama o sobě ještě animaci nespouští. Pouze připravuje oblast, přes kterou se bude výplň ikony postupně odkrývat. Samotný pohyb masky se následně nastavuje v CSS.

Důležité je, aby každá ikona měla vlastní unikátní id, například:

				
					id="iconFillClip-1"
id="iconFillClip-2"
id="iconFillClip-3"
				
			

Pokud by více ikon používalo stejné id, mohly by se efekty navzájem ovlivňovat.

Text před hoverem a po hoveru

Vedle ikony jsou v HTML dva texty. První je výchozí text, který návštěvník vidí běžně. Druhý text je skrytý a zobrazí se až při najetí myší.

				
					<span class="text-default">Provozní řád</span>
<span class="text-hover">Přečíst</span>
				
			

Díky tomu lze z obyčejného popisku vytvořit drobnou výzvu k akci.

Například:

				
					<span class="text-default">Archiv</span>
<span class="text-hover">Vstupte</span>
				
			

nebo:

				
					<span class="text-default">Faktura</span>
<span class="text-hover">Uložit</span>
				
			

Tato změna textu je opět řízena až pomocí CSS. HTML pouze obsahuje oba texty připravené na správném místě.

Proč používat vlastní třídy

Každá sada ikon by měla mít vlastní názvy tříd. Pokud je na jedné stránce více podobných bloků a všechny používají stejné třídy, může se stát, že se CSS pravidla začnou navzájem přepisovat.

Proto je vhodné používat například samostatné prefixy:

				
					docset-archive-link
docset-office-link
docset-main-link
				
			

Tím se jednotlivé sady od sebe oddělí a každá může mít vlastní barvy, velikosti i animace bez toho, aby ovlivnila ostatní prvky na stránce.

Připravený CSS kód s animací složky a změny nadpisu

Stručně řečeno, CSS část zajišťuje:
  • rozložení ikon a textu,
  • velikost ikon,
  • barvy jednotlivých ikon,
  • barvu textu před hoverem a po hoveru,
  • plynulé vyplnění ikony,
  • změnu textu při najetí myší,
  • oddělení jednotlivých sad ikon pomocí vlastních tříd.

 

Díky správně pojmenovaným třídám lze na jedné stránce použít více různých sad ikon, aniž by se jejich styly navzájem přepisovaly.

upravy-kod-elementor-animace-pozadi-bear-hugs-webdesign
CSS část – vzhled a animace ikon

CSS část určuje, jak budou odkazy vizuálně vypadat a jak se budou chovat při najetí myší. Zatímco HTML tvoří strukturu odkazu, CSS řeší barvy, velikost ikon, rozestupy, písmo a samotnou animaci.

Pomocí CSS se nastavuje například to, že ikona a text jsou vedle sebe, jednotlivé odkazy jsou pod sebou a mezi nimi je pravidelná mezera. Zároveň se zde určuje velikost SVG ikony, například:

				
					width: 48px;
				
			

Právě tento řádek obvykle mění velikost celé ikony, zatímco výška se dopočítá automaticky podle poměru SVG.

Důležitou částí CSS je práce s barvou ikony. Pro každou ikonu lze nastavit vlastní barvu pomocí proměnné:

				
					--docset-office-color: #E91E63;
				
			

Tato barva se následně použije pro obrys i pro vnitřní výplň ikony. Díky tomu není nutné měnit barvu na více místech.

Samotný hover efekt vzniká tak, že výplň ikony je na začátku skrytá:

				
					transform: scaleX(0);
				
			

a při najetí myší se roztáhne na celou šířku:

				
					transform: scaleX(1);
				
			

Proto ikona působí, jako by se plynule vyplňovala zleva doprava.

CSS také řídí změnu textu. Výchozí text je běžně viditelný, zatímco hover text je skrytý. Při najetí myší se první text skryje a druhý se zobrazí. Díky tomu může například text „Provozní řád“ přejít na „Přečíst“.

Rychlost celé animace se nastavuje pomocí vlastnosti transition, například:

				
					transition: transform 0.6s ease;
				
			

Čím vyšší hodnota v sekundách, tím pomalejší a klidnější animace bude.

Připravený CSS kód pro animaci ikony složky

				
					/* Seznam složek pod sebou */
/* Tento hlavní obal řídí, že jednotlivé odkazy se složkami budou řazené svisle pod sebou. */
.folder-list {
  display: flex;                  /* Aktivuje flexbox pro uspořádání prvků. */
  flex-direction: column;         /* Nastaví směr řazení prvků pod sebe. */
  gap: 14px;                      /* Určuje mezeru mezi jednotlivými řádky složek. */
}

/* Celý řádek jedné složky */
/* Toto je klikací odkaz, který obsahuje ikonu složky i text vedle ní. */
.folder-link {
  --folder-color: #8a8a8a;        /* Výchozí barva složky. Jednotlivé složky ji níže přepisují vlastní barvou. */

  display: inline-flex;           /* Ikona a text se zobrazí vedle sebe v jednom řádku. */
  align-items: center;            /* Svisle zarovná ikonu a text na střed. */
  gap: 12px;                      /* Nastaví mezeru mezi ikonou složky a textem. */
  width: fit-content;             /* Šířka odkazu se přizpůsobí pouze obsahu, nebude přes celou stránku. */
  text-decoration: none;          /* Odstraní klasické podtržení odkazu. */
  color: #333333;                 /* Nastaví barvu textu odkazu. */
  font-size: 18px;                /* Nastaví velikost textu. */
  font-weight: 500;               /* Nastaví střední sílu písma. */
  cursor: pointer;                /* Po najetí myší se zobrazí kurzor ruky. */
}

/* Obal samotné ikony */
/* Tento prvek drží velikost SVG ikony složky. */
.folder-icon {
  display: inline-flex;           /* Pomáhá správnému zarovnání SVG ikony. */
  width: 48px;                    /* Určuje šířku ikony složky. Zde lze měnit velikost celé ikony. */
  height: auto;                   /* Výška se dopočítá automaticky podle poměru SVG. */
  flex-shrink: 0;                 /* Zabrání tomu, aby se ikona při nedostatku místa zmenšovala. */
}

/* SVG ikona složky */
/* Nastavení samotného SVG obrázku uvnitř obalu. */
.folder-svg {
  display: block;                 /* Odstraní drobnou spodní mezeru, kterou SVG někdy vytváří. */
  width: 100%;                    /* SVG vyplní celou šířku svého obalu. */
  height: auto;                   /* Zachová správný poměr stran ikony. */
  overflow: visible;              /* Zabrání nechtěnému oříznutí silnějšího obrysu. */
}

/* Obrys složky */
/* Tato část kreslí pouze vnější linku složky. */
.folder-outline {
  fill: none;                     /* Obrys nemá žádnou vnitřní výplň. */
  stroke: var(--folder-color);    /* Barva obrysu se bere z proměnné konkrétní složky. */
  stroke-width: 5;                /* Nastaví sílu obrysové linky. */
  stroke-linejoin: round;         /* Zaoblí spoje jednotlivých částí obrysu. */
  stroke-linecap: round;          /* Zaoblí konce linek. */
}

/* Výplň složky */
/* Tato vrstva je vnitřní barva složky, která se zobrazí až při hover efektu. */
.folder-fill {
  fill: var(--folder-color);      /* Výplň má stejnou barvu jako obrys složky. */
  opacity: 1;                     /* Výplň je plně sytá, bez průhlednosti. */
}

/* Maska výplně před hover efektem */
/* Maska určuje, že výplň je na začátku skrytá a při hoveru se postupně odkrývá zleva doprava. */
.folder-fill-mask {
  transform: scaleX(0);           /* Na začátku je šířka výplně nulová, tedy výplň není vidět. */
  transform-origin: left center;  /* Animace začíná z levé strany ikony. */
  transition: transform 0.45s ease; /* Nastaví rychlost a plynulost animace výplně. */
}

/* Efekt výplně při najetí myší */
/* Po najetí myší se maska roztáhne a tím odkryje barevnou výplň složky. */
.folder-link:hover .folder-fill-mask {
  transform: scaleX(1);           /* Výplň se roztáhne na celou šířku ikony. */
}

/* Textový obal */
/* Obal pro dva texty: výchozí text a text, který se zobrazí při hoveru. */
.folder-text {
  position: relative;             /* Umožní umístit hover text přes výchozí text. */
  display: inline-block;          /* Textový blok si zachová vlastní rozměry. */
  min-width: 120px;               /* Rezerva šířky, aby se text při změně nepřeskakoval. */
  color: #333333;                 /* Barva textu vedle složky. */
}

/* Výchozí text Dokumenty 1 až Dokumenty 5 */
/* Tento text je viditelný před najetím myší. */
.text-default {
  display: inline-block;          /* Umožní animaci posunu textu. */
  opacity: 1;                     /* Text je plně viditelný. */
  visibility: visible;            /* Text je viditelný a aktivní. */
  transform: translateY(0);       /* Výchozí poloha textu bez posunu. */
  transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease; /* Plynulé skrytí a posun textu. */
}

/* Text Otevřít */
/* Tento text je na začátku skrytý a zobrazí se až při najetí myší. */
.text-hover {
  position: absolute;             /* Umístí hover text přes původní text. */
  left: 0;                        /* Zarovná hover text vlevo. */
  top: 0;                         /* Zarovná hover text nahoru. */
  opacity: 0;                     /* Text je na začátku neviditelný. */
  visibility: hidden;             /* Text je na začátku skrytý. */
  transform: translateY(6px);     /* Hover text je mírně posunutý dolů. */
  transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease; /* Plynulé zobrazení a posun textu. */
}

/* Při hoveru se výchozí text skryje */
/* Původní text například „Dokumenty 1“ zmizí a lehce se posune nahoru. */
.folder-link:hover .text-default {
  opacity: 0;                     /* Výchozí text zmizí. */
  visibility: hidden;             /* Výchozí text se skryje. */
  transform: translateY(-6px);    /* Výchozí text se posune mírně nahoru. */
}

/* Při hoveru se zobrazí text Otevřít */
/* Skrytý hover text se zobrazí a najede do své pozice. */
.folder-link:hover .text-hover {
  opacity: 1;                     /* Hover text se zobrazí. */
  visibility: visible;            /* Hover text bude viditelný. */
  transform: translateY(0);       /* Hover text se vrátí do základní polohy. */
}

/* Složka 1 — šedá */
/* Nastavení individuální barvy první složky. */
.folder-1 {
  --folder-color: #8a8a8a;
}

/* Složka 2 — pastelová bordó */
/* Nastavení individuální barvy druhé složky. */
.folder-2 {
  --folder-color: #b86b7a;
}

/* Složka 3 — pastelová petrolejová */
/* Nastavení individuální barvy třetí složky. */
.folder-3 {
  --folder-color: #4f8f91;
}

/* Složka 4 — tlumená tmavě modrá */
/* Nastavení individuální barvy čtvrté složky. */
.folder-4 {
  --folder-color: #526f9f;
}

/* Složka 5 — pastelová okrová */
/* Nastavení individuální barvy páté složky. */
.folder-5 {
  --folder-color: #c79a45;
}
				
			

Další příklady nastavení animací a rozšíření

Tady máme příklad upravených paramatrů, barva, rychlost… a jiné ikony.

Připravený HTML č. 1 s úpravami

				
					<!-- Hlavní obal celého seznamu ikon -->
<div class="icon-list">

  <!-- ŘÁDEK 1 — Šipka / Směr -->
  <!-- href = odkaz, kam má řádek vést -->
  <!-- target="_blank" = otevření odkazu v novém okně / nové záložce -->
  <!-- rel="noopener noreferrer" = bezpečnější otevření odkazu v novém okně -->
  <a href="https://www.example.cz/smer" class="icon-link icon-arrow" target="_blank" rel="noopener noreferrer">

    <!-- Obal samotné SVG ikony -->
    <span class="icon-symbol">

      <!-- SVG ikona šipky -->
      <svg class="icon-svg" viewBox="0 0 120 90" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">

        <!-- Definice masky pro postupné vyplnění ikony zleva doprava -->
        <defs>
          <clipPath id="iconFillClip-1">
            <rect class="icon-fill-mask" x="0" y="0" width="120" height="90" />
          </clipPath>
        </defs>

        <!-- Vnitřní výplň šipky, která se zobrazí až při najetí myší -->
        <path
          class="icon-fill"
          clip-path="url(#iconFillClip-1)"
          d="M18 38 H70 V24 L104 45 L70 66 V52 H18 Z"
        />

        <!-- Viditelný obrys šipky -->
        <path
          class="icon-outline"
          d="M18 38 H70 V24 L104 45 L70 66 V52 H18 Z"
        />
      </svg>
    </span>

    <!-- Textový obal řádku -->
    <span class="icon-text">

      <!-- Výchozí text před najetím myší -->
      <span class="text-default">Směr</span>

      <!-- Text, který se zobrazí při najetí myší -->
      <span class="text-hover">Pokračovat</span>

    </span>
  </a>


  <!-- ŘÁDEK 2 — Kniha / Pravidla -->
  <a href="https://www.example.cz/pravidla" class="icon-link icon-book" target="_blank" rel="noopener noreferrer">

    <!-- Obal samotné SVG ikony -->
    <span class="icon-symbol">

      <!-- SVG ikona knihy -->
      <svg class="icon-svg" viewBox="0 0 120 90" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">

        <!-- Definice masky pro postupné vyplnění ikony zleva doprava -->
        <defs>
          <clipPath id="iconFillClip-2">
            <rect class="icon-fill-mask" x="0" y="0" width="120" height="90" />
          </clipPath>
        </defs>

        <!-- Vnitřní výplň knihy, která se zobrazí až při najetí myší -->
        <path
          class="icon-fill"
          clip-path="url(#iconFillClip-2)"
          d="M18 18 H52 Q60 18 60 26 Q60 18 68 18 H102 V74 H70 Q62 74 60 82 Q58 74 50 74 H18 Z"
        />

        <!-- Viditelný obrys knihy -->
        <path
          class="icon-outline"
          d="M18 18 H52 Q60 18 60 26 Q60 18 68 18 H102 V74 H70 Q62 74 60 82 Q58 74 50 74 H18 Z"
        />

        <!-- Vnitřní linky knihy -->
        <path
          class="icon-detail"
          d="M60 26 V82 M32 34 H50 M32 46 H50 M70 34 H88 M70 46 H88"
        />
      </svg>
    </span>

    <!-- Textový obal řádku -->
    <span class="icon-text">

      <!-- Výchozí text před najetím myší -->
      <span class="text-default">Pravidla</span>

      <!-- Text, který se zobrazí při najetí myší -->
      <span class="text-hover">Číst</span>

    </span>
  </a>


  <!-- ŘÁDEK 3 — Zámek / Zabezpečeno -->
  <a href="https://www.example.cz/zabezpeceno" class="icon-link icon-lock" target="_blank" rel="noopener noreferrer">

    <!-- Obal samotné SVG ikony -->
    <span class="icon-symbol">

      <!-- SVG ikona zámku -->
      <svg class="icon-svg" viewBox="0 0 120 90" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">

        <!-- Definice masky pro postupné vyplnění ikony zleva doprava -->
        <defs>
          <clipPath id="iconFillClip-3">
            <rect class="icon-fill-mask" x="0" y="0" width="120" height="90" />
          </clipPath>
        </defs>

        <!-- Vnitřní výplň těla zámku, která se zobrazí až při najetí myší -->
        <path
          class="icon-fill"
          clip-path="url(#iconFillClip-3)"
          d="M30 38 H90 Q96 38 96 44 V76 Q96 82 90 82 H30 Q24 82 24 76 V44 Q24 38 30 38 Z"
        />

        <!-- Viditelný obrys těla zámku -->
        <path
          class="icon-outline"
          d="M30 38 H90 Q96 38 96 44 V76 Q96 82 90 82 H30 Q24 82 24 76 V44 Q24 38 30 38 Z"
        />

        <!-- Horní oblouk zámku -->
        <path
          class="icon-detail"
          d="M40 38 V30 Q40 14 60 14 Q80 14 80 30 V38"
        />

        <!-- Svislá část klíčové dírky -->
        <path
          class="icon-detail"
          d="M60 56 V68"
        />

        <!-- Kulatá část klíčové dírky -->
        <circle
          class="icon-detail-circle"
          cx="60"
          cy="54"
          r="4"
        />
      </svg>
    </span>

    <!-- Textový obal řádku -->
    <span class="icon-text">

      <!-- Výchozí text před najetím myší -->
      <span class="text-default">Zabezpečeno</span>

      <!-- Text, který se zobrazí při najetí myší -->
      <span class="text-hover">Odemknout</span>

    </span>
  </a>

</div>
				
			

Připravený CSS s úpravami

				
					/* Hlavní obal všech ikon pod sebou */
.icon-list {
  display: flex;                     /* Aktivuje flexbox */
  flex-direction: column;            /* Řádky budou pod sebou */
  gap: 14px;                         /* Mezera mezi jednotlivými řádky */
}

/* Celý klikací řádek jedné ikony */
.icon-link {
  --icon-color: #00A651;             /* Výchozí barva ikony, jednotlivé řádky ji níže přepíšou */

  display: inline-flex;              /* Ikona a text budou vedle sebe */
  align-items: center;               /* Svislé zarovnání ikony a textu na střed */
  gap: 12px;                         /* Mezera mezi ikonou a textem */
  width: fit-content;                /* Šířka řádku bude jen podle obsahu */
  text-decoration: none;             /* Zruší podtržení odkazu */
  color: #666666;                    /* Výchozí barva textu */
  font-size: 18px;                   /* Velikost textu */
  font-weight: 500;                  /* Tloušťka písma */
  cursor: pointer;                   /* Při najetí se zobrazí kurzor ruky */
  transition: color 0.6s ease;       /* Plynulá změna barvy textu při hoveru */
}

/* Barva textu při najetí myší na celý řádek */
.icon-link:hover {
  color: #333333;                    /* Tmavší barva textu při hoveru */
}

/* Obal samotné SVG ikony */
.icon-symbol {
  display: inline-flex;              /* Pomáhá správnému zarovnání SVG */
  width: 48px;                       /* TADY měníš velikost všech ikon */
  height: auto;                      /* Výška se dopočítá automaticky podle poměru SVG */
  flex-shrink: 0;                    /* Ikona se nebude zmenšovat při nedostatku místa */
}

/* Samotné SVG */
.icon-svg {
  display: block;                    /* Odstraní drobnou spodní mezeru pod SVG */
  width: 100%;                       /* SVG vyplní šířku obalu .icon-symbol */
  height: auto;                      /* Zachová přirozený poměr stran */
  overflow: visible;                 /* Zabrání nechtěnému oříznutí silnějších linek */
}

/* Hlavní obrys ikony */
.icon-outline {
  fill: none;                        /* Obrys nemá pevnou výplň */
  stroke: var(--icon-color);         /* Barva obrysu podle konkrétní ikony */
  stroke-width: 5;                   /* Síla linky obrysu */
  stroke-linejoin: round;            /* Zaoblené spoje čar */
  stroke-linecap: round;             /* Zaoblené konce čar */
}

/* Vnitřní linky ikony, například linky v knize nebo oblouk zámku */
.icon-detail {
  fill: none;                        /* Bez výplně */
  stroke: var(--icon-color);         /* Stejná barva jako hlavní ikona */
  stroke-width: 5;                   /* Síla vnitřních linek */
  stroke-linejoin: round;            /* Zaoblené spoje linek */
  stroke-linecap: round;             /* Zaoblené konce linek */
}

/* Kruhový detail, například kulatá část klíčové dírky */
.icon-detail-circle {
  fill: var(--icon-color);           /* Barva kruhu podle konkrétní ikony */
  stroke: none;                      /* Bez obrysu */
}

/* Vnitřní výplň ikony, která se odkryje při hoveru */
.icon-fill {
  fill: var(--icon-color);           /* Výplň má stejnou barvu jako obrys */
  opacity: 1;                        /* Plná čistá barva bez průhlednosti */
}

/* Maska, která na začátku skryje výplň ikony */
.icon-fill-mask {
  transform: scaleX(0);              /* Výplň je na začátku skrytá */
  transform-origin: left center;     /* Výplň se bude roztahovat zleva doprava */
  transition: transform 0.6s ease;   /* Rychlost a plynulost vyplnění ikony */
}

/* Při najetí myší se výplň ikony postupně zobrazí */
.icon-link:hover .icon-fill-mask {
  transform: scaleX(1);              /* Výplň se roztáhne na celou šířku ikony */
}

/* Textový obal vedle ikony */
.icon-text {
  position: relative;                /* Umožní překrytí výchozího a hover textu */
  display: inline-block;             /* Text se chová jako samostatný blok */
  min-width: 130px;                  /* Rezerva pro delší hover text */
  color: inherit;                    /* Přebírá barvu z .icon-link */
}

/* Výchozí text, například Směr, Pravidla, Zabezpečeno */
.text-default {
  display: inline-block;             /* Umožní plynulý posun textu */
  opacity: 1;                        /* Text je běžně viditelný */
  visibility: visible;               /* Text je aktivně viditelný */
  transform: translateY(0);          /* Výchozí poloha textu */
  transition: opacity 0.6s ease, transform 0.6s ease, visibility 0.6s ease;
}

/* Text, který se zobrazí po najetí, například Pokračovat, Číst, Odemknout */
.text-hover {
  position: absolute;                /* Umístí hover text přes původní text */
  left: 0;                           /* Zarovnání zleva */
  top: 0;                            /* Zarovnání shora */
  opacity: 0;                        /* Na začátku je skrytý */
  visibility: hidden;                /* Na začátku není viditelný */
  transform: translateY(6px);        /* Je mírně posunutý dolů */
  transition: opacity 0.6s ease, transform 0.6s ease, visibility 0.6s ease;
}

/* Při hoveru se původní text skryje a lehce posune nahoru */
.icon-link:hover .text-default {
  opacity: 0;                        /* Původní text zmizí */
  visibility: hidden;                /* Původní text se skryje */
  transform: translateY(-6px);       /* Původní text odjede lehce nahoru */
}

/* Při hoveru se nový text zobrazí */
.icon-link:hover .text-hover {
  opacity: 1;                        /* Hover text se zobrazí */
  visibility: visible;               /* Hover text je viditelný */
  transform: translateY(0);          /* Hover text najede do správné pozice */
}

/* Ikona 1 — čistá zelená */
.icon-arrow {
  --icon-color: #00A651;             /* Barva šipky */
}

/* Ikona 2 — čistá modrá */
.icon-book {
  --icon-color: #007BFF;             /* Barva knihy */
}

/* Ikona 3 — čistá červená */
.icon-lock {
  --icon-color: #E53935;             /* Barva zámku */
}
				
			

Připravený HTML č. 2 s úpravami

				
					<!-- SADA 1 — Archiv, Dopis, Uložiště -->
<div class="docset-archive-list">

  <!-- ŘÁDEK 1 — Archivní krabice -->
  <a href="https://www.example.cz/archiv" class="docset-archive-link docset-archive-box" target="_blank" rel="noopener noreferrer">

    <!-- Obal ikony -->
    <span class="docset-archive-symbol">

      <!-- SVG ikona archivní krabice -->
      <svg class="docset-archive-svg" viewBox="0 0 120 90" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">

        <!-- Maska pro vyplnění zleva doprava -->
        <defs>
          <clipPath id="docsetArchiveFillClip1">
            <rect class="docset-archive-fill-mask" x="0" y="0" width="120" height="90" />
          </clipPath>
        </defs>

        <!-- Výplň archivní krabice -->
        <path class="docset-archive-fill" clip-path="url(#docsetArchiveFillClip1)" d="M18 28 H102 L94 78 H26 Z" />

        <!-- Obrys archivní krabice -->
        <path class="docset-archive-outline" d="M18 28 H102 L94 78 H26 Z" />

        <!-- Víko archivní krabice -->
        <path class="docset-archive-detail" d="M26 18 H94 L102 28 H18 Z" />

        <!-- Úchyt archivní krabice -->
        <path class="docset-archive-detail" d="M46 45 H74 V56 H46 Z" />

      </svg>
    </span>

    <!-- Textový obal -->
    <span class="docset-archive-text">

      <!-- Výchozí text -->
      <span class="docset-archive-text-default">Archiv</span>

      <!-- Text při hoveru -->
      <span class="docset-archive-text-hover">Vstupte</span>

    </span>
  </a>


  <!-- ŘÁDEK 2 — Obálka -->
  <a href="https://www.example.cz/dopis" class="docset-archive-link docset-archive-envelope" target="_blank" rel="noopener noreferrer">

    <!-- Obal ikony -->
    <span class="docset-archive-symbol">

      <!-- SVG ikona obálky -->
      <svg class="docset-archive-svg" viewBox="0 0 120 90" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">

        <!-- Maska pro vyplnění zleva doprava -->
        <defs>
          <clipPath id="docsetArchiveFillClip2">
            <rect class="docset-archive-fill-mask" x="0" y="0" width="120" height="90" />
          </clipPath>
        </defs>

        <!-- Výplň obálky -->
        <path class="docset-archive-fill" clip-path="url(#docsetArchiveFillClip2)" d="M18 24 H102 V72 H18 Z" />

        <!-- Obrys obálky -->
        <path class="docset-archive-outline" d="M18 24 H102 V72 H18 Z" />

        <!-- Horní klopa obálky -->
        <path class="docset-archive-detail" d="M18 24 L60 52 L102 24" />

        <!-- Levá spodní klopa obálky -->
        <path class="docset-archive-detail" d="M18 72 L48 44" />

        <!-- Pravá spodní klopa obálky -->
        <path class="docset-archive-detail" d="M102 72 L72 44" />

      </svg>
    </span>

    <!-- Textový obal -->
    <span class="docset-archive-text">

      <!-- Výchozí text -->
      <span class="docset-archive-text-default">Dopis</span>

      <!-- Text při hoveru -->
      <span class="docset-archive-text-hover">Přečíst</span>

    </span>
  </a>


  <!-- ŘÁDEK 3 — Cloud -->
  <a href="https://www.example.cz/uloziste" class="docset-archive-link docset-archive-cloud" target="_blank" rel="noopener noreferrer">

    <!-- Obal ikony -->
    <span class="docset-archive-symbol">

      <!-- SVG ikona cloudu -->
      <svg class="docset-archive-svg" viewBox="0 0 120 90" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">

        <!-- Maska pro vyplnění zleva doprava -->
        <defs>
          <clipPath id="docsetArchiveFillClip3">
            <rect class="docset-archive-fill-mask" x="0" y="0" width="120" height="90" />
          </clipPath>
        </defs>

        <!-- Výplň cloudu -->
        <path class="docset-archive-fill" clip-path="url(#docsetArchiveFillClip3)" d="M36 70 H88 Q102 70 102 56 Q102 44 90 42 Q86 24 66 24 Q50 24 44 38 Q30 38 24 50 Q18 62 36 70 Z" />

        <!-- Obrys cloudu -->
        <path class="docset-archive-outline" d="M36 70 H88 Q102 70 102 56 Q102 44 90 42 Q86 24 66 24 Q50 24 44 38 Q30 38 24 50 Q18 62 36 70 Z" />

        <!-- Šipka uvnitř cloudu -->
        <path class="docset-archive-detail" d="M60 60 V42" />

        <!-- Hrot šipky -->
        <path class="docset-archive-detail" d="M50 52 L60 42 L70 52" />

      </svg>
    </span>

    <!-- Textový obal -->
    <span class="docset-archive-text">

      <!-- Výchozí text -->
      <span class="docset-archive-text-default">Uložiště</span>

      <!-- Text při hoveru -->
      <span class="docset-archive-text-hover">Data</span>

    </span>
  </a>

</div>
				
			

Připravený CSS s úpravami

				
					/* Hlavní obal sady Archiv / Dopis / Uložiště */
.docset-archive-list {
  display: flex;                              /* Aktivuje řazení prvků */
  flex-direction: column;                     /* Ikony budou pod sebou */
  gap: 14px;                                  /* Mezera mezi řádky */
}

/* Jeden klikací řádek */
.docset-archive-link {
  --docset-archive-color: #7B2CBF;            /* Výchozí barva, každá ikona ji níže přepíše */

  display: inline-flex;                       /* Ikona a text vedle sebe */
  align-items: center;                        /* Svislé zarovnání na střed */
  gap: 12px;                                  /* Mezera mezi ikonou a textem */
  width: fit-content;                         /* Šířka pouze podle obsahu */
  text-decoration: none;                      /* Bez podtržení odkazu */
  color: #666666;                             /* Výchozí barva textu */
  font-size: 18px;                            /* Velikost textu */
  font-weight: 500;                           /* Síla písma */
  cursor: pointer;                            /* Kurzor ruky */
  transition: color 0.6s ease;                /* Plynulá změna barvy textu */
}

/* Barva textu při hoveru */
.docset-archive-link:hover {
  color: #333333;                             /* Tmavší text při najetí */
}

/* Obal SVG ikony */
.docset-archive-symbol {
  display: inline-flex;                       /* Správné zarovnání SVG */
  width: 48px;                                /* Velikost ikony */
  height: auto;                               /* Automatická výška */
  flex-shrink: 0;                             /* Ikona se nezmenší */
}

/* Samotné SVG */
.docset-archive-svg {
  display: block;                             /* Odstraní spodní mezeru */
  width: 100%;                                /* SVG vyplní obal */
  height: auto;                               /* Zachová poměr stran */
  overflow: visible;                          /* Neořízne silnější linky */
}

/* Obrys ikony */
.docset-archive-outline {
  fill: none;                                 /* Bez výplně */
  stroke: var(--docset-archive-color);        /* Barva obrysu */
  stroke-width: 5;                            /* Síla obrysu */
  stroke-linejoin: round;                     /* Zaoblené spoje */
  stroke-linecap: round;                      /* Zaoblené konce */
}

/* Vnitřní detaily ikony */
.docset-archive-detail {
  fill: none;                                 /* Bez výplně */
  stroke: var(--docset-archive-color);        /* Stejná barva jako ikona */
  stroke-width: 5;                            /* Síla detailů */
  stroke-linejoin: round;                     /* Zaoblené spoje */
  stroke-linecap: round;                      /* Zaoblené konce */
}

/* Výplň ikony */
.docset-archive-fill {
  fill: var(--docset-archive-color);          /* Stejná barva jako obrys */
  opacity: 1;                                 /* Plná barva */
}

/* Maska výplně */
.docset-archive-fill-mask {
  transform: scaleX(0);                       /* Výplň je skrytá */
  transform-origin: left center;              /* Výplň začíná zleva */
  transition: transform 0.6s ease;            /* Rychlost vyplnění */
}

/* Hover efekt výplně */
.docset-archive-link:hover .docset-archive-fill-mask {
  transform: scaleX(1);                       /* Výplň se roztáhne */
}

/* Textový obal */
.docset-archive-text {
  position: relative;                         /* Umožní překrytí textů */
  display: inline-block;                      /* Blokové chování textu */
  min-width: 130px;                           /* Rezerva pro delší hover text */
  color: inherit;                             /* Přebírá barvu odkazu */
}

/* Výchozí text */
.docset-archive-text-default {
  display: inline-block;                      /* Umožní animaci */
  opacity: 1;                                 /* Viditelný stav */
  visibility: visible;                        /* Viditelnost */
  transform: translateY(0);                   /* Výchozí pozice */
  transition: opacity 0.6s ease, transform 0.6s ease, visibility 0.6s ease;
}

/* Hover text */
.docset-archive-text-hover {
  position: absolute;                         /* Překryje původní text */
  left: 0;                                    /* Zarovnání vlevo */
  top: 0;                                     /* Zarovnání nahoru */
  opacity: 0;                                 /* Skrytý stav */
  visibility: hidden;                         /* Skrytý text */
  transform: translateY(6px);                 /* Posun dolů */
  transition: opacity 0.6s ease, transform 0.6s ease, visibility 0.6s ease;
}

/* Skrytí výchozího textu při hoveru */
.docset-archive-link:hover .docset-archive-text-default {
  opacity: 0;                                 /* Text zmizí */
  visibility: hidden;                         /* Text se skryje */
  transform: translateY(-6px);                /* Posun nahoru */
}

/* Zobrazení hover textu */
.docset-archive-link:hover .docset-archive-text-hover {
  opacity: 1;                                 /* Text se zobrazí */
  visibility: visible;                        /* Text bude viditelný */
  transform: translateY(0);                   /* Vrátí se do pozice */
}

/* Fialová archivní krabice */
.docset-archive-box {
  --docset-archive-color: #7B2CBF;
}

/* Žlutá obálka */
.docset-archive-envelope {
  --docset-archive-color: #F5C400;
}

/* Tmavě modrý cloud */
.docset-archive-cloud {
  --docset-archive-color: #003B73;
}
				
			

Připravený HTML č. 3 s úpravami

				
					<!-- SADA 2 — Certifikát, Faktura, Provozní řád -->
<div class="docset-office-list">

  <!-- ŘÁDEK 1 — Certifikát -->
  <a href="https://www.example.cz/certifikat" class="docset-office-link docset-office-certificate" target="_blank" rel="noopener noreferrer">

    <!-- Obal ikony -->
    <span class="docset-office-symbol">

      <!-- SVG ikona certifikátu -->
      <svg class="docset-office-svg" viewBox="0 0 120 90" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">

        <!-- Maska pro vyplnění zleva doprava -->
        <defs>
          <clipPath id="docsetOfficeFillClip1">
            <rect class="docset-office-fill-mask" x="0" y="0" width="120" height="90" />
          </clipPath>
        </defs>

        <!-- Výplň certifikátu -->
        <path class="docset-office-fill" clip-path="url(#docsetOfficeFillClip1)" d="M24 14 H96 V76 H24 Z" />

        <!-- Obrys certifikátu -->
        <path class="docset-office-outline" d="M24 14 H96 V76 H24 Z" />

        <!-- Horní linka -->
        <path class="docset-office-detail" d="M38 30 H82" />

        <!-- Druhá linka -->
        <path class="docset-office-detail" d="M38 42 H74" />

        <!-- Pečeť certifikátu -->
        <circle class="docset-office-circle-outline" cx="60" cy="60" r="9" />

        <!-- Levá stuha -->
        <path class="docset-office-detail" d="M54 68 L49 80" />

        <!-- Pravá stuha -->
        <path class="docset-office-detail" d="M66 68 L71 80" />

      </svg>
    </span>

    <!-- Textový obal -->
    <span class="docset-office-text">

      <!-- Výchozí text -->
      <span class="docset-office-text-default">Certifikát</span>

      <!-- Text při hoveru -->
      <span class="docset-office-text-hover">Vytvořit</span>

    </span>
  </a>


  <!-- ŘÁDEK 2 — Faktura -->
  <a href="https://www.example.cz/faktura" class="docset-office-link docset-office-invoice" target="_blank" rel="noopener noreferrer">

    <!-- Obal ikony -->
    <span class="docset-office-symbol">

      <!-- SVG ikona faktury -->
      <svg class="docset-office-svg" viewBox="0 0 120 90" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">

        <!-- Maska pro vyplnění zleva doprava -->
        <defs>
          <clipPath id="docsetOfficeFillClip2">
            <rect class="docset-office-fill-mask" x="0" y="0" width="120" height="90" />
          </clipPath>
        </defs>

        <!-- Výplň faktury -->
        <path class="docset-office-fill" clip-path="url(#docsetOfficeFillClip2)" d="M30 12 H90 V78 L82 72 L74 78 L66 72 L58 78 L50 72 L42 78 L30 78 Z" />

        <!-- Obrys faktury -->
        <path class="docset-office-outline" d="M30 12 H90 V78 L82 72 L74 78 L66 72 L58 78 L50 72 L42 78 L30 78 Z" />

        <!-- Nadpisová linka faktury -->
        <path class="docset-office-detail" d="M42 30 H78" />

        <!-- Položka faktury 1 -->
        <path class="docset-office-detail" d="M42 44 H72" />

        <!-- Položka faktury 2 -->
        <path class="docset-office-detail" d="M42 56 H68" />

        <!-- Symbol platby -->
        <path class="docset-office-detail" d="M78 54 Q72 54 72 48 Q72 42 78 42 Q84 42 84 48 Q84 54 78 54 Z" />

      </svg>
    </span>

    <!-- Textový obal -->
    <span class="docset-office-text">

      <!-- Výchozí text -->
      <span class="docset-office-text-default">Faktura</span>

      <!-- Text při hoveru -->
      <span class="docset-office-text-hover">Uložit</span>

    </span>
  </a>


  <!-- ŘÁDEK 3 — Provozní řád -->
  <a href="https://www.example.cz/provozni-rad" class="docset-office-link docset-office-rules" target="_blank" rel="noopener noreferrer">

    <!-- Obal ikony -->
    <span class="docset-office-symbol">

      <!-- SVG ikona provozního řádu -->
      <svg class="docset-office-svg" viewBox="0 0 120 90" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">

        <!-- Maska pro vyplnění zleva doprava -->
        <defs>
          <clipPath id="docsetOfficeFillClip3">
            <rect class="docset-office-fill-mask" x="0" y="0" width="120" height="90" />
          </clipPath>
        </defs>

        <!-- Výplň dokumentu -->
        <path class="docset-office-fill" clip-path="url(#docsetOfficeFillClip3)" d="M28 10 H76 L94 28 V80 H28 Z" />

        <!-- Obrys dokumentu -->
        <path class="docset-office-outline" d="M28 10 H76 L94 28 V80 H28 Z" />

        <!-- Ohnutý roh -->
        <path class="docset-office-detail" d="M76 10 V28 H94" />

        <!-- Řádek 1 -->
        <path class="docset-office-detail" d="M42 38 H78" />

        <!-- Řádek 2 -->
        <path class="docset-office-detail" d="M42 50 H78" />

        <!-- Řádek 3 -->
        <path class="docset-office-detail" d="M42 62 H68" />

        <!-- Kontrolní značka -->
        <path class="docset-office-detail" d="M42 24 L50 31 L64 18" />

      </svg>
    </span>

    <!-- Textový obal -->
    <span class="docset-office-text">

      <!-- Výchozí text -->
      <span class="docset-office-text-default">Provozní řád</span>

      <!-- Text při hoveru -->
      <span class="docset-office-text-hover">Přečíst</span>

    </span>
  </a>

</div>
				
			

Připravený CSS s úpravami

				
					/* Hlavní obal sady Certifikát / Faktura / Provozní řád */
.docset-office-list {
  display: flex;                              /* Aktivuje řazení prvků */
  flex-direction: column;                     /* Ikony budou pod sebou */
  gap: 14px;                                  /* Mezera mezi řádky */
}

/* Jeden klikací řádek */
.docset-office-link {
  --docset-office-color: #E91E63;             /* Výchozí barva, každá ikona ji níže přepíše */

  display: inline-flex;                       /* Ikona a text vedle sebe */
  align-items: center;                        /* Svislé zarovnání na střed */
  gap: 12px;                                  /* Mezera mezi ikonou a textem */
  width: fit-content;                         /* Šířka pouze podle obsahu */
  text-decoration: none;                      /* Bez podtržení odkazu */
  color: #666666;                             /* Výchozí barva textu */
  font-size: 18px;                            /* Velikost textu */
  font-weight: 500;                           /* Síla písma */
  cursor: pointer;                            /* Kurzor ruky */
  transition: color 0.6s ease;                /* Plynulá změna barvy textu */
}

/* Barva textu při hoveru */
.docset-office-link:hover {
  color: #333333;                             /* Tmavší text při najetí */
}

/* Obal SVG ikony */
.docset-office-symbol {
  display: inline-flex;                       /* Správné zarovnání SVG */
  width: 48px;                                /* Velikost ikony */
  height: auto;                               /* Automatická výška */
  flex-shrink: 0;                             /* Ikona se nezmenší */
}

/* Samotné SVG */
.docset-office-svg {
  display: block;                             /* Odstraní spodní mezeru */
  width: 100%;                                /* SVG vyplní obal */
  height: auto;                               /* Zachová poměr stran */
  overflow: visible;                          /* Neořízne silnější linky */
}

/* Obrys ikony */
.docset-office-outline {
  fill: none;                                 /* Bez výplně */
  stroke: var(--docset-office-color);         /* Barva obrysu */
  stroke-width: 5;                            /* Síla obrysu */
  stroke-linejoin: round;                     /* Zaoblené spoje */
  stroke-linecap: round;                      /* Zaoblené konce */
}

/* Vnitřní detaily ikony */
.docset-office-detail {
  fill: none;                                 /* Bez výplně */
  stroke: var(--docset-office-color);         /* Stejná barva jako ikona */
  stroke-width: 5;                            /* Síla detailů */
  stroke-linejoin: round;                     /* Zaoblené spoje */
  stroke-linecap: round;                      /* Zaoblené konce */
}

/* Kruh / pečeť certifikátu */
.docset-office-circle-outline {
  fill: none;                                 /* Pouze obrys kruhu */
  stroke: var(--docset-office-color);         /* Barva obrysu kruhu */
  stroke-width: 5;                            /* Síla kruhu */
}

/* Výplň ikony */
.docset-office-fill {
  fill: var(--docset-office-color);           /* Stejná barva jako obrys */
  opacity: 1;                                 /* Plná barva */
}

/* Maska výplně */
.docset-office-fill-mask {
  transform: scaleX(0);                       /* Výplň je skrytá */
  transform-origin: left center;              /* Výplň začíná zleva */
  transition: transform 0.6s ease;            /* Rychlost vyplnění */
}

/* Hover efekt výplně */
.docset-office-link:hover .docset-office-fill-mask {
  transform: scaleX(1);                       /* Výplň se roztáhne */
}

/* Textový obal */
.docset-office-text {
  position: relative;                         /* Umožní překrytí textů */
  display: inline-block;                      /* Blokové chování textu */
  min-width: 140px;                           /* Rezerva pro text Provozní řád */
  color: inherit;                             /* Přebírá barvu odkazu */
}

/* Výchozí text */
.docset-office-text-default {
  display: inline-block;                      /* Umožní animaci */
  opacity: 1;                                 /* Viditelný stav */
  visibility: visible;                        /* Viditelnost */
  transform: translateY(0);                   /* Výchozí pozice */
  transition: opacity 0.6s ease, transform 0.6s ease, visibility 0.6s ease;
}

/* Hover text */
.docset-office-text-hover {
  position: absolute;                         /* Překryje původní text */
  left: 0;                                    /* Zarovnání vlevo */
  top: 0;                                     /* Zarovnání nahoru */
  opacity: 0;                                 /* Skrytý stav */
  visibility: hidden;                         /* Skrytý text */
  transform: translateY(6px);                 /* Posun dolů */
  transition: opacity 0.6s ease, transform 0.6s ease, visibility 0.6s ease;
}

/* Skrytí výchozího textu při hoveru */
.docset-office-link:hover .docset-office-text-default {
  opacity: 0;                                 /* Text zmizí */
  visibility: hidden;                         /* Text se skryje */
  transform: translateY(-6px);                /* Posun nahoru */
}

/* Zobrazení hover textu */
.docset-office-link:hover .docset-office-text-hover {
  opacity: 1;                                 /* Text se zobrazí */
  visibility: visible;                        /* Text bude viditelný */
  transform: translateY(0);                   /* Vrátí se do pozice */
}

/* Růžová ikona certifikátu */
.docset-office-certificate {
  --docset-office-color: #E91E63;
}

/* Oranžová ikona faktury */
.docset-office-invoice {
  --docset-office-color: #FF8C00;
}

/* Tyrkysová ikona provozního řádu */
.docset-office-rules {
  --docset-office-color: #00AFAF;
}
				
			

Změna CSS ID třídy

upravy-kod-elementor-animace-pozadi-bear-hugs-webdesign

Každý z těchto příkladů vytvoří jiný vizuální efekt, který můžete použít podle toho, co nejlépe vyhovuje vašim designovým požadavkům.

Ujistěte se vždy, pokud především chcete používat různá nastavení pro více nadpisů na jedné stránce, že máte správně přiřazený ID vašeho kontejneru. Jako například #muj-text" a že jste kód správně vložili do sekce vlastních CSS stylů v Elementoru.