Otago Design System

Design system dla ekosystemu ponad 80 aplikacji webowych dla instytucji publicznych w Polsce. Ponad 50 komponentów, cztery tryby dostępności WCAG, jeden wspólny fundament wizualny.

Zobacz interaktywny system ↗
Aplikacja OTAGO na ekranie roboczym
Title
Design System OTAGO365
Industry
B2B / Sektor publiczny
Role
UX Design, projektowanie design systemu, dokumentacja analityczna
Tools
Figma
Date
2021–2025

Przegląd

Aplikacja GRU (Generalny Rejestr Umów) w nowym design systemie OTAGO

Przez 4 lata projektowałam design system dla ekosystemu ponad 80 aplikacji webowych Asseco Data Systems obsługujących instytucje publiczne w Polsce. Efektem jest biblioteka 50+ komponentów w czterech trybach dostępności WCAG, z dokumentacją analityczną dla każdego z nich.

System nie wygląda jak design system z 2026 roku, bo powstawał między 2021 a 2025 rokiem dla instytucji, w których priorytetem jest dostępność, stabilność i spójność. Zostawiam go tu, bo praca przy rozbudowanym ekosystemie przez kilka lat to inna skala doświadczenia niż pojedyncze wdrożenie.

Skala

Ponad 80 aplikacji webowych dla urzędów miast i gmin w całej Polsce: finanse publiczne, podatki i opłaty, świadczenia socjalne, kadry, windykacja, ewidencja nieruchomości.

Problem

Komponenty istniały tylko jako kod Angulara, bez dokumentacji projektowej i reguł zachowania. Każda aplikacja wyglądała i działała inaczej.

Dostępność

Instytucje publiczne wymagają zgodności z WCAG. Cztery tryby kolorystyczne projektowane od fundamentów, każdy komponent weryfikowany we wszystkich czterech wersjach.

Wynik

Wspólna biblioteka 50+ komponentów i jeden punkt odniesienia dla całego ekosystemu. Aplikacje stały się jedną, rozpoznawalną rodziną.

Dla kogo

Urzędniczka pracująca w kilku aplikacjach naraz

Persona projektowa: urzędniczka pracująca w aplikacjach OTAGO

Urzędniczka

użytkowniczka końcowa

„Mam otwartych kilka aplikacji naraz, a w każdej to samo wygląda i działa inaczej.”

Użytkowniczką systemu jest urzędniczka, która w ciągu dnia pracuje równolegle w kilku aplikacjach OTAGO. W jednej sprawdza dane mieszkańca, w drugiej księguje, w trzeciej prowadzi windykację. Pracuje z dużą ilością danych w listach, formularzach i zestawieniach, które trzeba przeszukać, uzupełnić i porównać. Zna swoją dziedzinę bardzo dobrze, ale nie jest osobą techniczną i oczekuje, że system nie będzie jej przeszkadzać. Część urzędniczek pracujących z systemem słabo widzi, więc kontrast i czytelność to dla nich realna potrzeba, a nie wymóg formalny.

Wcześniej każda z tych aplikacji wyglądała i zachowywała się inaczej. Przełączając się między nimi, użytkowniczka za każdym razem trafiała na inny układ, inne filtrowanie tabeli, inne miejsce przycisków. Mimo że to był jeden system, nie wyglądał jak jedna całość.

Problem

Stan przed

System obsługuje urzędy miast i gmin w całej Polsce: finanse publiczne, podatki i opłaty, świadczenia socjalne, zarządzanie kadrami, windykację i ewidencję nieruchomości. Każdy obszar funkcjonalny ma własną aplikację lub zestaw aplikacji, każda z własną logiką i wymaganiami.

Przed design systemem aplikacje w tym ekosystemie nie tworzyły spójnej całości. Komponenty istniały po stronie deweloperów jako kod Angularowy, bez dokumentacji projektowej i bez reguł zachowania. Każda aplikacja rozwijała się niezależnie, więc zmiana w jednej nie miała przełożenia na pozostałe.

