Figma do React: pikselowo dokładne komponenty tworzone przez jeden zespół design i engineering

Przekształcamy Twój Figma design system w utrzymywalne, dostępne komponenty React i Next.js, bez długu technicznego, który zostawia po sobie automatycznie generowany kod.

Zaufali nam

Umów rozmowę odkrywczą

Co tak naprawdę obejmuje dostarczenie na poziomie produkcyjnym

Każde wdrożenie obejmuje sześć obszarów, które odróżniają utrzymywalną bibliotekę komponentów od kruchego, jednorazowego rozwiązania.

Od design system do biblioteki komponentów

Mapujemy strukturę komponentów Figma bezpośrednio na bibliotekę komponentów React, zachowując hierarchię, konwencje nazewnictwa i wzorce ponownego użycia od pierwszego dnia.

Warianty Figma jako propsy React

Każdy zestaw wariantów Figma staje się typowanym interfejsem propsów w React, dzięki temu API komponentu odzwierciedla intencję projektanta i pozostaje przewidywalne dla każdego inżyniera w zespole.

Tokeny designu jako CSS custom properties

Wyciągamy zmienne Figma, kolor, odstępy, typografię, zaokrąglenia, do CSS custom properties lub pipeline'u tokenów, tworząc jedno źródło prawdy wspólne dla designu i kodu.

Auto Layout jako flexbox i grid

Reguły Auto Layout z Figmy przekładają się bezpośrednio na deklaracje CSS flexbox i grid, tworząc responsywne układy dostosowujące się do rzeczywistych rozdzielczości, nie do stałych szerokości artboardów.

Dostępność wbudowana od podstaw

Semantyczny HTML, atrybuty ARIA, nawigacja klawiaturą i odpowiedni kontrast kolorów to elementy uwzględniane już podczas budowania komponentu, nie łatane po audycie zgodności.

Core Web Vitals jako bramka jakości

Mierzymy LCP, CLS i INP względem celów produkcyjnych przez cały czas budowania, wydajność jest kryterium dostarczenia, nie problemem do rozwiązania po wdrożeniu.

Dlaczego automatycznie generowany kod tworzy dług techniczny

Narzędzia do konwersji Figma na kod stały się lepsze, ale ich wynik nadal odzwierciedla to, jak Figma przechowuje projekty wewnętrznie, nie to, jak zbudowane są produkcyjne aplikacje React. Efekt to kod, który wygląda poprawnie w podglądzie przeglądarki, a w praktyce zawodzi.

Najpowszechniejszy problem to pozycjonowanie absolutne. Narzędzia do automatycznego eksportu odczytują współrzędne pikselowe każdej warstwy i zapisują te wartości bezpośrednio w CSS. Komponenty zbudowane w ten sposób nie przepływają, gdy zmienia się viewport, nie reagują na dynamiczne treści i nie można ich osadzać w innych układach bez ręcznych poprawek.

Drugi problem to niemożliwy do ponownego użycia wynik. Eksportowany kod zazwyczaj generuje jeden plik na ramkę Figma zamiast jednego wielokrotnego użytku komponentu na wzorzec designu. Przycisk pojawiający się na czterdziestu ekranach staje się czterdziestoma osobnymi implementacjami przycisku, każda zaczyna się rozbiegać w chwili, gdy projektant aktualizuje źródło.

Trzeci problem to brakująca logika propsów. Automatycznie generowany kod rejestruje wizualny stan jednego wariantu. Warunkowe renderowanie, stany wyłączone, stany ładowania i stany błędów, wszystko to, co sprawia, że komponent jest gotowy produkcyjnie, wymaga inżyniera, który rozumie zarówno intencję projektanta, jak i model danych aplikacji.

  • Pozycjonowanie absolutne psuje responsywne układy i uniemożliwia składanie komponentów.
  • Eksport ramka po ramce produkuje zduplikowany kod bez żadnej wspólnej abstrakcji.
  • Statyczne migawki pomijają stany interaktywne, role dostępności i obsługę zdarzeń.
  • Generowane nazwy klas i style inline wchodzą w konflikt z istniejącymi design systemami i architekturami CSS.

Ręczne wdrażanie przez inżynierów pracujących bezpośrednio z design systemem pozwala uniknąć tych problemów od samego początku. API komponentu projektujemy z myślą o ponownym użyciu, logikę układu piszemy pod rzeczywiste rozdzielczości, a każdy stan interaktywny jest uwzględniony zanim komponent trafi do pull requesta.

