Skip to main content
This page has no official source and is authored, not transcribed. Unlike Numbers, Dates and times, Voice and tone, and Error messages, no zeroheight page exists for capitalization specifically. What follows is built from: the one confirmed grammar rule below, the casing evidence already found while auditing components against Figma and zeroheight this pass, common practice across other design systems, and this documentation’s own existing pages. Treat every constraint here as Proposed and more provisional than usual until reviewed.

The base style

Invoca’s writing follows AP Stylebook conventions, with one confirmed exception: Invoca uses the Oxford comma, where AP style omits it. This is the one rule on this page transcribed from a direct statement rather than inferred — everything else follows from applying it and from resolving what AP style itself leaves unspecified for interface text.

Casing by content type

The central finding of this page. Casing is not one rule — it is a per-content-type decision, and this documentation previously got one of them wrong. This table is the correction and the reference going forward.

Two casing systems, and where each one applies

Title case (headline style): capitalize the principal words. Lowercase articles (a, an, the), coordinating conjunctions (and, or, but), and short prepositions (in, on, to, of, for) — unless one of them is the first or last word. Sentence case: capitalize only the first word and proper nouns. This is the default for anything meant to be read as a sentence rather than scanned as a label — error messages, helper text, empty-state copy, body text generally.

Terminal punctuation

This already matches Button’s Content rule for “no terminal punctuation” and the “verb-first” logic behind it — a label is a name for an action, not a sentence describing one, and names don’t end in periods.

Glossaries

Cited here rather than duplicated — three exist, at different scopes, and none of them is this documentation’s authority on UI terminology specifically:
None of these is scoped to product UI copy specifically. Where a term’s everyday name differs from its technical one — the running example in this documentation is table vs. DataGrid, see TITAN-DIV-10 — the reader-facing word is this documentation’s own call, not something to look up in any of these three.

Constraints

Gaps in the current rules

Capitalization and punctuation: open issues

Divergences, open decisions, and undocumented gaps for Capitalization and punctuation.

Why it works this way

Title case for buttons, sentence case for messages, tracks a real distinction rather than being an arbitrary split. A button label names an action — closer to a headline or a proper noun than to a sentence — and headline style is what most editorial conventions use for exactly that kind of short, scannable text. An error message or a line of helper text is meant to be read fluently, the way a sentence is read, and sentence case is what makes prose read as prose rather than as a row of scattered emphases. The split isn’t Invoca-specific; it shows up across most design systems that distinguish action labels from body copy, which is part of why it survived unnoticed as “sentence case” here for as long as it did — it looks plausible because the pattern is common, even where this documentation had the assignment backwards.
Last modified on September 2, 2026