Dla użytkowniczki oznaczało to codzienną niespójność: te same akcje i te same dane wyglądały inaczej w każdej aplikacji. Inne rozmieszczenie przycisków, inny sposób filtrowania list, inne formaty PESEL, kwot czy dat. Każda aplikacja wymagała przyzwyczajania się od nowa, mimo że była częścią jednego systemu.

Aplikacja OTAGO przed redesignem – widok 1
Aplikacja OTAGO przed redesignem – widok 2

Do tego dochodziło twarde wymaganie dostępności. Instytucje publiczne muszą spełniać WCAG, a dostępność dodawana na końcu projektu nigdy nie działa tak dobrze jak ta wbudowana w fundamenty.

Cel projektu

Doprowadzić ekosystem do stanu, w którym wszystkie aplikacje wyglądają i zachowują się jak jedna rodzina oparta na tych samych komponentach.

Nie chodziło o redukcję kosztów utrzymania, tylko o spójność widoczną dla użytkowniczki i o zgodność z WCAG na poziomie AA i AAA. Spójność miała być wbudowana w system, a nie pilnowana ręcznie przy każdej aplikacji. Dostępność miała wynikać z fundamentów, a nie być doklejana na końcu.

Kluczowe decyzje projektowe

Co najbardziej wpłynęło na to, jak system działa

Biblioteka liczy ponad 50 komponentów, od prostych przycisków i pól formularzy po złożone tabele, modale i nawigację. Poniżej decyzje, które najbardziej wpłynęły na to, jak system działa w praktyce.

Foundations i komponenty OTAGO w czterech trybach kolorystycznych WCAG
Te same elementy foundations w czterech trybach dostępności
01

Uporządkowanie kolorów: Primary przypisany do obszaru

Problem

Kolorów w ekosystemie było dużo i nie były uporządkowane. Wiele obszarów funkcjonalnych, w każdym kilka aplikacji, bez jasnej reguły, który kolor należy do czego.

Rozwiązanie

Uporządkowałam istniejącą kolorystykę, przypisując kolor Primary do obszaru funkcjonalnego, a nie do pojedynczej aplikacji, i definiując go jako styl Figma. Aplikacje z jednego obszaru stały się dzięki temu rozpoznawalne i spójne między sobą, a wszystkie razem korzystają z tych samych komponentów. Tożsamość obszaru niesie kolor, a nie osobny zestaw elementów.

System kolorów OTAGO: ten sam komponent w kolorach Primary różnych obszarów
Ten sam komponent w kolorach Primary różnych obszarów
02

Cztery tryby dostępności projektowane od fundamentów

Problem

Część urzędniczek słabo widzi, a instytucje publiczne mają twarde wymagania WCAG. Tryb wysokiego kontrastu doklejony na końcu nie rozwiązuje problemu czytelności.

Rozwiązanie

Cztery tryby kolorystyczne (standard, białe na czarnym, czarne na żółtym, żółte na czarnym) projektowane od fundamentów. Każdy kolor systemu ma zdefiniowany odpowiednik w każdym trybie, więc deweloper nie musi zgadywać, jak przełożyć kolor standardowy na kontrastowy. W trybach kontrastowych świadomie wyłączane jest semantyczne kodowanie kolorem, na przykład czerwień dla wartości ujemnych, ponieważ na czarnym czy żółtym tle traci ono znaczenie. Czytelność była tu ważniejsza niż estetyczne kodowanie.

Ten sam ekran Kartoteka osób w czterech trybach WCAG: standard, białe na czarnym, czarne na żółtym, żółte na czarnym
Ten sam ekran Kartoteka osób w czterech trybach dostępności
03

Wspólne wzorce zachowań i formatów danych

Problem

