UX/UI Guidelines
SkillSearchUX/UI guidelines for React 19 + Tailwind v4. Design system (OKLCH colors), accessibility (WCAG 2.2, ARIA), responsive design (mobile-first, container queries), animations (Motion, View Transitions, prefers-reduced-motion), UI patterns (navigation, tables, search, onboarding), interface polish (conce
Use UX/UI Guidelines in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add UX/UI Guidelines and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the UX/UI Guidelines skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
What this skill tells your AI
The instructions your AI receives, as published by aibiz-automatyzacje/claude-code-starter in .claude/skills/ux-ui-guidelines/SKILL.md and read by Ahel’s review.
Cel
Przewodnik projektowania interfejsu: design system, dostępność, responsywność, animacje, wzorce UI i dopracowanie detali. Ten plik to checklisty i zasady stałe; palety, skale, przykłady kodu i szczegóły są w resources/ (tabela na końcu). Wartości w przykładach są punktem wyjścia — tokeny projektu (DESIGN.md, @theme) i pomiary z makiety mają pierwszeństwo. Reguły pisania kodu są w .claude/rules/coding-rules.md.
Kiedy Używać Tego Skilla
- Projektowanie nowych komponentów UI
- Implementacja dostępności (WCAG 2.2, ARIA)
- Responsive design i container queries
- Animacje i przejścia
- Formularze i modale
- Mobile UX
- Nawigacja, tabele, wyszukiwanie, onboarding
- Dopracowanie detali interfejsu („coś tu nie gra”)
Checklisty
Dostępność (WCAG 2.2 AA)
- Etykieta: każdy element interaktywny ma nazwę dostępną — widoczny
<label htmlFor>alboaria-labelprzy przycisku z samą ikoną (ikona zaria-hidden="true") - Fokus: widoczny (
focus-visible:) i niezasłonięty przez przyklejony nagłówek, baner ani dialog (2.4.11) - Klawiatura: każda akcja dostępna z Tab, Enter i Spacji; Escape zamyka dialog i menu, a fokus wraca do elementu, który je otworzył
- Kontrast: tekst min 4,5:1, duży tekst i elementy interfejsu (obramowanie pola, ikona) min 3:1
- Rozmiar celu: min 24×24 px (2.5.8, AA), a na urządzeniu dotykowym 44×44 px (
pointer-coarse:size-11); mniejszy widoczny element rozszerzasz pseudo-elementem (after:-inset-0.5 pointer-coarse:after:-inset-3) - Ruch: animacja ma wariant
motion-reduce:albo warunekprefers-reduced-motion - Ogłaszanie: błąd z
role="alert", zmiana statusu w regioniearia-live="polite" - Struktura: nagłówki bez przeskoków poziomu,
<search>dla obszaru wyszukiwania, landmarki (<main>,<nav>) - Dialog:
Dialogz shadcn/ui (Radix) albo natywny<dialog>zshowModal()— oba trzymają fokus w środku i zwracają go po zamknięciu
Nowy komponent UI
- Style od mobile, szersze widoki przez breakpointy (
md:,lg:) - Container queries (
@container,@md:) dla komponentu, który żyje w kontenerach różnej szerokości - Wysokość pełnego ekranu w jednostkach dynamicznych (
min-h-dvh) - Zaokrąglenie zagnieżdżone koncentrycznie: zewnętrzne = wewnętrzne + padding
-
tabular-numsna liczbach, które się zmieniają (licznik, timer, cena) -
active:scale-[0.96]na klikalnym przycisku, gdy ruch nie rozprasza - Przejście z wymienionymi właściwościami (
transition-colors,transition-transform) zamiasttransition: all
Formularz
- Etykieta powiązana z polem (
htmlFor) - Komunikat błędu z
role="alert", podpięty do pola przezaria-describedby - Walidacja przy polu, nie tylko po wysłaniu
- Stan wysyłki z
useActionStatealboisPendingmutacji - Informacja zwrotna o sukcesie i błędzie (toast Sonner)
- Fokus na pierwszym polu z błędem po nieudanej wysyłce
Główne zasady
- Mobile-first i container queries — bo większość ruchu jest mobilna, a komponent reagujący na kontener działa w każdym układzie, do którego go włożysz.
- WCAG 2.2 AA jako minimum — w tym fokus niezasłonięty (2.4.11) i rozmiar celu (2.5.8), bo bez nich interfejs nie działa z klawiaturą i czytnikiem ekranu, a dla wielu usług w UE to wymóg European Accessibility Act.
- Kolory OKLCH w tokenach
@theme— bo OKLCH zachowuje postrzeganą jasność między odcieniami, więc kontrast skali jest przewidywalny. - Jednostki dynamiczne (
dvh) zamiastvh— bo100vhna telefonie chowa dół strony pod paskiem przeglądarki. - Animacja 150–300 ms na
transformiopacity, z wariantem dlaprefers-reduced-motion—filter,box-shadowi kolor tylko przy zmianie stanu (hover, fokus, naciśnięcie), właściwości układu (width,height,top) tylko przy rozwijanej treści (akordeon) przezinterpolate-size, z wariantem bez animacji w przeglądarce bez jego wsparcia; wyjście krótsze niż wejście, pętla ładowania dłuższa — bo animacja układu przesuwa treść (CLS), a długa albo wymuszona animacja męczy i szkodzi osobom z zaburzeniami przedsionkowymi. - Stan oczekiwania z
isPendingmutacji,useActionStatealbouseTransition— zamiast flagiuseState, bo biblioteka albo React sam zamyka stan po zakończeniu operacji (operacja sieciowa —isPendingmutacji, formularz —useActionState). - View Transitions dla nawigacji, z ścieżką bez API — bo przejście poprawia ciągłość, a przeglądarka bez
startViewTransitionma nawigować bez niego. - Popover API i
<search>zamiast własnych odpowiedników — bo element natywny ma dostępność, warstwę i zamykanie klawiaturą bez dodatkowego kodu. - Zaokrąglenie koncentryczne,
tabular-nums, konkretne przejścia,scale(0.96)przy naciśnięciu (nie mniej niż0.95) — bo te detale usuwają wrażenie, że „coś jest nie tak”, a mocniejsze skalowanie wygląda na usterkę.
Navigation Guide
| Potrzebujesz... | Przeczytaj |
|---|---|
| Kolory (paleta OKLCH), typografia, spacing, ikony | design-system.md |
| WCAG 2.2, ARIA, dostępność | accessibility.md |
Mobile-first, breakpointy, container queries, dvh, mobile patterns | responsive-design.md |
Motion, View Transitions, stagger, AnimatePresence | animations.md |
Modale, formularze, toasty, stany ładowania, optimistic updates, przycisk z useTransition | component-ux.md |
| Tabs, breadcrumbs, tabele, wyszukiwanie, filtry, onboarding | patterns.md |
| Concentric radius, optical alignment, shadow-as-border, image outlines, hit area | surfaces.md |
| Interruptible animations, subtelne wyjścia, icon crossfade, scale on press | animation-polish.md |
text-wrap balance/pretty, font smoothing, tabular nums | typography-polish.md |
Właściwości przejść, will-change | performance.md |
| Pryncypia polish i checklista przeglądu | polish-checklist.md |
Zanim zaczniesz projektować element, czytasz jego sekcję w przewodniku (nagłówki przez grep -n '^##', potem Read z offset i limit), bo pliki mają do 40k znaków, a każda sekcja niesie wartości i pułapki, których nie widać w samej klasie Tailwind (kontener z nazwą dla zagnieżdżonych container queries, fokus po zamknięciu dialogu, różnica svh / dvh / lvh).
Powiązany skill: tailwind-react-guidelines — komponenty React, Tailwind v4, formularze, testy.
Signals
- GitHub stars
- 88
- Forks
- 29
- Last commit
- Oct 2026
Ahel review
K1binfo
installs-packages (in resources/animations.md)K1binfo
installs-packages (in resources/design-system.md)
Automated review, not a security audit. Ruleset v1+k2.
Advanced
- Item type
- skill
- Key
ux-ui-guidelines- Source
- github.com/aibiz-automatyzacje/claude-code-starter
github.com/aibiz-automatyzacje/claude-code-starter