Jak pracujemy: od audytu Figma do przekazania na produkcję

Przejrzysty proces oznacza brak niespodzianek. Tak wygląda typowe wdrożenie Figma do React, od pierwszej rozmowy do finalnego przekazania.

  1. Audyt design system

    Przeglądamy Twój plik Figma pod kątem spójności, konwencji nazewnictwa, pokrycia komponentami, brakujących stanów i kompletności tokenów, i wskazujemy wszystko, co mogłoby generować niejednoznaczności podczas wdrażania.
  2. Ekstrakcja tokenów i architektura

    Definiujemy pipeline tokenów: zmienne Figma mapujemy na CSS custom properties lub konfigurację style-dictionary, tworząc jedno źródło prawdy zanim powstanie choćby jeden komponent.
  3. Zakres i priorytetyzacja komponentów

    Wspólnie ustalamy, które komponenty niosą największe ryzyko produktowe lub wartość z wielokrotnego użycia, a następnie planujemy budowanie tak, by jak najszybciej dostarczać działające, testowalne komponenty, zamiast wszystkiego naraz.
  4. Budowanie i przegląd komponentów

    Inżynierowie wdrażają każdy komponent z typowanymi propsami, responsywnym układem, atrybutami dostępności i wszystkimi udokumentowanymi wariantami. Projektanci weryfikują wynik względem źródła Figma przed mergem.
  5. QA względem designu i celów wydajnościowych

    Przeprowadzamy testy regresji wizualnej, sprawdzamy zgodność między przeglądarkami i mierzymy Core Web Vitals. Komponenty przechodzą QA dopiero wtedy, gdy spełniają uzgodnione progi wierności designu i wydajności.
  6. Dokumentacja i przekazanie

    Każdy komponent trafia do Ciebie z dokumentacją użycia, tabelami propsów i historiami Storybook, Twój wewnętrzny zespół może pewnie rozwijać bibliotekę bez konieczności wracania do oryginalnego pliku Figma.

Jak daliśmy Joystream design system stworzony do skali społecznościowej

Joystream to otwarta platforma wideo oparta na blockchainie, zbudowana wokół własności i uczestnictwa społeczności. Gdy zespół przygotowywał się do uruchomienia Atlas, swojej flagowej dAppy, stanął przed poważnym wyzwaniem projektowym: potrzebował wysoce konfigurowalnego, dokładnie udokumentowanego design systemu, który jednocześnie obsługiwałby wiele aplikacji i umożliwiał zewnętrznym współpracownikom pracę w spójny i pewny sposób.

Netguru zaprojektowało i dostarczyło kompleksowy design system dla Atlas: szczegółowe wytyczne dotyczące designu i wdrożenia, dokumentację Figma, 175 tokenów designu oraz ponad 190 wielokrotnego użytku globalnych komponentów, każdy z obszerną dokumentacją na ponad 100 stronach. Gdy Joystream uruchomił MVP w październiku 2021 roku, design system Atlas był w pełni gotowy, zapewniając stabilny, skalowalny fundament umożliwiający ciągły rozwój platformy, współtworzony przez samą społeczność użytkowników.

Getting to work with the amazing talent in the Netguru roster has turned out to be one of the most material positive impacts on how we build products at Joystream.

Bedeho Mender

Founder and CEO at Joystream

Przeczytaj opis projektu
Joystream orange square preview

Co mówią nasi klienci

Praca Netguru przełożyła się na wzrost średniej wartości zamówienia, większy koszyk zakupowy i wyższą liczbę miesięcznie aktywnych użytkowników. Są proaktywni, zaangażowani i bardzo doświadczeni.

Ayman Kaheel

CTO, Breadfast

Dokładnie rozumieją kontekst biznesowy, nie pomijają żadnego szczegółu. Dzięki ich unikalnemu podejściu udało nam się odciążyć zespół operacyjny, jednocześnie poprawiając doświadczenie użytkownika.

Tiago Goncalves Cabaço

VP of Design, Careem

Netguru to agencja, z którą współpraca układała się nam dotąd najlepiej. Potrafią projektować nowe funkcje i interakcje w ramach naszego modelu, kładąc duży nacisk na szybki czas wejścia na rynek.

Adi Pavlovic

Director of Innovation, Keller Williams

Zaufały nam globalne marki

