Przejdź do treści
Biblioteka skilli
Projektowanie i UX · Planowanie

forms

/forms

Projektuje i poprawia interfejsy formularzy pod kątem przejrzystości, współczynnika ukończenia i zaufania użytkownika: układ pól, walidacja, formularze wieloetapowe.

Repozytorium
better-web-ui ↗
Licencja
MIT
Ostatnia zmiana repozytorium
21.05.2026

Ocena i bezpieczeństwo

90/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść25 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 21.05.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Projektuje i poprawia interfejsy formularzy pod kątem przejrzystości, współczynnika ukończenia i zaufania użytkownika: układ pól, walidacja, formularze wieloetapowe.

Oryginalny opis (EN)

Design, structure, or improve form interfaces for clarity, completion rates, and user confidence. Use when the user asks to build a form, redesign a form flow, improve form conversion, add multi-step forms, fix form UX, or structure field layouts and validation.

Jak działa

  1. MANDATORY PREPARATION
  2. Assess Form Needs
  3. Form Structure
  4. Validation Strategy
  5. Mobile Form UX
  6. Accessibility
  7. Anti-Patterns
  8. Verify Form Quality
Sekcje z nagłówków SKILL.md, w oryginale · 125 linii, 980 słów
Podgląd SKILL.md
---
name: forms
description: Design, structure, or improve form interfaces for clarity, completion rates, and user confidence. Use when the user asks to build a form, redesign a form flow, improve form conversion, add multi-step forms, fix form UX, or structure field layouts and validation.
metadata:
  argument-hint: "[form or flow]"
---

Build forms that users complete without confusion, anxiety, or abandonment. The goal is not to collect every possible field; it is to remove every unnecessary obstacle between the user and their goal.

Consult the [form validation patterns](../frontend-design/reference/form-validation-patterns.md) reference for validation timing, error placement, multi-field dependencies, async validation, and recovery design.
Consult the [live validation UX](../frontend-design/reference/live-validation-ux.md) reference for blur-vs-real-time timing, reward-early/punish-late behavior, and copy-paste-friendly validation.
Consult the [error recovery](../frontend-design/reference/error-recovery.md) reference for what happens after validation or submission fails.
Consult the [disabled buttons UX](../frontend-design/reference/disabled-buttons-ux.md) reference when deciding whether to block submit buttons or keep them enabled with error explanation.
Consult the [component anatomy](../frontend-design/reference/component-anatomy.md) reference for button, input, checkbox, radio, toggle, dropdown, and textarea anatomy guidance.

## MANDATORY PREPARATION

Users start this workflow with `/forms`. Once this skill is active, load $frontend-design — it contains design principles, anti-patterns, and the **Context Gathering Protocol**. Follow that protocol before proceeding — if no design context exists yet, you MUST load $setup first. Additionally gather: what goal the user is trying to achieve, which fields are truly required, and what causes abandonment in the current flow.

## Assess Form Needs

Understand the form's purpose and context:

1. **User goal**: What does the user get by completing this form? The clearer the payoff, the higher the completion rate.
2. **Field necessity**: Every field you add drops completion rates. Challenge each field: is it required now, or can it be collected later?
3. **Context of use**: Is the user rushed, distracted, on mobile, or in a stressful situation? Stressful contexts need simpler forms.
4. **Failure points**: Where do users currently drop off? Long forms, unclear labels, and unexpected validation are common culprits.

## Form Structure

### Field order

- Ask easy questions first to build momentum
- Group related fields visually (name fields together, address fields together)
- Place optional fields at the end or mark them clearly
- Separate billing and shipping only when they are genuinely different

### Label design

- Use clear, scannable labels above the input (not inside as placeholder text)
- Sentence case is easier to read than Title Case
- Be specific: "Card number" not "Payment info"
- Helper text should explain format requirements, not repeat the label

### Input design

- Match input width to expected content (postal code fields should not be full-width)
- Use the appropriate input type (`type="email"`, `type="tel"`, `type="date"`) for mobile keyboard optimization
- Show formatting hints as the user types (credit card spacing, phone number grouping)
- Autofill-friendly: use standard `name` and `autocomplete` attributes

### Multi-step forms

Break long forms into steps when:
- There are more than 6-8 fields
- The form covers distinct topics (account info, payment, confirmation)
- Users need to review before final submission

**Step design**:
- Show progress ("Step 2 of 4") so users know what remains
- Allow navigation back to previous steps
- Preserve entered data if the user leaves and returns
- Validate each step before allowing progression, but do not block navigation backward

## Validation Strategy

### Timing

