跳到正文
cccskills
免费在 GitHub 公开

forms-pro

Build excellent web forms: UX patterns, validation, accessibility, multi-step flows, and file uploads. Use for any form beyond trivial inputs.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(1)

  • SKILL.md4.7 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Forms Pro

A practical guide to web forms that convert and don't frustrate: UX patterns, validation timing, accessibility, multi-step flows, and file uploads — the details separating forms users complete from forms they abandon.

Overview

Forms are where business happens (signup, checkout, application) and where UX most often fails. The principles: minimize friction (fewer fields, smart defaults, autofill), validate helpfully (right time, clear messages, preserve input), and never lose user data (drafts, recovery). Technical implementation (React Hook Form, Zod — see those skills) serves these goals.

When to use

  • Signup, checkout, application, settings, and contact forms.
  • Multi-step wizards and conditional flows.
  • File uploads with progress.
  • Form UX audits and conversion optimization.

Core concepts

  • Friction budget. Every field costs conversion. Cut ruthlessly: is this needed now, or can it be collected later / inferred / defaulted?
  • Validation timing. Validate on blur/touch first, then live as the user fixes. Never error on pristine fields; never wait until submit for obvious mistakes (but always validate on submit too).
  • Error UX. Inline errors next to fields, linked via aria-describedby; error summary at top with anchor links on submit failure; focus moves to first error. Preserve all input on failed submit.
  • Input design. Right input for the data: type="email|tel|number", inputmode, autocomplete attributes (huge for mobile), date pickers for dates (not free text), masks that help (not hinder).
  • Multi-step. One topic per step; progress indicator; back preserves everything; validate per step before advancing; review step before final submit; save drafts.
  • File uploads. Drag-and-drop + browse; accept filters; size/type validation client-side (and server-side!); progress bars; resumable/chunked for large files; previews.
  • Autosave. Draft persistence (localStorage or server) for long forms — losing 20 minutes of input is unforgivable.

Practical workflow

1. Design the fields.

  • List every field; justify each ("why now?"). Remove half.
  • Order: easiest first, sensitive (payment, SSN-equivalents) last.
  • Group related fields with <fieldset>/<legend>.

2. Markup (accessible by default).

<div>
  <label for="email">Email address</label>
  <input id="email" name="email" type="email" autocomplete="email"
         required aria-describedby="email-hint email-error" />
  <p id="email-hint">We'll send your receipt here.</p>
  <p id="email-error" role="alert">Enter a valid email address.</p>
</div>

3. Validation.

  • Schema (Zod/Yup) shared client/server.
  • mode: 'onTouched' (RHF) — validate after blur, revalidate live.
  • Server revalidates everything (client validation is UX, not security).

4. Multi-step state.

// single form state at wizard root; per-step validation via trigger(fields)
// persist draft: useEffect debounce → localStorage; restore on mount

5. Submit.

  • Disable during submission; prevent double-submit.
  • Success: clear draft, show confirmation (don't just redirect silently).
  • Failure: preserve input, show errors, focus first error, log for debugging.

6. Uploads.

// chunked upload sketch: slice file, POST chunks with index, server assembles
// show per-file progress; validate type/size before uploading a byte

Common pitfalls

  • Too many fields. The #1 form killer. Audit every field's necessity.
  • Errors on pristine fields. Validating before the user interacts = hostile. onTouched/onBlur first.
  • Wiping input on error. Failed submit clearing the form. Preserve everything, always.
  • Placeholder as label. Disappears on type, poor contrast, not a real label. Real <label> elements.
  • No autocomplete. Missing autocomplete attributes = mobile users typing everything manually. Add them; it's free conversion.
  • Client-only validation. Bypassable in seconds. Server validates independently.
  • No draft saving. Long forms without autosave. Persist drafts; users get interrupted.
  • File upload failures. No size limits communicated, no progress, no resume — large uploads fail silently. Validate early, show progress, chunk large files.
  • Inaccessible errors. Errors shown only in red text (no text = color-only), not linked to fields, not announced. Text + aria-describedby + role="alert".
  • Submit button ambiguity. "Submit" vs "Create account" vs "Pay $49" — the button should say what happens. Include the consequence.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Master 1Password: vaults, Watchtower, passkeys, SSH agent, CLI, and family/team administration. Use when getting full value from 1Password personally or administering it for others.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills252026年10月10日 更新

Create 3D visuals with modeling, texturing, lighting, rendering, and optimization for web and product.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills252026年10月10日 更新

Create 3D web experiences: scene setup, models, materials, lighting, animation, scroll-driven scenes, and performance budgets. Use when adding 3D to websites beyond basic demos.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills252026年10月10日 更新

Writing abstracts that get papers read — structured content, the 5-sentence core, and journal-specific constraints.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills252026年10月10日 更新

Learn effectively from courses and academies: choosing programs, studying actively, and converting courses into skills. Use when investing time/money in structured learning.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills252026年10月10日 更新

Audit designs for accessibility with WCAG checklists covering color, type, focus, motion, and content.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills252026年10月10日 更新

查看 aicodedecode 的全部技能

报告此技能的问题