Te same akcje i te same dane wyglądały inaczej w każdej aplikacji. Inne miejsce przycisków, inny sposób filtrowania, inne formaty PESEL, kwot i dat. Użytkowniczka przy każdym przełączeniu uczyła się systemu od nowa.

Rozwiązanie

Ujednolicone wzorce dla całego ekosystemu. Stałe miejsca akcji, wspólny sposób filtrowania i wyszukiwania, zdefiniowane maski i reguły wyrównania dla każdego typu danych. Kwoty wyrównane do prawej z separatorem tysięcy, identyfikatory o stałej długości, daty w jednym formacie. Raz przyswojony sposób pracy działa w każdej aplikacji.

Ujednolicone wzorce i formaty danych w komponentach OTAGO
Ujednolicone wzorce i formaty danych w komponentach
04

Dokumentacja analityczna dla każdego komponentu

Problem

Komponenty istniały wcześniej tylko jako kod, bez opisu zachowań i stanów. Część wdrożeń realizował zespół, z którym nie dało się szybko komunikować, więc projekt nie mógł zostawiać miejsca na domysły.

Rozwiązanie

Każdy komponent dostał dokument analityczny z założeniami wizualnymi i funkcjonalnymi: warianty, stany, zachowanie w czterech trybach, reguły interakcji. Skala bywała duża, dokumentacja samej tabeli to dziesiątki stron specyfikacji, ale dzięki temu wdrożenie mogło przebiegać bez dopytywania.

Komponenty OTAGO z wariantami i stanami w czterech trybach WCAG
Komponenty z wariantami i stanami, dokumentowane w czterech trybach

Interaktywny design system

Przejrzyj system na żywo

Poniżej działa interaktywny podgląd systemu: komponenty, kolory obszarów i palety. Klikaj po zakładkach, żeby przejść między widokami.

Wdrożenie i przepływy UX

Nie tylko nowy wygląd, ale i lepszy proces

Wymiana komponentów w istniejących aplikacjach nie polegała tylko na podmianie warstwy wizualnej. Przy każdym wdrożeniu analizowałam przepływy UX wokół nowego komponentu i sprawdzałam, czy logika procesu wokół niego jest jeszcze aktualna. Tam, gdzie wzorzec nawarstwił się przez lata bez rewizji, proponowałam uproszczenie i uzgadniałam je z zespołem.

Przykład 01 · FK

Ekran pozycji dokumentu księgowego

Przed: ten sam ekran w trzech formach

Ten sam ekran, dodawanie i edycja pozycji dokumentu księgowego, istniał w kilku aplikacjach w różnych formach. Inny układ, inne nazwy, inne rozmieszczenie pól i akcji. Urzędniczka, która przechodziła między aplikacjami, za każdym razem trafiała na inną wersję tej samej czynności.

FK przed – wariant 1
FK przed – wariant 2
FK przed – wariant 3

Rozmowy z urzędniczkami

Zanim powstała nowa wersja, spotkałam się z urzędniczkami, które pracują na tym ekranie codziennie. Na wspólnych spotkaniach w sierpniu 2023 zbierałam konkretne problemy i pytania: jak nazwać ekran, gdzie spodziewają się przycisku, które pola są mylące, czego brakuje. Część zgłoszeń dotyczyła rzeczy, których nie widać z perspektywy projektanta:

  • przycisk „Powrót” miał trafić na belkę akcji, skrajnie z lewej, bo tam go szukały
  • „obiekt księgowy” miał być oznaczony kolorem innym niż czerwony, ponieważ to informacja, a nie błąd
  • pola Pobranie, Windykacja i Grupa miały zostać zgrupowane razem
  • kontrahenta trzeba było móc wpisać z ręki, nie tylko wybrać ze słownika
  • czcionka w tabeli szczegółów była za mała do codziennej pracy
Notatki i zgłoszenia ze spotkania z urzędniczkami
Notatki i zgłoszenia zebrane na spotkaniu z urzędniczkami

Po: jedna spójna makieta