- Validate on blur for clearly completed fields (email, phone, format-required fields)
- Validate on input only for immediate feedback that helps (password strength, character count)
- Validate on submit for everything else, especially cross-field dependencies
- Never validate a pristine field; it creates anxiety

### Error design

- Place error messages directly below the field
- Explain what went wrong and how to fix it
- Use `aria-invalid` and `aria-describedby` for screen reader association
- Preserve all user input when validation fails
- Move focus to the first error after failed submission

### Success states

- Subtly confirm valid fields with a checkmark or green border
- Remove success indicators when the user edits the field again
- Do not celebrate every valid field; it becomes noise

## Mobile Form UX

- Ensure touch targets are at least 44×44px
- Use appropriate input types for optimized keyboards
- Minimize scrolling by breaking into steps or using progressive disclosure
- Show the numeric keyboard for number fields, email keyboard for email fields
- Avoid dropdowns for short lists; use radio buttons or segmented controls instead

## Accessibility

- Associate every input with a label using `for`/`id`
- Use `fieldset` and `legend` for grouped fields
- Announce form-level errors with `role="alert"` or `aria-live="polite"`
- Ensure error messages are programmatically associated with fields
- Test keyboard navigation through the entire form
- Do not rely on color alone for error indication

## Anti-Patterns

- **Too many fields**: Every additional field reduces completion rates
- **Placeholder as label**: Disappears when the user types; bad for memory and accessibility
- **Validate on load**: Pristine fields showing errors feel accusatory
- **Vague errors**: "Invalid input" without explanation leaves users guessing
- **Clearing fields on error**: Losing typed data is deeply frustrating
- **Disabled submit without guidance**: A grayed-out button with no visible errors is a dead end
- **Multi-step without progress indicator**: Users do not know how much remains
- **Inconsistent validation timing**: Some on blur, some on submit, with no clear logic
- **Ignoring mobile keyboards**: Using `type="text"` for phone numbers forces users to switch keyboards
- **No save-and-resume**: Long forms that cannot be saved mid-progress punish interruptions

## Verify Form Quality

Before shipping:

- [ ] Every field is justified; optional fields are clearly marked
- [ ] Labels are clear, specific, and above the input
- [ ] Validation does not trigger on pristine fields
- [ ] Errors explain what went wrong and how to fix it
- [ ] Input is preserved when validation fails
- [ ] Focus moves to the first error after failed submission
- [ ] Multi-step forms show progress and allow backward navigation
- [ ] Mobile keyboards are optimized per field type
- [ ] The form is fully keyboard-navigable
- [ ] Color is not the only indicator of error or success

Wersje

RepozytoriumWynikLicencja
Ta strona · aladicf/better-web-ui90MIT
lukedj78/dev-flow100MIT
krishna-modi12/frontend-design-pro100MIT
arbazkhan971/godmode100MIT
mgifford/accessibility-skills95AGPL-3.0
PIXARTSeu/Synapse95AGPL-3.0
sukirman1901/frontend-expert90MIT

Identyczna treść występuje jeszcze w 1 innych folderach na GitHubie. Tu pokazujemy jedną, najlepiej ocenioną kopię.

Migawka bazy z 28.10.2026 · wersja paczki 900476f111b8 (skrót SHA-256 całej paczki)

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 90form-ux-architecture
    Projektuje i audytuje strukturę formularzy i walidację: grupowanie pól, pola wymagane, czas walidacji, podział klient-serwer, cykl wysyłki, odzyskiwanie i formularze wieloetapowe.
  • 90form-cro
    Optymalizuje formularze inne niż rejestracja, np. do pozyskiwania leadów, kontaktowe, zgłoszeniowe, ankiety i formularze kasy, pod kątem tarcia, liczby pól i współczynnika ukończenia.
  • 100enhance-web-forms
    Buduje lub ulepsza formularze webowe: dostępna struktura, walidacja oparta na schemacie i spójność klienta z serwerem.
  • 100form-cro
    Optymalizuje formularze inne niż rejestracja, takie jak leadowe, kontaktowe, z prośbą o demo, aplikacyjne, ankietowe i checkout, pod kątem tarcia, liczby pól i współczynnika ukończenia.
  • 100form-cro
    Optymalizuje formularze inne niż rejestracja, takie jak leadowe, kontaktowe, z prośbą o demo, aplikacyjne, ankietowe i checkout, pod kątem tarcia, liczby pól i współczynnika ukończenia.
  • 95react-hook-form-zod
    Buduje typowane formularze React z React Hook Form i walidacją Zod: schematy, tablice pól, formularze wieloetapowe oraz błędy resolvera i pól zagnieżdżonych.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.