Writing
How BDS labels, links, and empty states should read.
Interface copy is part of the component. These rules cover labels and short UI text; they are defaults, not a checklist — see the Guidelines overview for how to apply them.
Buttons
- Start button labels with a verb ("Save Draft", "Delete Project"), never "OK!" or a bare "Yes".
- Make confirmation buttons say what will happen ("Delete Project" next to "Cancel").
- Use the same label for "move to next step" throughout a flow ("Continue" or "Next", not both).
Do
"Delete Project" next to "Cancel" — the button says exactly what pressing it will do.
Don't
"Yes" next to "No" — the reader has to go back to the question to know what they are agreeing to.
Casing
- Buttons and input labels use Title Case ("Save Draft", "Email
Address") — enforced with
text-transform: capitalizeon the component so it applies regardless of the source string's casing. - Headings and body copy stay sentence case; write them normally and never
force casing on them with
text-transform. - In docs, a heading that names a component or a variant uses Title Case
("Horizontal Bar Chart", "Outline Negative"), the same as the page title.
Other headings stay sentence case ("Choosing a chart", "With icons"), and
code identifiers keep their code form (
MenuItem).
Links, toggles, and empty states
- Describe where a link goes.
- Label toggles with what happens when they're on ("Send read receipts", not "Disable read receipts").
- When a view is empty, explain what belongs there and give one action to get started.
Voice
- Address the reader as "you", not "the user".