Powstała jedna makieta: po lewej tabela pozycji, po prawej formularz szczegółów, ze stałym układem akcji i rozdzieleniem trybu podglądu od edycji. Ten sam wzorzec mógł od tej pory działać w innych aplikacjach, w których wcześniej ekran wyglądał inaczej.

otago365
FK – nowy ekran Podgląd pozycji: tabela i formularz, zgodny z WCAG

To pokazuje, co zmieniało się poza warstwą wizualną: kolejność i grupowanie pól, miejsce akcji, sposób wprowadzania danych, rozróżnienie informacji od błędu. Decyzje brały się z tego, jak urzędniczki faktycznie pracują, a nie z samego odświeżenia wyglądu.

Przykład 02 · GRIP

Wydruki i paczki

Do nowego systemu trzeba było przenieść generowanie wydruków dla wybranych pracowników, a przy okazji przebudować cały komponent wydruków, tak żeby obsługiwał różne formaty (PDF, Excel, CSV, XML) i działał spójnie z resztą systemu. Rozwiązanie uzgadniałam z kierowniczką produktu i konsultowałam z programistą znającym starą aplikację.

Przed: proces w trzech krokach

W starym GRIP wydruk był przywiązany do listy pracowników na każdej kartotece, a proces przebiegał w trzech krokach: najpierw przygotowanie zestawienia, potem podgląd, dopiero na końcu zapis. Interfejs był gęsty i rozproszony.

Stary GRIP – ekran Paczki/Wydruki
Stary ekran Paczki/Wydruki
Stary GRIP – gęste okno Wydruk
Stare okno Wydruk

Co zmieniłam

  • Oddzieliłam wydruki od listy pracowników i zebrałam je w jednym, przebudowanym komponencie, z zachowaniem grupowania w paczki.
  • W oknie dodawania wydruku można wskazać wydział przez multiselect albo konkretnych pracowników przez listę z polami wyboru. Obie listy są ograniczone zgodnie z uprawnieniami użytkownika.
  • Skróciłam proces. Wcześniej trzeba było przygotować zestawienie, podejrzeć je i dopiero zapisać. Teraz po zapisaniu wydruk od razu otwiera się do podglądu lub pobrania, a przycisk zapisu jest dostępny przez cały czas.
  • Dodałam nad tabelą podgląd wybranych pracowników i wydziałów, żeby było widać, czego dotyczy dany wydruk.
  • Usunęłam z tabeli paczek kolumny, które nie były już potrzebne.

Po: przebudowany komponent

otago365
Nowy ekran Paczki/Wydruki w GRIP365
Przebudowany ekran Paczki/Wydruki

Nowy przepływ w trzech krokach

otago365
GRIP po – Dodaj wydruk
1. Dodaj wydruk
otago365
GRIP po – Lista pracowników
2. Lista pracowników
otago365
GRIP po – Podgląd wydruku
3. Podgląd wydruku

To kolejna zmiana wykraczająca poza wygląd: inny przepływ pracy, wybór danych oparty na uprawnieniach i obsługa wielu formatów wydruku. Najgłębiej tego rodzaju pracę widać w projekcie Kadr i Płac, opisanym niżej.

Projekt Kadry i Płace

Migracja całej aplikacji z Forms na nowy design system

Osobnym i wymagającym zadaniem w ramach projektu była migracja aplikacji Kadry i Płace z systemu Forms na Angular, z pełnym przeprojektowaniem interfejsu w oparciu o nowy design system. Aplikacja obsługuje procesy kadrowo-płacowe dla instytucji publicznych: złożone przepływy danych, wielopoziomowe uprawnienia i skomplikowaną logikę biznesową.

