Poznaj Techniki Pracy z UI w Figma
4 godz. 34 min · Figma · UI, UX i Webdesign
Mariusz CzepiecTen kurs jest świetnym rozwiązaniem nie tylko dla początkujących ale również dla osób, które już od jakiegoś czasu pracują w branży. Unikalne połączenie tematów jest doskonałą okazją do nauki nowych praktycznych umiejętności, a także do uporządkowania wiedzy i podniesienia swoich umiejętności na kolejny poziom. Jedyne czego potrzebujesz to podstawowa umiejętność obsługi Figmy.
Cześć.
Czasami musimy na szybko przetestować jakiś koncept, np.
przygotować listę z listing'iem artykułów po to, żeby sprawdzić, czy w pojedynczym
kafelku takiego listing'u dać większe zdjęcie czy mniejsze.
A może sprawdzić, czy tytuł artykułu
lepiej dać na zdjęcie, a może pod zdjęciem?
A poniżej jakieś krótkie wprowadzenie.
Jeżeli do tej pory tego typu listing'i tworzyłeś za pomocą zwykłych frame'ów.
To wiesz już, że takie zwykłe frame'y możesz bardzo szybko
wyrównać z wykorzystaniem funkcji autolayout.
Natomiast wiesz też, jak żmudna i ciężka praca jest do wykonania, kiedy chcemy na
każdym pojedynczym kafelku przeskalować takie zdjęcie albo przesunąć
ten tekst, nawet jeżeli pojedynczy kafelek jest wykonany w oparciu o autolayout.
W takich sytuacjach z pomocą przychodzi nam właśnie metodologia Atomic Design.
Pojedynczy kafelek to organizm,
który będziemy wielokrotnie wykorzystywać w naszym całym projekcie.
Natomiast żeby mogło się to zadziać, ten kafelek musimy zamienić na komponent.
I mam tu na myśli nie komponent jako
kolejny element naszego layout'u, ale komponent jako funkcja Figm'y.
Która działa w ten sposób, że z naszego kafelka tworzy pewnego rodzaju matrycę.
A następnie z tej matrycy tworzymy kopię i używamy je w całym naszym projekcie.
My teraz przygotujemy bardzo prosty
komponent, a na jego bazie stworzymy prosty, responsywny moduł.
Klikam T i za pomocą narzędzia tekstowego tworzę sobie miejsce na swój tekst.
Zamykam ten tekst w
autolayout.
Następnie
poprawiam padding wertykalny oraz padding horyzontalny.
I dodaje pomarańczowy obrys.
Na przykładzie ramka jest tylko po lewej
stronie i na górze, więc zaznaczam swój box
i w panelu stroke wybieram opcję custom i definiuję lewy obrys i górny.
OK.
Zmienię nazwę na box, wkleję do elementu przykładowy tekst.
Co tu się właśnie stało?
No powinniśmy już wiedzieć, albo przynajmniej dojść do tego, co tu się stało.
Sprawdzam, że mój box ma ustawiony
horizontal resizing na hug, czyli dopasuje się do tekstu w środku.
Sprawdzam więc pole tekstowe.
Pole tekstowe też ma ustawione horizontal resizing na hug, czyli dostosuje się do
długości tekstu, więc teraz pomniejsza swoje pole tekstowe.
Ustawię jego szerokość na 200.
Zwróć uwagę, że automatycznie w trakcie
skalowania horizontal resizing zmienił swoją wartość na fixed width.
OK. Mam box.
Zduplikuję go sobie raz, a może nawet drugi
i dojdę do wniosku, że jeszcze chce zmniejszyć to pole tekstowe.
Zmniejszam je.
Ale zmiana dotyczy tylko tego jednego pierwszego box'a.
Pozostałe, które są jego kopią pozostały bez zmian.
No właśnie. Tu z pomocą przychodzi komponent
Skasuję te 2 box'y, zaznaczę swój główny box i zamienię go w komponent.
Mogę to zrobić za pomocą skrótu klawiszowego lub za pomocą ikony create
component dostępnej w środkowej górnej części okna Figm'y.
Po kliknięciu w create component
wcześniejsza niebieska ramka frame'a zmieniła kolor na fioletowy.
Zmieniła się również ikona naszego box'a.
Wcześniej informowała nas o tym, że jest to autolayout.
Teraz informuje nas o tym, że jest to
główny komponent nasza matryca, z której będziemy mogli tworzyć kopie.
Kiedy teraz zduplikuję ten komponent 2 razy.
Widzicie, że tylko pierwszy komponent,
matryca ma ikonę 4 ciemnych kwadracików.
Jak popatrzycie na panel warstw też
zobaczycie, że tylko ten główny komponent ma ikonę 4 ciemnych kwadracików, a
jego instancje mają taki kwadrat z delikatnym obrysem.
Sprawdźmy zatem, co się stanie, kiedy
będziemy modyfikować nasz główny komponent, np.
będę chciał zwiększyć górny padding.
Padding zmienił się nie tylko w matrycy, ale również pozostałych modułach.
OK, ale ja potrzebuję zrobić moduł, w którym tych elementów będzie 10, 15.
Dobrą praktyką w takich sytuacjach jest trzymanie matrycy gdzieś z boku, najlepiej
w katalogu z całym design systemem, a w projekcie używamy tylko matryc.
Robimy tak po to, aby
wiedzieć i mieć zawsze pod ręką matrycę, a nie szukać jej po całym projekcie.
Czyli matryca gdzieś ląduje w design
systemie, a instancje wykorzystujemy w projekcie.
Skopiuję sobie jeszcze kilkakrotnie moduł.
Zaznaczę wszystkie instancje i zamknę w autolayout.
Powstał pięknie ułożony autolayout, w którym direction ustawione jest na wrap,
czyli w zależności od tego ile miejsca będziemy mieli w komponencie to
elementy będą układane od lewego górnego rogu w dół.
Jeśli zabraknie nam miejsca na
wyświetlenie kolejnego kafelka, zostanie on wyświetlony w kolejnej linii.
To co jest fajnego w Figmie to w momencie kiedy chciałbym mieć tutaj nie 5, ale 15
kafelków, to w momencie kiedy kliknę ctrl C i ctrl V i będę
wielokrotnie klikał ctrl V.
Kafelki będą automatycznie
wskakiwał na swoje miejsce, a w miarę
skalowania okna będą one przeskakiwały do kolejnych wierszy.
Oczywiście nie jest to pełna responsywność, ponieważ kafelki
wypełniają tylko część przestrzeni i wskakują na swoje miejsce
dopiero, kiedy tej wolnej przestrzeni jest odpowiednio dużo.
Fajnie by było, gdyby rozciągały się na pełną szerokość.
Wiemy, co trzeba wtedy zrobić.
Wystarczy je zaznaczyć i zmienić ich
dopasowanie do treści z hug content na fill container.
OK. Tego się spodziewaliśmy.
Wszystkie kafelki starają się ułożyć jeden obok drugiego.
Tak działa funkcja wrap.
Przerzuca do kolejnego wiersza dopiero, kiedy zabraknie miejsca.
Ale skąd autolayout ma wiedzieć, że miejsce się skończyło, skoro kafelki się
pomniejszają do tej wielkości, na jaką pozwala im się pomniejszyć autolayout?
To też już powinniśmy wiedzieć, jak wybrnąć z tej sytuacji.
W panelu frame musimy dodać minimalną szerokość dla naszych kafelków, np.
150.
Za mało, niech będzie 300.
O za dużo, no to 220.
Teraz kafelki układają się jeden obok drugiego.
Jeżeli nie ma miejsca na wyświetlenie
kolejnego kafelka, spada on do kolejnego wiersza i w tym kolejnym wierszu również
dany kafelek rozciąga się na pełną szerokość.
Myślę, że nawet z tym gap'em horyzontalnym i wertykalnym wygląda to bardzo fajnie.
Mogę teraz sobie przetestować różne parametry horizontal i vertical gap,
aby podjąć decyzję jaki wygląd pasuje mi bardziej z odstępem,
a może lepiej
jeżeli po prostu powstanie
tabela.
Poza tym, że mogę teraz szybko sprawdzić różne układy listingu kafelków.
Mogę również wpływać na pojedyncze kafelki
i korzystając z matrycy mogę powiększyć padding.
Mogę zmienić styl obrysu.
Poprzez zmianę koloru albo wyłączenia niektórych krawędzi.
Bądź mogę zmienić styl tekstu.