Claude Code Skill
UX Writing
Use when writing or reviewing UI text or microcopy — button labels, error messages, empty states, form labels and hints, onboarding, tooltips, confirmation dialogs, notifications or success messages — or making product copy clearer, shorter and consistent.
Install
Claude Code
npx skills add WST2002/claude-code-skills --skill ux-writing
Or copy skills/ux-writing into ~/.claude/skills/.
Claude app (no terminal)
- In Claude, turn on Code execution (Settings → Capabilities).
- Open Customize → Skills, click +, choose Upload a skill and pick the ZIP. Menu names can differ slightly between app versions.
- Ask Claude for the task; it uses the skill when it fits.
Overview
Interface text is part of the design: it tells people what they can do, what happened, and what to do next. Good microcopy is specific, short, consistent and kind, and it still works when translated or read by a screen reader.
Inputs
- The screen or flow (screenshot, Figma frame, or a list of strings) and where each string appears.
- Who the user is and what they are trying to do at that moment.
- Existing voice and tone guide or glossary, if any. Otherwise infer the tone from the product's existing copy and keep it.
Method
- Context per string: where it appears, what the user just did, what they want next, and how they feel (in a hurry, worried about money, first visit).
- Write or rewrite each string with the patterns below.
- Consistency pass: one name per concept across the flow (do not mix "workspace", "project" and "space"), the same verb for the same action, the same capitalisation style.
- Length pass: fit the space; leave room for about 30% expansion in translation.
- Accessibility pass: link and button text makes sense out of context, error text is tied to its field, no meaning carried only by an icon or colour.
- Deliver as a table: location, current, suggested, why.
Patterns
| Type | Pattern | Example |
|---|---|---|
| Button | Verb + object; says what will happen | "Save changes", "Send invite" (not "OK", "Submit") |
| Destructive confirmation | Title asks about the exact action; body states the consequence; buttons repeat the action | "Delete 'Q3 report'?" · "This can't be undone." · [Delete report] [Cancel] |
| Error message | What happened + how to fix it; no blame, no raw codes alone | "That card was declined. Try another card or contact your bank." |
| Form field error | Specific to the field and the rule | "Enter a date after today" (not "Invalid input") |
| Empty state | What will appear here + why it's empty + the action to fill it | "No invoices yet. Invoices you send will show up here. [Create invoice]" |
| Success | Confirm the result and the next step if there is one | "Invite sent to asha@example.com" |
| Loading | Say what is happening when it takes more than a moment | "Uploading 3 of 12 photos…" |
| Label and hint | Label names the field; hint explains format or why it's needed | Label "Phone number", hint "We'll text you a code to sign in" |
| Onboarding | Benefit first, one idea per step, easy to skip | "Connect your calendar to see free slots automatically" |
| Notification | Who or what + what happened + action | "Riya commented on 'Homepage v2'" |
Report format
## UX writing: <screen or flow>
| Location | Current | Suggested | Why |
|---|---|---|---|
| Delete dialog, primary button | OK | Delete project | Names the action; "OK" hides that it is destructive |
**Glossary for this flow:** <term> (use) · <term> (avoid)
**Open questions:** <facts you need, e.g. "how long does the refund take?">
For the most important strings (primary buttons, key errors, headlines) give one or two alternatives with the trade-off.
Rules
- Never invent facts in copy: timings ("within 24 hours"), prices, limits or policies. Ask, or leave a placeholder like
<refund time>. - Use the user's words, not internal or technical terms ("payment failed", not "transaction error 402").
- Front-load the important word; cut "please", "simply", "just" and filler.
- Sentence case unless the product's style says otherwise.
- Do not build sentences by joining strings ("You have " + n + " items"); write full strings with plural forms, so they can be translated.
- No "click here" or "learn more" alone; link text names its destination.
- Keep the product's existing voice; do not add jokes or exclamation marks to errors.
Common mistakes
- "Something went wrong" with no cause and no next step.
- Buttons that say "Yes" and "No" under a question the user has to re-read.
- Three different words for the same thing in one flow.
- Copy that fits in English and breaks the layout in German.