Content Design and UX Writing

Most of an interface is words: button labels, field names, hints, error messages, empty states, notifications, and confirmation dialogs. When those words are vague ("Submit", "Something went wrong", "Are you sure?"), people hesitate, make mistakes, and contact support. When they are specific and helpful, the same interface feels simple. Content design treats words as part of the product's design — decided from user needs and tested like any other interaction — and UX writing is the craft of writing them.

Content is also an engineering concern. Strings live in code and translation files, error messages depend on what the backend reports, plurals and word order vary by language, and screen readers announce link text and labels out of context. Good content work happens alongside design and development, not as a final polish pass.

TL;DR

Quick Example

Before and after for common interface text:

Localization-ready strings with ICU MessageFormat, so plurals and variables work in every language:

Core Concepts

Principles

Plain language is not "dumbing down": specialists also read faster and make fewer errors with clear text. Many governments publish plain-language guidance for this reason.

Voice and Tone

Voice is the product's consistent personality (for example: clear, calm, helpful). Tone adapts to context: celebratory after a milestone, neutral in settings, calm and precise in errors, serious around money, security, or data loss. Avoid jokes in error messages and anywhere people may be stressed.

Labels, Buttons, and Instructions

See Accessible Forms and Error Recovery.

Error Messages

Good error messages answer three questions: what happened, why (if it helps), and what to do next. They appear near the problem (next to the field, in the failed component), keep the user's input, use plain language instead of codes (include a reference ID for support when useful), and never blame ("You entered an invalid value"). Engineering must provide enough information — distinct error types from APIs — for specific messages. See Loading, Empty, and Error States.

Empty States, Confirmations, and Success

Terminology

Maintain a glossary of product terms — is it a "workspace", "team", or "organization"? "Delete", "remove", or "archive"? — with definitions and words to avoid. Inconsistent terms make people think there are different features. Include content patterns and terminology in the design system.

Writing for Localization and Accessibility

See Internationalization and Accessibility.

Testing Content

Manage strings in resource files with keys, review content changes in pull requests, and use linters (such as Vale) to enforce terminology and style.

Best Practices

Write With the Design, Not After It

Draft real content early; lorem ipsum hides layout problems and unclear flows.

Make Every Action Name Its Outcome

Buttons and links should say exactly what will happen when they are used.

Design Errors With Engineering

Agree on error types and data the backend provides so messages can be specific and actionable.

Keep a Glossary and Pattern Library

Document terms, voice, and patterns for errors, empty states, and confirmations.

Common Mistakes

Generic Errors

"Are You Sure?" Dialogs

Concatenated Strings

FAQ

What is content design?

An approach that designs the words and information in a product based on user needs and evidence, treating content as part of the interaction design rather than decoration added at the end.

What makes a good error message?

It explains what happened and how to fix it in plain language, appears near the problem, preserves the user's input, and avoids blame and technical codes.

Should buttons say "OK" or "Submit"?

Generally no. Buttons work best when they name the action and its result, such as "Save changes", "Send invite", or "Delete project".

How do I prepare UI text for translation?

Avoid concatenation, use message formats with plural and gender support, leave room for text expansion, avoid idioms, and give translators context.

How can I test whether interface text works?

Run comprehension and highlighter tests, observe usability sessions, review support questions, and A/B test high-traffic text.

Related Topics

References