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: capitalize on 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).
  • 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".