Your signup form has five fields, two paragraphs of legal text, and a button that says "Submit." You've lost 40% of users before they click anything. They don't know what "Submit" will do, they're not sure if they need to read the legal text, and the password requirements aren't clear until after they've already failed validation twice.
This isn't a design problem. It's a UX copy problem. The interface is technically functional, but the words aren't doing their job. They're not guiding users, answering questions, or building confidence. They're just... there.
Good UX copy makes interfaces feel obvious. Users shouldn't need to think about what happens when they click a button, whether a field is required, or what to do when there's no content yet. This guide breaks down how to write the microcopy—the small pieces of interface text—that makes products intuitive instead of confusing.
What Makes UX Copy Actually Work
UX copy isn't marketing copy. It's not trying to persuade or entertain. It's trying to help users accomplish a goal with as little friction as possible.
Good UX copy does three things:
- Makes the next action obvious (users shouldn't have to guess)
- Answers questions before users ask them (reduces uncertainty)
- Matches how users think (uses their language, not system language)
When UX copy works, users don't notice it. They just move through your product smoothly. When it fails, users get stuck, confused, or click the wrong thing.
Button Labels: Be Specific About What Happens
"Submit," "OK," and "Click Here" are the worst button labels you can use. They tell users nothing about what will happen when they click.
The Problem with Generic Labels
"Submit" is system language. It describes what the form does (submits data to a server) but not what the user accomplishes. Does it create an account? Send a message? Process a payment? Users shouldn't have to infer.
Compare these:
Generic: Submit
Specific: Create account
The second one tells users exactly what happens. No ambiguity. No need to read surrounding text to understand the button.
Use Action Verbs That Match User Goals
Good button labels start with a verb and describe the outcome:
- "Save changes" (not "Save" or "Update")
- "Download invoice" (not "Download" or "Export")
- "Send message" (not "Send" or "Submit")
- "Confirm booking" (not "Confirm" or "Proceed")
- "Start free trial" (not "Get started" or "Sign up")
Each of these tells users exactly what they're committing to. "Send message" is clear—your message will be sent. "Submit" leaves room for doubt—submit what? Where?
Destructive Actions Need Extra Clarity
When users are about to delete, remove, or cancel something, be explicit about what they're destroying:
- "Delete project" (not "Delete")
- "Remove member" (not "Remove")
- "Cancel subscription" (not "Cancel")
- "Permanently delete" (when there's no undo)
And pair destructive buttons with clear consequences: "This can't be undone" or "You'll lose access on Dec 31."
Form Labels and Placeholders: Don't Make Users Guess
Forms are where UX copy matters most. Every field is a potential point of confusion or friction.
Labels vs. Placeholders
Labels describe what goes in the field. They should be visible always, positioned above or to the left of the field—never inside it as a placeholder.
Placeholders are optional examples shown inside empty fields. They disappear when users start typing. Use them for format examples, not instructions.
Bad pattern: Label inside field as placeholder
When users click to type, the label disappears. Now they can't remember what the field was for. If they have the field half-filled and come back later, there's no label visible.
Good pattern:
Email address [yourname@company.com]
Label is always visible. Placeholder shows example format.
Be Specific About What You're Asking For
"Email" is vague. Email address? Email subject? Be explicit:
- "Email address" (not "Email")
- "Company website" (not "URL")
- "Birth date" (not "DOB"—avoid jargon)
- "Phone number (optional)" (clarify if optional)
Show Format When It's Not Obvious
If there's a specific format required, show an example:
Phone number (555) 123-4567
Or:
Website URL Example: https://yourcompany.com
Don't wait until after they enter it wrong to tell them the right format. Prevent the error with clear guidance up front.
Field Help Text for Complex Inputs
For fields that need explanation, add help text below the field:
Password [field] Must be at least 8 characters
Or:
API key [field] Find this in your account settings under Developers → API Access
This answers the inevitable questions: "How long does the password need to be?" "Where do I find my API key?"
Writing interface copy for your product?
River's AI creates clear, user-focused microcopy including button labels, form guidance, empty states, and tooltips tailored to your product and users.
Generate UX CopyEmpty States: Turn Nothing Into Something Helpful
Empty states appear when there's no content yet: empty inbox, no search results, blank dashboard. Most products either ignore these or show a sad empty box with "No items."
Empty states are opportunities to guide users toward their first action.
The Three Parts of Good Empty States
1. Headline: What's empty
"No projects yet" or "No results found"
2. Explanation: Why it's empty or what goes here
"Projects help you organize your work. Create your first project to get started."
3. Action: Clear CTA to fix the empty state
"Create project" button
Examples of Helpful Empty States
New user, empty project list:
No projects yet
Projects help you organize your work. Create your first project to get started.
[Create project]
This tells new users what projects are for and gives them a clear next action.
Search with no results:
No results for "quarterly report"
Try different keywords or check your spelling. You can also browse all files below.
[Clear search]
This suggests alternatives and gives users a way out (clear search to see everything).
All caught up (inbox zero):
You're all caught up!
No new messages or notifications. Check back later for updates.
This is a positive empty state—celebrate that users finished their work.
What Not to Do
- Don't show just an illustration without helpful text
- Don't use technical language ("No records in database")
- Don't create dead ends with no action ("Nothing here" with no button)
- Don't blame users ("You haven't created anything yet" feels accusatory)
Tooltips: Explain Without Cluttering
Tooltips provide extra information without cluttering the interface. They appear on hover (desktop) or tap (mobile), usually triggered by an info icon (ⓘ).
When to Use Tooltips
Use tooltips to:
- Explain unfamiliar terms or features
- Clarify consequences of an action
- Provide examples or format guidance
- Link to detailed documentation
Don't use tooltips for critical information users need to see. If it's essential, put it in the main interface.
Writing Good Tooltips
Keep them short: Under 2 sentences. Tooltips are supplementary, not documentation.
Lead with the key point: Most important info first.
Use plain language: No jargon or complex terms in a tooltip explaining another complex term.
Examples:
Feature explanation:
Auto-save ⓘ
Tooltip: "Your changes are saved automatically every 30 seconds. You can also save manually."
Privacy clarification:
Private link ⓘ
Tooltip: "Only people with this link can view. It won't appear in search engines."
Technical term:
Webhook URL ⓘ
Tooltip: "The endpoint where we'll send event notifications. Must start with https://"
Onboarding Copy: Get Users to Value Fast
Onboarding is users' first experience with your product. The copy needs to guide them to their first meaningful action quickly—not teach them every feature.
Onboarding Principles
Show benefit, not just feature: Don't say "Set up your profile." Say "Tell us about yourself—this helps us personalize your experience."
One concept per step: Don't overload users with information. Each onboarding step should teach one thing.
Make it skippable: Always include "Skip for now" or "I'll do this later." Forced onboarding frustrates users.
Celebrate progress: "You're all set!" or "Nice work!" when they complete steps.
Welcome Screen Structure
Welcome to [Product]! Let's get you set up in 3 quick steps. This'll take about 2 minutes. [Get started] [Skip for now]
This sets expectations (3 steps, 2 minutes) and gives users control (skip option).
Step-by-Step Guidance
Each onboarding step needs:
- Clear headline: What they're doing
- Brief explanation: Why it matters
- Obvious action: What to do
Example:
Step 2 of 3: Invite your team
Collaborate with teammates by inviting them to your workspace.
[Email fields]
[Send invites] [I'll do this later]
Completion Celebration
When users finish onboarding, celebrate and show next steps:
You're all set! 🎉 Your workspace is ready. Here are some things you can do next: • Create tasks • Upload files • Customize your dashboard [Go to dashboard]
Confirmation and Loading States
Users need to know their actions worked. Silence after clicking a button creates anxiety—did it work? Should I click again?
Success Confirmations
Show immediate feedback after actions:
- ✓ Project created
- ✓ Changes saved
- ✓ Invitation sent
- ✓ File uploaded successfully
Be specific when it matters:
- ✓ 3 team members invited
- ✓ Subscription canceled (ends Dec 31)
If there's a next step, include it:
✓ Account created
Check your email to verify your address.
Loading States
For actions that take more than a second, show what's happening:
Short actions (1-2 seconds):
Saving...
Uploading...
Medium actions (2-10 seconds):
Processing payment...
Sending invitations...
Long actions (10+ seconds):
Show progress and estimate time:
Uploading your file (45%)
Estimated time: 30 seconds
Or allow users to leave:
Processing your data...
This may take a few minutes. You can leave this page—we'll email you when it's done.
Error Messages (Covered in Dedicated Guide)
Error messages deserve their own comprehensive treatment, but the core principle applies here too: be specific about what went wrong and how to fix it.
Instead of "Error: Invalid input," write "This email is already in use. Try signing in instead?"
Need comprehensive interface copy?
River's AI generates complete UX copy sets including navigation, forms, CTAs, confirmations, and contextual help text optimized for your users.
Create UX CopyVoice and Tone Guidelines
UX copy should be conversational but not overly casual, helpful but not patronizing.
Be Conversational
Write like you're helping a friend, not writing documentation.
❌ "Initiate account creation process"
✅ "Create your account"
Be Concise
Every word should earn its place. UX copy isn't a place for flourishes.
❌ "Please click the button below in order to proceed to continue"
✅ "Continue"
Be Specific
Tell users exactly what will happen, not vague descriptions.
❌ "Submit form"
✅ "Send message"
Be Helpful
Anticipate questions and answer them before users ask.
❌ "Password error"
✅ "Password must be at least 8 characters"
Use Active Voice
Active voice is more direct and clear.
❌ "Your password will be reset by our system"
✅ "We'll send you a reset link"
What to Avoid
- Technical jargon: "Execute query" → "Search"
- Excessive apologies: Not every error needs "We're so sorry!"
- Blame language: "You failed to enter" → "Please enter"
- Unnecessary words: "Please kindly proceed to" → "Continue to"
- System language: "Process record" → "Save"
- ALL CAPS: Feels like shouting
- Multiple exclamation marks: Unprofessional
Testing Your UX Copy
How do you know if your UX copy works? Test it with real users.
Watch for hesitation: If users pause before clicking a button, the label might not be clear enough.
Listen for questions: "What happens if I click this?" means your copy isn't explaining the outcome.
Track errors: High error rates on forms often indicate unclear labels or missing guidance.
Read it aloud: Does it sound natural? If it feels stiff or awkward when spoken, rewrite it.
Test with non-experts: You understand your product deeply. New users don't. What's obvious to you might be confusing to them.
Common UX Copy Mistakes
Using "Submit" everywhere: Be specific about what submitting does.
Placeholder text instead of labels: Labels disappear when users type, creating confusion.
Technical jargon: Write for users, not engineers. "Authentication failed" → "Incorrect password"
Vague CTAs: "Learn more" doesn't tell users what they'll learn. "See how it works" is better.
Ignoring empty states: "No items" isn't helpful. Tell users what to do.
Too much personality: Funny copy is great in marketing. In UX, clarity beats cleverness.
No confirmation feedback: Users click a button and nothing happens (because it's processing in the background). Always show immediate feedback.
Key Takeaways
UX copy makes interfaces intuitive by making the next action obvious, answering questions before users ask them, and matching how users think about tasks.
Button labels should be specific about what happens when clicked: "Send message" not "Submit," "Save changes" not "OK." Use action verbs that match user goals.
Form labels should always be visible (not inside fields as placeholders), describe exactly what information you need, and show format examples when it's not obvious. Add help text below fields for complex inputs.
Empty states are opportunities to guide users: explain why it's empty, what goes here, and provide a clear action to fill it. Celebrate positive empty states like inbox zero.
Tooltips explain unfamiliar concepts and clarify consequences without cluttering the interface. Keep them under 2 sentences, lead with the key point, and use plain language.
The UX copy that works best is the copy users don't notice—because everything feels obvious and they move through the interface smoothly without confusion or friction.