Projekt realizowałam bez dedykowanego analityka, co oznaczało, że musiałam najpierw samodzielnie zrozumieć dziedzinę. Punktem wyjścia była analiza istniejącego systemu Forms, ekran po ekranie, z mapowaniem przepływów danych i punktów decyzyjnych. Rozmowy z osobami, które pracowały przy tym systemie i miały kontakt z urzędnikami, pozwoliły zrozumieć, gdzie procesy były uzasadnione, a gdzie nawarstwiły się przez lata bez rewizji. Każdą zmianę procesową uzgadniałam z kierownikiem projektu.

Przykład: ekran zmiany warunków zatrudnienia

W starym systemie ekran był przeładowany: dziesiątki pól, sekcji i kontrolek upchniętych na jednym widoku. Przez rozmowy z osobami znającymi system opisywałam każdy element: co jest ważne i zostaje, co można usunąć, a co przenieść lub zamienić na inny komponent. Powtarzalne pola z nazwami chowałam do tooltipów, oznaczenia osi czasu zamieniałam na ikonę, rozbudowane sekcje rozdzielałam na zakładki, a edytowalne komórki na komponent tabeli z przyciskiem dodawania. Każdą taką decyzję opisywałam w języku zrozumiałym dla deweloperów, którzy nie znali dziedziny kadrowo-płacowej.

Efektem był uporządkowany ekran rozłożony na zakładki: warunki zatrudnienia, struktura organizacyjna, składniki, oddelegowanie, kompetencje, zastępstwo. Zamiast jednego przeładowanego widoku powstał interfejs, w którym widać tylko to, czego użytkowniczka potrzebuje w danym momencie.

Przed: analiza ekranu Forms

Stary, przeładowany ekran Warunki zatrudnienia z analizą: które elementy przenieść do zakładek, tooltipów i komponentów

Po: ekran rozłożony na zakładki

otago365
Nowy ekran Zmiana warunków zatrudnienia w KP365, rozłożony na zakładki

Pełny zakres migracji wymagał ponad 1000 makiet. Każdy ekran to była kompletna analiza procesu: stary widok z systemu Forms, nowy widok w design systemie, zmapowane komponenty oraz opisane stany i interakcje. Dokumentacja powstawała dla zespołu deweloperskiego w Hiszpanii, gdzie szybka komunikacja nie była możliwa, więc specyfikacja musiała być na tyle precyzyjna, żeby wdrożenie mogło przebiegać bez dodatkowych pytań.

Pomiar sukcesu

Sukces design systemu mierzy się adopcją i spójnością

Design system nie ma jednej metryki konwersji. Jego sukces widać w tym, ile aplikacji faktycznie z niego korzysta i jak spójne stały się dla użytkowniczki.

80+

aplikacji w ekosystemie

50+

komponentów w bibliotece

4

tryby dostępności WCAG

1000+

makiet w Kadrach i Płacach

40+

aplikacji wdrożonych

Do tego dochodzi dokumentacja analityczna dla każdego komponentu i jeden punkt odniesienia dla całego ekosystemu po stronie deweloperów. Dowód jakościowy: klienci pozytywnie oceniali nowy, spójny wygląd aplikacji. To nie jest liczba, ale w projekcie, którego celem była spójność i dostępność, jest to bezpośrednie potwierdzenie, że cel został osiągnięty.

Wnioski

01

Praca przy design systemie przez cztery lata różni się od pracy przy jednorazowym projekcie tym, że konsekwencje decyzji projektowych ujawniają się stopniowo, przy kolejnych aplikacjach i modułach. System musi działać w kontekstach, których jeszcze nie znasz w chwili projektowania.

02

Projektowanie czterech trybów kolorystycznych od fundamentów zmieniło moje podejście do decyzji o kolorze. Kiedy ten sam komponent musi działać poprawnie w standardowej palecie i w trybie kontrastowym jednocześnie, wyraźnie widać, które rozwiązania były architektoniczne.

03

Praca przy Kadrach i Płacach bez analityka pokazała, że zrozumienie dziedziny jest częścią pracy projektowej. Makiety są lepsze, gdy projektant rozumie logikę procesów, które projektuje.