Quoin design

Copy voice and casing

A librarian's voice, not a coach's. Sentence case everywhere, with one deliberate exception.

The copy of Quoin has two separate rule sets: voice (what the words say) and casing (how the words are capitalized). Both rule sets come from a Mobbin survey of roughly 60 production apps (docs/05-research.md) and from the component spec of Quoin. Both rule sets are also skills. Any agent that works on this product can load the skills copy-voice and copy-casing.

Voice

Quoin sounds like a librarian's voice, not a coach's voice. It states the figure and its interval. It never puts an adjective in their place. It uses the same sentence when the news is good and when the news is bad.

SurfacePatternExample
Marketing heroOne promise in ≤ 12 words, a subhead that names what is absent, two CTAs"Flags and experiments for teams with a database and no data team."
Verdict sentenceFigure and interval in one sentence. The sentence ends with the literal state word. Never a colored badge"converted.14d rose 21.6% [+5.2, +37.9] — clear."
AI analysisCites only numbers that are already on the page. States its own confidence. Does not interpret broken/too-earlyEvery figure carries an inline reference to its exact JSON path.
Rule editor dialogsThe title names the object and the environment"Lock and start instant-search-results in production."
ToastsA past participle, a revision id and an Undo action"Rolled out to 45%. r-0419. Undo"
CLI / --helpVerb-first grammar, a copyable command and sentence-first errorsquoin flags rollout onboarding.checklist_v2 50 --env production
ErrorsWhat happened, then what to do, then the code"That key doesn't match any workspace. Check the key your app sends, or generate a new one." (quoinCode: unauthorized)
Empty statesWhat is empty, what fills it, one action"Nothing rolling out right now."
Destructive confirmsNames what is lost. Ends with "This can't be undone". The kill switch alone asks for nothing"Delete search.instant_results? This removes the row; the flag serves its code default everywhere."

Never use these:

  • A bare win-probability or p-value as the headline
  • "chance to win" in any phrasing
  • Color-coding of a decision card or verdict sentence by good or bad
  • Hype adjectives ("powerful," "seamless," "game-changing")
  • "OK"/"Submit"/"Confirm" on a button that can say what happens ("Resume anyway," "Ship early," "Turn off")

Casing

The rule: sentence case, everywhere. Capitalise the first letter and proper nouns. Do not capitalise anything else. Do not use Title Case on buttons or headings. Do not use ALL-CAPS section headers. Do not use text-transform: uppercase in product UI. There is one exception.

RolePatternExample
ButtonsSentence case"Sign in", "Ship early", "Turn off"
Headings & dialog titlesSentence case"Lock and start instant-search-results in production"
Section headersSentence case, small, muted. Not caps"Needs a look", "Recently concluded"
Verdict sentenceSentence case. Ends with the literal state word"…21.6% [+5.2, +37.9] — clear."
Form labelsSentence case"Work email", "Guardrail margin"
Nav / sidebarSentence case"Home", "Flags", "Experiments", "Settings"
CLI grammarLower-case, verbatimquoin flags rollout onboarding.checklist_v2 50 --env production

The one exception: the decision-record Stamp ("rolled back," "shipped," "harmed"). The source text is lowercase. CSS alone renders it in caps (text-transform: uppercase), rotated −2°. This is the single deliberate use of all caps in the whole product.

Why sentence case

The Mobbin survey covered settings, empty states, tables, create dialogs, destructive confirms, toasts, sign-in screens and pricing screens. The large majority of well-regarded production apps use sentence case throughout. Examples are Linear, Supabase, Notion, incident.io, Railway, Cursor and Workable. Title Case remains mainly as an iOS Human-Interface-Guidelines habit. Even the apps that use it do not apply it in a consistent way. ALL CAPS remains only as a tiny marketing eyebrow or a whole-brand stunt. No surveyed app uses it as the default voice for every label, status pill and chip. The one legitimate ALL-CAPS use in Quoin is narrower: a single component, and only there.

On this page