Skip to content
geeks7.eu

geeks7.eu

  • WEB sprendimai
    • Internetinių svetainių kūrimas
    • SEO paslaugos
    • Internetinių parduotuvių kūrimas
    • Svetainių talpinimas, serveriai
    • Internetinių svetainių / parduotuvių priežiūra
  • WEB reklama
    • Google reklama
    • Facebook reklama / Instagram reklama
    • Logotipų kūrimas
    • Tekstų rašymas
  • IT sprendimai
    • Programavimo paslaugos
    • Verslo valdymo sistemos
    • Kibernetinio saugumo auditas
    • IT ūkio priežiūra
  • Domenai
    • Domenų gaudymas
    • Domenų pardavimas / perleidimas
  • IT naujienos
  • Kontaktai
    • Geeks7 komanda
    • Karjera
    • Kontaktai

    „Figma” dizaino perkėlimas į realų kodą

    2025-12-102025-10-28 by adminin Firminis stilius internete

    Kai dizaineris meta tau Figma failą ir sako „čia paprasta”

    Kiekvienas frontend’ininkas yra patyręs tą magišką akimirką, kai dizaineris atsiųsdamas Figma nuorodą parašo: „Čia nieko sudėtingo, tiesiog standartinis layout”. Ir tada atidarai tą failą – 47 artboardai, 12 skirtingų šriftų, komponentai įdėti į komponentus, o spalvų paletė atrodo tarsi vaivorykštė sprogusi. Bet rimtai kalbant, Figma dizaino perkėlimas į kodą yra vienas iš svarbiausių frontend kūrėjo įgūdžių, kuris reikalauja ne tik techninių žinių, bet ir gebėjimo interpretuoti dizainerio viziją.

    Pirmiausia reikia suprasti, kad Figma ir naršyklė – tai dvi visiškai skirtingos ekosistemos. Figma operuoja absoliučiomis pozicijomis, pikseliais ir laisvės jausmu, kai tuo tarpu CSS gyvena savo taisyklių pasaulyje su box modeliu, flow’ais ir kartais nelogiška specificity hierarchija. Tavo užduotis – būti tiltu tarp šių dviejų pasaulių.

    Pasiruošimas: kas turi būti padaryta prieš rašant pirmą kodo eilutę

    Prieš šokant į kodą, verta skirti 15-30 minučių Figma failo analizei. Tai ne laiko švaistymas – tai investicija, kuri sutaupys tau valandas vėliau. Pirmiausia peržiūrėk visus ekranus ir identifikuok pasikartojančius elementus. Tas mygtukas, kuris atrodo vienodai 8 skirtinguose ekranuose? Tai komponentas. Tos kortelės su produktais? Irgi komponentas. Jei dizaineris dirbo tvarkingai, jis jau bus sukūręs komponentų sistemą Figmoje, bet dažnai realybė būna kitokia.

    Patikrink, ar dizaineris naudojo auto-layout. Jei taip, tai puiku – matai, kaip elementai turėtų elgtis su spacing’u ir alignment’u. Jei ne, tau teks pačiam interpretuoti, ar tas 24px tarpas tarp elementų yra atsitiktinumas, ar dizaino sprendimas. Čia praverčia geras santykis su dizaineriu ir galimybė užduoti klausimus.

    Išsitrauk visas spalvas, typography stilius ir spacing reikšmes. Figma turi puikią inspect funkciją, bet dar geriau, jei dizaineris naudojo design tokens ar bent jau pavadino spalvas normaliais vardais, o ne „Rectangle 47 Copy 3”. Susikurk CSS kintamuosius arba SCSS variables jau dabar – tai bus tavo dizaino sistemos pagrindas.

    Struktūros kūrimas: nuo makro iki mikro

    Pradėk nuo didelio vaizdo. Pažiūrėk į dizainą ir identifikuok pagrindinius layout blokus: header, main content area, sidebar, footer. Nesinerk iškart į detales – pirmiausia sukurk HTML skeleton’ą su semantiniais tagais. Taip, `

    ` yra universalus, bet `

    `, `

    `, `
    `, `

    `, `

    ` egzistuoja ne be priežasties.





    Kai turėsi bendrą struktūrą, pradėk detalizuoti. Čia svarbu mąstyti komponentais net jei nenaudoji React ar Vue. Kiekvienas pasikartojantis elementas turėtų turėti savo CSS klasę, kuri gali būti perpanaudota. BEM metodologija čia labai praverčia, nors ji ir atrodo keistai iš pradžių.

    Responsive dizaino interpretacija: kai Figma rodo tik 3 breakpoint’us

    Štai kur prasideda tikrasis iššūkis. Dažniausiai gausi desktop, tablet ir mobile dizainus. Bet kas vyksta tarp jų? O kas su tais keistais įrenginiais kaip iPad Pro landscape režimu? Čia tau reikia priimti sprendimus.

    Naudok fluid typography ir spacing, kur įmanoma. `clamp()` funkcija CSS yra tavo draugas:


    .heading {
    font-size: clamp(1.5rem, 4vw, 3rem);
    margin-bottom: clamp(1rem, 3vw, 2rem);
    }

    Tai leidžia elementams sklandžiai keistis tarp breakpoint’ų be papildomų media queries. Tačiau neperkelk visų pikselių reikšmių iš Figmos 1:1. Figma dizaineriai dažnai naudoja fiksuotus dydžius, bet web’e geriau mąstyti proporcijomis ir santykiais.

    Kai kuriuosi grid’us, naudok CSS Grid ar Flexbox, o ne absoliučias pozicijas. Taip, Figmoje viskas atrodo tobulai su absolute positioning, bet web’e tai yra kelias į pragarą, kai turinys tampa dinamiškas. Modernus CSS Grid su `grid-template-areas` leidžia labai intuityviai aprašyti layout’us:


    .page-layout {
    display: grid;
    grid-template-areas:
    "header header header"
    "sidebar main aside"
    "footer footer footer";
    grid-template-columns: 250px 1fr 300px;
    gap: 2rem;
    }

    @media (max-width: 768px) {
    .page-layout {
    grid-template-areas:
    "header"
    "main"
    "sidebar"
    "aside"
    "footer";
    grid-template-columns: 1fr;
    }
    }

    Tipografija ir spacing: kai 2px svarbu (arba ne)

    Dizaineriai myli precizišką spacing’ą. 24px čia, 28px ten, 32px kitur. Bet web’e geriau naudoti nuoseklią spacing skalę. Populiarus pasirinkimas yra 8px bazė arba Tailwind-style spacing sistema. Tai nereiškia, kad turi ignoruoti dizainerio pasirinkimus, bet gali juos normalizuoti į artimiausią sisteminę reikšmę.

    Tipografijos atveju, išsitrauk visus text stilius iš Figmos ir sukurk CSS klases arba utility classes. Bet būk atsargus su line-height reikšmėmis – Figma naudoja pikselius, o web’e geriau naudoti unitless reikšmes:


    /* Figmoje: font-size 16px, line-height 24px */
    /* CSS geriau: */
    .body-text {
    font-size: 1rem;
    line-height: 1.5; /* 24/16 = 1.5 */
    }

    Dėl font svorių – patikrink, ar tie fontai, kuriuos dizaineris naudojo, tikrai yra prieinami Google Fonts ar kitame šaltinyje. Jei dizaineris naudojo 9 skirtingus font svorius, galbūt galima apsiriboti 3-4 ir vis tiek pasiekti panašų vizualinį rezultatą. Kiekvienas papildomas font svoris prideda KB prie page load.

    Interaktyvumas ir hover būsenos: kas nepasakyta Figmoje

    Figma puikiai parodo statišką dizainą, bet retai kada gausi išsamias specifikacijas dėl hover efektų, focus būsenų, transition’ų ar animacijų. Čia tau reikia užpildyti spragas vadovaujantis gerąja praktika ir UX principais.

    Visi interaktyvūs elementai turi turėti aiškias hover būsenas. Mygtukai, nuorodos, kortelės – bet kas, ant ko galima spustelėti, turi duoti vizualinį feedback’ą. Paprasčiausias variantas:


    .button {
    background: #007bff;
    transition: background 0.2s ease, transform 0.1s ease;
    }

    .button:hover {
    background: #0056b3;
    transform: translateY(-2px);
    }

    .button:active {
    transform: translateY(0);
    }

    .button:focus-visible {
    outline: 2px solid #007bff;
    outline-offset: 2px;
    }

    Focus būsenos yra kritiškai svarbios prieinamumui, bet dizaineriai dažnai jas pamiršta. Nenaudok `outline: none` be alternatyvos. Jei default focus ring netinka dizainui, sukurk savo, bet jis turi būti aiškiai matomas.

    Optimizacija ir performance: kai dizainas susiduria su realybe

    Tas gražus Figma dizainas su 4K nuotraukomis, custom fontais ir 20 skirtingų blur efektų gali atrodyti nuostabiai, bet web’e tai gali virsti performance košmaru. Čia prasideda delikatus balansavimas tarp vizualinės kokybės ir greičio.

    Pirmiausia – paveikslėliai. Jei dizaineris eksportavo PNG, o tai yra nuotrauka, konvertuok į JPG ar dar geriau – į modernius formatus kaip WebP ar AVIF. Naudok `` elementą su fallback’ais:

    Aprašymas

    Dėl šešėlių ir blur efektų – CSS `box-shadow` ir `filter: blur()` gali būti performance bottleneck’ai, ypač mobiliuose įrenginiuose. Jei dizaine yra daug elementų su sudėtingais šešėliais, apsvarstyk, ar visi jie tikrai būtini. Kartais paprastesnis šešėlis atrodo 90% taip pat gerai, bet veikia 200% greičiau.

    Animacijos turėtų naudoti tik `transform` ir `opacity` properties, nes tik jos gali būti optimizuotos GPU. Animuoti `width`, `height`, `top`, `left` yra kelias į janky animacijas:


    /* Blogai */
    .slide-in {
    animation: slideIn 0.3s ease;
    }

    @keyframes slideIn {
    from { left: -100%; }
    to { left: 0; }
    }

    /* Gerai */
    .slide-in {
    animation: slideIn 0.3s ease;
    }

    @keyframes slideIn {
    from { transform: translateX(-100%); }
    to { transform: translateX(0); }
    }

    Kai reikia pasakyti „ne” dizaineriui (diplomatiškai)

    Kartais dizaineris sukuria kažką, kas techniškai įmanoma, bet praktiškai neprotinga. Galbūt tai elementas, kuris reikalauja 500 eilučių JavaScript, kad veiktų viename edge case. Arba layout, kuris atrodo puikiai su Lorem Ipsum, bet subyrės su realiu turiniu.

    Tavo darbas – ne tik implementuoti dizainą, bet ir būti techniniu konsultantu. Jei kažkas kelia rūpesčių dėl performance, prieinamumo ar maintainability, pakalbėk su dizaineriu. Dažniausiai galima rasti kompromisą, kuris išlaiko dizaino viziją, bet yra techniškai tvaresnis.

    Pavyzdžiui, jei dizaine yra custom scrollbar su sudėtinga grafika, pasiūlyk paprastesnę versiją, kuri vis tiek atitinka brand’ą, bet nenaudoja 10 KB JavaScript bibliotekos. Arba jei yra animacija, kuri vyksta page load metu, paaiškink, kad tai gali pabloginti Core Web Vitals metrikas.

    Svarbu komunikuoti ne kaip „tai neįmanoma”, bet kaip „štai alternatyva, kuri pasiekia 95% to paties rezultato su 50% mažiau pastangų”. Dizaineriai paprastai vertina tokį požiūrį, ypač kai pamatai, kad supranti ir gerbi jų darbą.

    Kai viskas sueina į vieną vietą: nuo Figma iki production

    Figma dizaino perkėlimas į kodą nėra tiesiog pikselių kopijavimas – tai interpretacija, problema-solving’as ir nuolatinis balansavimas tarp idealo ir praktikos. Geriausios implementacijos atsiranda tada, kai frontend’ininkas ne tik mechaniškai perkelia dizainą, bet supranta jo tikslą ir kontekstą.

    Pradėk su tvirtu pagrindu: semantiniu HTML, nuoseklia CSS architektūra, aiškia komponentų sistema. Naudok modernias CSS galimybes kaip Grid, Flexbox, custom properties – jos egzistuoja ne be priežasties. Bet kartu būk pragmatiškas: ne kiekvienas 2px skirtumas yra kritiškas, ne kiekviena animacija būtina.

    Testuok skirtinguose įrenginiuose ir naršyklėse anksti ir dažnai. Tas dizainas, kuris atrodo tobulai tavo 27″ monitoriuje, gali būti visiškai nenaudojamas iPhone SE. Ir atvirkščiai – kartais mobile versija veikia puikiai, bet desktop’e atrodo tuščia ir nebaigta.

    Ir svarbiausia – palaik gerą santykį su dizaineriu. Jūs esate komandoje, ne priešingose barikadų pusėse. Kai dizaineris supranta technines ribas, o tu supranti dizaino principus, atsiranda magija. Rezultatas būna ne tik gražus, bet ir funkcionalus, greitas, prieinamas ir maintainable. Ir kai po kelių mėnesių grįši prie to kodo, padėkosi sau už laiką, kurį praleidai darydamas viską teisingai nuo pat pradžių.

    Navigacija tarp įrašų

    Previous Post„Autopilot” customer journey mapping
    Next Post„HubSpot” e-pašto personalizavimo galimybės

    Parašykite komentarą Atšaukti atsakymą

    El. pašto adresas nebus skelbiamas. Būtini laukeliai pažymėti *

    Aut. teisės © Geeks7.eu (Arūno Čiukšio individuali veikla Nr. 1056243)