Dnes je celkem běžné využívat pro návrh UI nějakou knihovnu prvků, případně mít vytvořený kompletní Design Systém. Z vlastní zkušenosti mohu říct, že to ušetří to hodně práce a starostí – například ve smyslu konzistetního UI nebo jednoduchosti vývoje.
Osobně jsem příznivcem určité jednoduchosti a proto mám tendence být při návrhu pravidel nebo samotných komponent docela striktní. Nejsem zrovna fanoušek různých variant – například velikostí nebo tvarů – protože zbytečně komplikují nejen práci, ale následně i samotný produkt.
Co a proč použít
S knihovnou UI prvků jsem se vlastně poprvé setkal při práci v GoodData. Kolegové tam tehdy vytvořili interní knihovnu zvanou GoodStrap, která obsahovala různé UI prvky a jejich definice. Hodně nám tehdy usnadnila práci. V Cimpress máme také něco podobného (o tom, jak v Cimpress tvoříme Design systém jsem povídal například na 5. ročníku konference UXZ).
Už tehdy v GoodData jsem se nejen já potýkal s takovým nešvarem – kdy jaký prvek použít, respektive, kdy kterou variantu využít. Například jsme měli tři velikosti tlačítek, různé varianty pro select boxy, atp. V Cimpress jsme ještě o kousek dál a máme několik variant téměř pro každou komponentu.
V GoodData nám tehdy trochu pomohlo, že jsme si definovali pravidla, kdy a proč komponenty využívat. To stejné jsme udělali v Cimpress akorát s tím rozdílem, že jsme u některých komponent zapomněli na jejich varianty – tedy například:
- Kdy využít malé tlačítko, kdy velké.
- V jakých případech má komponenta Drawer vyjet z pravé strany a kdy z levé.
Nejde mi zase tak moc o varianty jako spíš o jejich smysl. Například se dnes často setkávám s tím, například v návrzích kolegů, že většinou stejně využívají pouze jednu velikost tlačítka, jeden styl přepínače a tak dále.
Osobně přemýšlím nad tím, proč tedy máme různé varianty a proč někdo využil jinou variantu, než kterou typicky používáme.
Lidé se tím často nezabývají
Co jsem zatím během své kariéry zažil je, že větší variabilita vede bohužel k tomu, že se lidé možnostmi mnohdy nezabývají a nepřemýšlí nad tím systematicky – prostě si vyberou podle toho, co se jim libí nebo co jim do daného návrhu „lépe“ zapadne.
Nejen že to trochu komplikuje samotný návrh, ale v podstatě i udržitelnost daného systému a následně i samotného produktu. Přeci jen, lidé mnohdy úplně nepřemýšlí nad tím, zda je určitá varianta v celkovém výsledku lepší nebo ne a dají pouze na subjektivní pocit. (Je pravda, že velikost tlačítka asi nic zásadního neohrozí. V případě komplexnějších vzorů ale může různá kombinace věci trochu víc komplikovat.)
Věřím, že by méně možností pomohlo. Samotřejmě by se trochu minimalizoval osobní projev (ve smyslu stylu) jednodlivých designérů (přeci jen, ne všichni děláme všechno stejně), ale bylo by vše snazší udržovat a určitě by to bylo pro všechny lepší, než aby jim neustále někdo „dával feedback“ na všechny návrhy. Myslím si, že by to asi lidem úplně zabilo flexibilitu a chuť něco dělat.
Mít volnost nebo být striktní?
Nejen ze zvědavosti jsem si procházel veřejné knihovny, design systémy, atp. dalších společností. Chtěl jsem se podívat, jak mají definované a popsané prvky, co mají v pravidlech/doporučení o aplikaci prvků, atp.
Neobjevil jsem nic převratného. Pouze to, že:
- Některé firmy také nemají vše definované do posledního puntíku a mají různé varianty prvků.
- Některé Design Systémy se jeví ale více striktní a obsahují sadu prvků s omezeným množstvím variant.
Často jsem to už s kolegy probíral. Jako nový designér jsem se tehdy snažil pochopit náš cíl a přístup, abych byl efektivním kolegou a zaměstnancem. Proto jsem se tehdy pídil po tom, kdy a proč některé věci používat a proč máme tolik možností.
Našim stávajícím cílem je mít (a nabídnout) určitou flexibilitu a variabilitu. Co když by se totiž daný prvek příliš nehodil? Pak také i to, že UI nenavrhujeme jen my designéři, ale u některých částí jej navrhují vývojáři či PO a je lepší mít více „schválených“ možností, než aby si udělali něco po svém.
Často se právě ptám – co je vlastně smyslem podobných knihoven:
- Usnadnit návrh a vývoj?
- Docílit relativně konzistentního UI, které tak bude snazší na naučení?
- Něco úplně jiného?
Je tedy vhodné nabídnout více možností ve smyslu „co kdyby se to jednou hodilo“ a nebo být striktní a držet vše trochu zkrátka?
Tehdy jsme to právě řešili i v GoodData. Abychom udrželi rozumnou míru počtu komponent a jejich vývoj do GoodStrapu, měli jsme pravidlo, že se bude přidávat pouze to, co je skutečně potřeba.
Osobně bych se takového pravidla klidně držel dál a byl bych více striktvní a minimalizoval různé varianty (tehdy nám to docela pomohlo). Variabilitu bych nechal pouze v opodstatněných případech a prvky, varianty a pravidla bych se tak snažil co nejvíce zjednodušit a vymezit tak jejich použití. Samozřejmě s tím cílem, abych:
- Usnadnil ostatní práci a nenechal je tak zbytečně dumat nad tím, co a kdy použít.
- UI udržel systematické a jednoduché.
Jak to máte vy u své UI knihovny (ať už tomu říkáte jakkoliv)? Jak řešíte potřebu případných variant a jejich přidávání? Díky moc za případné komentáře.