name: content-style-guide
description: Bitwarden's product content style guide for end-user-facing GUI copy — voice, tone, AP-style-with-exceptions grammar, sentence case in UI, and accessibility-first language at a U.S. 7th-grade reading level.
when_to_use: Use when end-user-facing GUI strings are being authored or critiqued — button labels, error messages, toasts, modal copy, onboarding, empty states, form labels, helper text, link text. Triggers — "review this copy", "is this error message ok", "rewrite this button label", "check the wording", "what should this say". Composed by design-review at 60%/90% stages and by figma-to-angular (external, not bundled) during code generation. Not for developer-facing strings, code comments, design tokens, or marketing/long-form content.
allowed-tools: Skill
Product Content Style Guide
This skill grounds GUI copy decisions in Bitwarden's product content style guide. Apply it to end-user-facing strings only — button labels, error messages, toasts, modals, onboarding flows, empty states, form labels, helper text, link text, and similar. Do not apply to design tokens, code comments, internal/dev-facing strings, or marketing copy.
When in doubt about a specific case, ask before changing copy.
Voice and tone
Voice is constant. Tone flexes with context.
Product voice is approachable, encouraging, and transparent — consistent across platforms.
Tone conveys mood and depends on who you're talking to and what's happening. Security is serious stuff. Users aren't looking for humor or fluff — they want to know their information is safe. So Bitwarden's product tone is almost always serious and respectful.
Tone spectrums:
- Casual ↔ formal
- Enthusiastic ↔ matter-of-fact
Where common content types land on the tone map (axes: casual ↔ formal × matter-of-fact ↔ enthusiastic):
| Content type | Casual / Formal | Matter-of-fact / Enthusiastic |
|---|---|---|
| Success messages | Casual | Enthusiastic |
| Onboarding copy | Casual | Enthusiastic |
| Dialogs | Casual | Matter-of-fact |
| Empty states | Casual | Matter-of-fact (slightly) |
| Labels | Neutral | Matter-of-fact |
| Community | Formal | Enthusiastic |
| Confirmations | Formal | Matter-of-fact |
| Help articles | Formal (slightly) | Neutral |
| Warnings | Formal | Matter-of-fact |
| Error states | Formal | Matter-of-fact |
Examples
Error message — formal, matter-of-fact:
- Good: An error occurred. Please try again.
- Avoid: Uh oh! We goofed. Go ahead and refresh!
Onboarding message — casual, enthusiastic:
- Good: Hey there! 👋 Welcome to Bitwarden. We'll show you around!
- Avoid: This is your vault. Get started now.
Applying this skill
During explicit copy critique ("review this copy", "is this error message ok"):
- Identify the content type (error, onboarding, button, etc.) and the expected tone using the tone map above.
- Check voice consistency (approachable, encouraging, transparent).
- Walk grammar and mechanics rules relevant to the snippet — see
references/grammar-mechanics.md. - Walk accessibility rules relevant to the snippet — see
references/accessibility-rules.md. - Return specific, actionable rewrites — not just "this is wrong."
Inside figma-to-angular runs (external skill in the clients repo, not bundled here):
When the Figma design includes copy strings, validate them against this guide before emitting them into the Angular template. If a string clearly violates a rule (e.g., title-case button, ampersand, "Click here" link), surface the issue and propose a compliant alternative — do not silently rewrite. Ask the user which to use.
Inside design-review critiques:
If the stage is 60% or 90%, include content observations alongside visual feedback (90% is the right stage for "nitty-gritty grammar, finalizing copy"). Skip content nitpicks at 30% — the copy will change. Frame content feedback the same way as visual feedback: tied to user/product goals, not personal taste.
Output format for copy critique
- Content type and expected tone — name what this string is and where it should land on the tone spectrum.
- What's working — what to keep.
- Issues — each tied to a specific rule from this guide (cite the section name, including the references file if the rule lives there).
- Proposed rewrite(s) — concrete alternatives the user can pick from.
Keep critique specific. "The button uses title case; sentence case per
references/grammar-mechanics.md (Capitalization)" beats "the capitalization is off."
Additional resources
The detailed rules live in two references files. Load them when the critique needs them — most copy issues touch only one or two rules.
references/grammar-mechanics.md— Acronyms, ampersands, capitalization (sentence case, product names, features, lowercase objects), dates and months, days of the week, e.g. / i.e., ellipsis, file sizes and formats, money, numbers, Oxford comma, times and time zones, versus.references/accessibility-rules.md— Reading level and directness, scannable layouts, non-English and ESL considerations, spelling out acronyms, avoiding "easy" and "simple" framings, text styling, spatial language, alt text, meaningful link text, gender-neutral pronouns.