Najczęstsze pytania o wdrożenia Figma do React

Kiedy warto użyć narzędzia do automatycznej konwersji zamiast ręcznego wdrażania?

Narzędzia do automatycznej konwersji przydają się przy szybkim prototypowaniu lub generowaniu szkieletu struktury, który inżynier następnie przepisuje. Rzadko nadają się do kodu produkcyjnego, bo nie potrafią myśleć o wielokrotnym użyciu, responsywności ani stanach interaktywnych.

Ręczne wdrażanie jest właściwym wyborem zawsze, gdy wynik będzie utrzymywany, rozwijany lub używany w więcej niż jednym kontekście, a to opis niemal każdej produkcyjnej bazy kodu.

Ile trwa typowe wdrożenie Figma do React?

Czas trwania zależy od rozmiaru design systemu i złożoności komponentów. Skupione wdrożenie obejmujące podstawowy zestaw UI primitives trwa zazwyczaj od czterech do ośmiu tygodni. Pełne wdrożenie design systemu z dokumentacją i QA zajmuje dłużej, precyzyjnie określamy zakres po wstępnym audycie.

Planujemy dostarczanie etapami, tak by Twój zespół otrzymywał działające, przetestowane komponenty stopniowo, zamiast czekać na jedno duże wydanie.

Jak zarządzacie design systemem po zbudowaniu komponentów?

Konfigurujemy pipeline tokenów i dokumentację Storybook, które sprawiają, że design system jest samorządny przy rutynowych zmianach. Aktualizacje koloru, odstępów i typografii przepływają ze zmiennych Figma przez pipeline tokenów do CSS custom properties bez konieczności modyfikowania kodu każdego komponentu.

W przypadku zmian strukturalnych, nowych wariantów, nowych komponentów, modyfikacji układu, rekomendujemy lekki proces governance: wyznaczonego właściciela design systemu po każdej stronie, który weryfikuje zmiany w Figmie zanim trafią do kolejki wdrożeniowej.

Co się dzieje, gdy projekt Figma zmienia się po wdrożeniu?

Zmiany w designie to normalny element każdego cyklu życia produktu. Ponieważ wdrażamy komponenty z typowanymi propsami i pipeline'em tokenów, wiele zmian wizualnych, kolor, odstępy, typografia, propaguje się automatycznie przez warstwę tokenów bez ingerencji w kod komponentów.

Zmiany strukturalne, takie jak nowe warianty czy modyfikacje układu, wymagają aktualizacji kodu. Nasza dokumentacja przekazania sprawia, że Twój wewnętrzny zespół może wprowadzać te zmiany sprawnie, i pozostajemy do dyspozycji w ramach wsparcia, jeśli wolisz, żebyśmy zarządzali nimi bezpośrednio.

Czy pracujecie z istniejącymi bazami kodu React, czy tylko z projektami greenfield?

Pracujemy z oboma. W przypadku istniejących baz kodu audyt design systemu obejmuje przegląd obecnej architektury komponentów, nowe komponenty integrują się z Twoimi wzorcami zamiast wprowadzać równoległy system.

Szczególną uwagę poświęcamy konfliktom architektury CSS, kolizjom nazw i wpływowi na bundle, to praktyczne punkty tarcia, które pojawiają się przy dodawaniu nowej biblioteki komponentów do dojrzałej bazy kodu.

Jak zapewniacie dostępność budowanych komponentów?

Dostępność uwzględniamy na poziomie komponentu podczas budowania, nie audytujemy jej retrospektywnie. Piszemy semantyczny HTML, stosujemy role i atrybuty ARIA tam, gdzie natywna semantyka jest niewystarczająca, testujemy nawigację klawiaturą dla każdego komponentu interaktywnego i weryfikujemy kontrast kolorów względem WCAG AA jako minimum.

Komponenty niespełniające kryteriów dostępności nie przechodzą naszej bramki QA, Twój zespół przejmuje bibliotekę spełniającą wymogi zgodności już od pierwszego wydania.

Gotowy, by zamienić swoje projekty Figma w produkcyjne komponenty React?

Jeden zespół obsługuje audyt design systemu, architekturę tokenów, budowanie komponentów i QA, otrzymujesz spójny wynik bez konieczności koordynowania osobnych dostawców designu i engineeringu. Umów rozmowę wstępną, a powiemy Ci dokładnie, co obejmowałoby Twoje wdrożenie.

Umów rozmowę wstępną