form-design
owl-listener/designer-skills
Design forms that reduce abandonment and errors through clear layout, smart validation, and accessibility.
What is form-design?
Expert guidance for designing forms end-to-end—from field ordering and grouping to validation and completion flows. Use this skill when building a form artifact; for product-wide error strategy or first-run signup flows, use error-handling-ux or onboarding-design instead.
- Single-column layout with field widths that reflect expected input length
- Top-aligned labels with helper text and persistent labeling (never placeholder-only)
- Input type matching (radio, select, date picker, masked inputs) based on data type
- Inline validation on blur with clear, actionable error messages placed below fields
- Multi-step form structure with progress indicators, back navigation, and data persistence
- Accessibility compliance: programmatic labels, error associations, keyboard focus order, and non-color-dependent indicators
How to install form-design
npx skills add https://github.com/owl-listener/designer-skills --skill form-designHow to use form-design
- 1.Determine the form's purpose and identify all required vs. optional fields
- 2.Organize fields into logical groups using proximity and section headings for longer forms
- 3.Choose input types (text, textarea, radio, select, checkbox, date picker, masked input) matching each data type
- 4.Write concise, sentence-case labels with helper text below the label, above the field
- 5.Implement inline validation on blur with error messages that explain what went wrong and how to fix it
- 6.For multi-step forms, add progress indicators, allow back navigation, and save progress automatically
- 7.Test with real users entering real data and measure field-level abandonment to identify optimization opportunities
Use cases
- Designing a checkout form with address, payment, and shipping fields grouped logically
- Building a multi-step signup flow with progress tracking and auto-save for long forms
- Creating a password reset form with show/hide toggle and strength validation
- Structuring a medical or legal form with review step before final submission
- Optimizing an existing form by analyzing field-level abandonment and removing optional fields
- Product designers building customer-facing forms
- Frontend engineers implementing form layouts and validation
- UX researchers measuring form completion and abandonment
- Teams designing high-stakes forms (payments, medical, legal)
form-design FAQ
Use radio buttons when there are 5 or fewer options and you want all choices visible at once. Use select/combobox for 6+ options to avoid overwhelming the user.
Validate on blur (when the user leaves the field). Real-time keystroke validation is distracting and creates a poor experience; the user needs time to finish typing before seeing errors.
Mark optional fields, not required ones. If most fields are required, flagging the few optional fields reduces visual noise. Use a non-color-dependent indicator (e.g., text label) alongside any visual marker.
Show clear progress (step indicator), group related questions per step, allow back navigation without data loss, auto-save or provide explicit save-and-continue, and confirm before discarding partial input.
Place error messages directly below the field they relate to, not at the top of the form. Make them actionable (e.g., 'Email address must include @') and associate them programmatically with the field using aria-describedby.
Full instructions (SKILL.md)
Source of truth, from owl-listener/designer-skills.
name: form-design
description: Design a form end to end — field order, grouping, validation, and completion. Use when the artifact is a form. For product-wide error strategy use error-handling-ux; for first-run signup use onboarding-design.
Form Design
You are an expert in designing forms that are clear, forgiving, and efficient to complete.
What You Do
You apply form design principles to reduce abandonment, prevent errors, and make data collection feel effortless — from single-field inputs to complex multi-step flows.
Layout
- Single column: almost always correct for forms. Two-column layouts disrupt reading flow and create ambiguity about field order.
- Field width should reflect expected input length: a postcode field is narrow; a bio field is wide. Width is a affordance for what belongs there.
- Top-aligned labels: faster to scan and more resilient to long labels than left-aligned or placeholder-only patterns.
- Group related fields using proximity (Law of Proximity) and section headings for longer forms — don't let long forms run as an undifferentiated column.
Labels and Instructions
- Every field has a persistent label — never rely on placeholder text as the only label (it disappears on input and fails accessibility)
- Labels are concise and in sentence case; avoid ALL CAPS
- Helper text goes below the label, above the field: "Format: DD/MM/YYYY"
- Required fields: mark optional, not required — if most fields are required, flagging optional reduces visual noise
- Character counts: show remaining characters when limits exist; show them always, not only on approach to the limit
Input Types
Match input type to the data being collected:
| Data type | Input type |
|---|---|
| Short text | Text input |
| Long text | Textarea (with visible resize) |
| One from few options (≤5) | Radio buttons (all visible) |
| One from many options (6+) | Select / combobox |
| Multiple from few options | Checkboxes |
| Date | Date picker or segmented inputs (day/month/year) — never a freeform text field for structured dates |
| Phone / card numbers | Formatted text input with masking |
| Password | Password input with show/hide toggle |
Validation
- Inline validation: validate on blur (when the user leaves the field), not on every keystroke — real-time validation on typing is distracting
- Error placement: directly below the field, not at the top of the form
- Error messages: explain what went wrong and how to fix it — "Email address must include @" not "Invalid email"
- Success indication: a subtle indicator (checkmark) on fields with non-obvious correctness (password strength, username availability)
- Server-side errors: surface inline to the field if possible; summarize at the top if multiple fields are affected
Multi-Step Forms
- Show progress clearly (step indicator, not just "Step 2 of 5")
- Each step should feel completeable as a unit — related questions together
- Allow back navigation without losing data
- Save progress for long forms (auto-save or explicit "save and continue")
- Confirm before discarding partial input
Accessibility
- Every field has a programmatic label (
<label for>oraria-label) - Error messages are associated with their field (
aria-describedby) - Focus order follows visual order
- Error summary at top is keyboard-focusable and links to each field
- Don't use color alone to indicate required or error states
Best Practices
- Remove every optional field you can — fewer fields = higher completion
- Default to the most common answer where one exists; don't default to blank for binary choices
- Test forms with real users entering real data — synthetic test data hides length and format edge cases
- Measure field-level abandonment (which fields do users leave the form on?) — this is where to invest optimization effort
- For high-stakes forms (payments, medical, legal), add a review step before final submission
Related skills
More from owl-listener/designer-skills and the wider catalog.

gesture-patterns
Design intuitive touch and pointer gestures—swipe, drag, long-press—with discoverability and accessibility.

handoff-spec
Write complete implementation handoffs with measurements, behaviors, assets, states, and edge cases for developers.

heuristic-evaluation
Systematic expert review of interfaces against Nielsen's 10 usability heuristics with severity ratings.

hicks-law
Reduce decision time by controlling the number of simultaneous choices presented.

icon-system
Design and standardize icon systems with grid, sizing, naming, and implementation specs.

illustration-style
Define visual language, colour usage, and application rules for consistent illustrations across your product.