Skip to content

Voice

LAW — locked, CI-gated

principle. keep copy as short as it can get without going false. labels name the thing, not the sentence; if there’s an explanation, it lives one layer down.

rule (law).

  • lowercase for all app-authored copy. user-created names are never rewritten: a name the user typed keeps its case exactly, everywhere it renders.
  • cut the subject when it is the interface itself; the app does not narrate itself in third person.
  • one fact per line. two facts are two lines, or a line and a tooltip.
  • buttons are verbs, two words at most. places are nouns and live in menus, not on buttons.
  • state copy is a word, not a report: a label plus at most one short clause; details live behind the tooltip or expander.
  • do not repeat the container: inside a surface titled by context, do not restate the name the user is already looking at.
  • names are one word where one word holds (“absorb”, not “save what is on screen into this”). safety copy earns its words: a warning that prevents harm is never compressed past clarity.

worked example — compression, before and after.

beforeafterrule
your changes have been saved successfullysavedstate is a word
are you sure you want to delete this item?delete “morning setup”? its 2 automations go tooname the object and the blast radius
click here to open the full settings windowsettingsplaces are nouns
an error occurred while applying your changes (code 87)didn’t apply — the display went to sleep. wake it and try againerror voice: one clause, exact corrective action, no codes
no items have been created yet. get started by creating your first one!nothing here yet — [create]empty is a vessel: one line, one action, no cheerleading

localisation, the cheap-now layer (proposal, pending ratification). all copy goes through string keys from the start; the copy table is the key catalogue. no concatenated sentence fragments; plurals by rule, never by appending “s”. layouts must survive +40% text expansion, checked by a pseudo-locale screenshot in the harness. number and unit formatting is locale-aware for data; timestamps pick one clock convention and keep it. full translation and full right-to-left support are chapter-level commitments for later; expansion tolerance and keyed strings are not deferrable, because both are cheap now and expensive forever after.


Canonical text: §5, voice, in the design language document.