--- name: designing-forms description: Designs and builds web forms with correct labels, input types, autocomplete attributes, inline validation timing, error messaging, and layout — including multi-step forms and submit states. Use when the user asks to create or improve a form, sign-up or checkout flow, add form validation or error messages, fix form UX, or build a multi-step wizard. Do not use for backend validation logic or for general accessibility audits (ensuring-accessibility). --- # Designing Forms ## When to use / when NOT to use - **Use for:** creating or improving forms — field markup, labels, validation timing, error messages, layout, submit states, multi-step flows. - **Do NOT use for:** server-side validation rules or business logic, and full WCAG audits (ensuring-accessibility) — though forms built here must already follow its basics. ## Core rules 1. **Every field has a visible `