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ść.
Potrafimy już tworzyć responsywne moduły z wykorzystaniem autolayout'u, które
albo dostosowują swój rozmiar do zawartości wewnątrz kontenera,
bądź potrafimy wpływać na elementy w kontenerze w taki sposób, aby
dostosowywały swój rozmiar, wysokość i szerokość do tego kontenera.
Potrafimy je również wyrównać do lewej, prawej, górnej, dolnej krawędzi.
Potrafimy również zdefiniować minimalną maksymalną szerokość
modułów, co daje nam większą kontrolę nad budowaniem responsywności.
Teraz stworzymy kolejny, jeszcze bardziej responsywny moduł.
Składa się on z dwóch pól tekstowych.
Pierwsze zaprezentowane jest większym stopniem pisma.
Jest to heading 3 i mamy jeden akapit tekstu body copy.
Umieszczone są one obok siebie.
Zamknięte w autolayout.
Parametry tego autolayout'u możecie sprawdzić na ściągawce.
Zobaczcie, że autolayout ma nadany padding po prawej i lewej stronie.
Ma on 48 pixeli.
Górny padding ma również 48 pixeli, a
wertykalny dolny padding jest trochę większy.
Ma on 128 pixeli.
Dzięki temu layout wygląda trochę bardziej dynamicznie, estetycznie.
Dodatkowo obie te kolumny oddzielone są gap'em wielkości 24 pixeli.
Sprawdźmy, co się stanie, kiedy będę teraz skalował ten moduł.
W miarę tego, jak zmniejszam moduł, pola tekstowe skalują się i cały czas
wypełniają pełną szerokość mojego kontenera.
W miarę tego, jak pola są coraz węższe, teksty przeskakują do kolejnych wierszy
i dostosowują się do przestrzeni, która jest dostępna na ich wyświetlenie.
W pewnym momencie, w trakcie skalowania
na ekranie pojawiają się pomarańczowe linie, które informują nas o tym, że
osiągnęliśmy granicę minimalnej szerokości pól tekstowych i od tego momentu nie będą
one dalej skalowane, a ich szerokość pozostanie już stała.
Sprawdźmy, co się stanie, kiedy będę skalować swój moduł dalej.
Teksty, które do tej pory były wyświetlone
jeden obok drugiego, przeskoczyło jeden pod drugi.
Wciąż zachowany został padding.
Zarówno horyzontalny, jak i wertykalny
oraz jest gap między górny a dolnym tekstem.
Kiedy będę skanował dalej, teksty wciąż
dostosowują się w taki sposób, aby wypełnić pełną szerokość mojego kontenera.
I nawet kiedy teksty zajmują coraz więcej
wierszy, moduł wciąż wygląda estetycznie i treści dopasowują się do kontenera.
Za to, w którym kierunku autolayout
układa elementy wewnątrz kontenera odpowiada funkcja direction.
Jest ona dostępna w panelu autolayout i reprezentowana za pomocą strzałek.
Vertical layout wymusza, aby wszystkie
elementy były wyświetlane jeden pod drugim.
Po jego kliknięciu teksty wyświetlane są jeden pod drugim,
a my w panelu autolayout możemy określić wertykalny gap między elementami.
Jeżeli kliknę horizontal layout,
funkcja wymusza, aby elementy wyświetlały się jeden obok drugiego.
Sprawdźmy, co się stanie, kiedy będę skalował horyzontalny autolayout.
Pomniejsza swój kontener.
Pola tekstowe pomniejszają się.
W pewnym momencie osiągam granicę,
po której pola tekstowe nie będą już dalej skalowane, a ja skaluje swój moduł dalej.
Tym razem pola nie przeskoczyły jedno pod
drugie, tak jak to miało miejsce przed chwilą.
Dzieje się tak dlatego, że funkcja
direction horizontal autolayout wymusza, że elementy mają być jeden obok drugiego.
Pola tekstowe mają ustawiony parametr
horizontal resizing na fill container i mimo tego, że powinny dopasowywać się do
wielkości kontenera, mają również zdefiniowany parametr minimum width, przez
co muszą zatrzymać swoje skalowanie i zachować tą minimalną szerokość.
Mamy jeszcze dostępną trzecią opcję direction wrap.
Działa ona w ten sposób, że w trakcie skalowania modułu,
w momencie kiedy zabraknie miejsca, aby wyświetlić oba pola tekstowe w odpowiedni
sposób w layoucie horyzontalnym, zostanie on przełączony w layout wertykalny.
Elementy ułożone do tej pory jeden obok drugiego.
Będą wyświetlone jeden pod drugim.
W przypadku takiego autolayout'u możemy zdefiniować zarówno horyzontalny, jak i
wertykalny gap i będzie się on zmieniał dynamicznie w
zależności od tego, który układ w tym momencie jest wykorzystywany.
Spróbujmy wspólnie stworzyć taki prosty moduł.
Wykorzystam do tego przygotowane wcześniej
pola tekstowe, które układam obok siebie i zamykam w
autolayout korzystając ze skrótu klawiszowego Shift A.
W tym momencie autolayout ma ustawiony horizontal resizing na hug.
Dostosowuje się do zawartości treści w środku.
Ja zmienię ten parametr na fixed.
A następnie w przypadku pól tekstowych
zmieniam horizontal resizing na fill container.
Dostosowuję wygląd mojego komponentu.
Korzystając ze ściągawki ustawiam górne i dolne padding na 48, wertykalny
również na 48, a dodatkowo zmieniam dolny padding na 128.
Ustawiam gap na 24 pixele i zmieniam kolor tła
na biały.
Spójrz, moduły wyglądają niemal identycznie.
Natomiast domyślnie autolayout został zdefiniowany jako horyzontalny, ponieważ
elementy znajdowały się jeden obok drugiego.
A więc zmieniam opcję na wrap.
Sprawdźmy, co się stanie, kiedy będę skalował swój moduł.
Pola zwężają się, zwężają, zwężają, zwężają się dalej i dalej i dalej.
I w tym momencie właściwie moduł staje się nieużyteczny.
Ciężko jest czytać takie treści.
Poza tym wygląda to paskudnie.
Dlaczego tak się dzieje?
Ano dlatego, że nie zdefiniowaliśmy tej
minimalnej szerokości dla tych pól tekstowych.
Więc zaznaczam oba te pola tekstowe.
Następnie z pola width w panelu Frame wybieram opcję add minimum width
i ustalam ją np. na 400.
Sprawdźmy co się teraz stanie.
Skaluje swój moduł dalej, skaluje i w
pewnym momencie przeskakuje on i jest już wertykalny.
Gap wydaje się trochę zbyt duży.
Ustawię go na 24.
Ale wciąż jest przestrzeń zbyt duża.
Dzieje się tak dlatego, że wcześniej
zmieniłem horizontal resizing na opcję fill container.
Natomiast vertical resizing został bez zmian, czyli ustawiony na fixed.
Teraz zmienię go na hug contents tak aby wysokość zawsze dopasowała się do
długości tekstu.
Działa.