Ikony sú neoddeliteľnou súčasťou každého moderného používateľského rozhrania. Ich správne nasadenie zlepšuje UX, vizuálne orientuje používateľa a zároveň podporuje estetiku dizajnu. V Bainry sa pri
vývoji frontendových aplikácií spoliehame na kombináciu technológií ako
Node.js, Vue.js a Tailwind CSS, ktoré nám umožňujú pracovať s ikonami a SVG prvkami efektívne, flexibilne a škálovateľne.
Prečo SVG?
SVG (Scalable Vector Graphics) je formát, ktorý je ideálny pre ikony z viacerých dôvodov:
- Bez straty kvality: SVG ikony sú vektorové, čo znamená, že sa nedeformujú pri zväčšení ani zmenšení.
- Plne štýlovateľné cez CSS: Môžeme meniť farby, animovať prvky a aplikovať rôzne efekty.
- Nízka veľkosť súborov: SVG ikony sú zvyčajne veľmi ľahké, čo šetrí dáta aj čas načítania.
- Prispôsobiteľnosť: Možnosť inline úpravy v HTML, dynamické vkladanie cez komponenty.
Ako s ikonami pracujeme vo Vue
Vo Vue.js radi používame prístup cez komponenty, čo umožňuje ikonám byť plne reaktívne. Vytvárame si buď vlastné ikonové komponenty, alebo využívame knižnice ako:
- @heroicons/vue: Oficiálna SVG knižnica pre Tailwind – ideálna integrácia a čistý dizajn.
- vue-feather-icons: Elegantné, minimalistické ikony.
Prípadne vieme SVG vložiť priamo inline ako šablónu. Takto môžeme ikonám pridávať Tailwind štýly a pracovať s nimi ako s bežnými komponentmi.
Tailwind CSS a SVG
Tailwind poskytuje výbornú podporu pre štýlovanie SVG:
- Veľkosť: w-6 h-6, w-8 h-8...
- Farba: text-gray-600, text-primary, hover:text-blue-400...
- Prechody a animácie: transition-colors duration-200, hover:scale-110...
Keď použijeme SVG inline alebo cez komponenty, môžeme naplno využiť utility triedy Tailwindu na ich štýlovanie – a to bez potreby zásahov do CSS súborov.
Automatizácia cez Node.js
Na backendovej strane (alebo v rámci buildu) používame Node.js skripty napríklad na:
- Optimalizáciu SVG (napr. cez svgo)
- Konverziu SVG do Vue komponentov (svg-to-vue-component)
- Generovanie ikonového fontu alebo sprite-u pre prípadné legacy použitie
Tento proces môžeme automatizovať cez npm skripty alebo zapojiť do CI/CD pipeline.
Best practices, ktoré v Bainry dodržiavame
- Ikony ako komponenty – žiadne <img src="...">, všetko je plne reaktívne.
- Používanie SVG inline alebo cez špecializované knižnice – pre lepšiu kontrolu.
- Jednotný štýl ikon – napríklad používanie len outline alebo solid variantu HeroIcons v celom projekte.
- Automatizácia optimalizácie SVG – menšia veľkosť, lepší výkon.
- Tailwind pre štýlovanie ikon – žiadne custom CSS, všetko cez utility triedy.
SVG ikony sú dnes štandardom a v kombinácii s
Vue a Tailwind CSS tvoria výkonný nástroj pre vytváranie moderných, responzívnych a estetických používateľských rozhraní. V Bainry tieto technológie používame naplno a výsledkom sú čisté UI, výborná výkonnosť a rýchly vývoj.
Ak ťa táto téma zaujíma alebo sa chceš pridať k nám do tímu,
neváhaj sa ozvať – neustále hľadáme vývojárov, ktorí majú zmysel pre detail aj pre dizajn.