Skip to content

The six answers

A state mark (what most tools call a checkbox) answers one question about one row: is this done? is this included? does this rule apply? You type a marker in square brackets, and Lattice draws the mark:

- [x] Contract signed by both parties

There are six markers because a question has six possible answers, not two. Each marker means the same thing in every layout — a checklist, a pricing table, a roadmap, a sentence. Learn the six once and you can read any Lattice slide.

All six answers on one checklist

Try this. Change [!] to [ ] on the load-test row. The red cross becomes an empty ring: the row stops saying 'it failed' and starts saying 'nobody has run it'.

MarkerAnswerUse it whenDrawn as
[x]YesIt is done, met or includedA check on a solid green disc
[-]PartlyIt is in progress, limited or qualifiedA dash on a solid amber disc
[!]NoIt failed, was not met or is missingA cross on a solid red disc
[?]UnknownSomebody looked, and the answer cannot be settled yetA question mark in an open ring
[ ]OpenNobody has looked yetAn empty open ring
[/]Does not applyThe question is not relevant to this rowA slash on a solid gray disc, the label struck through

[x] and [ ] are ordinary GitHub task-list syntax, so they read as checkboxes in any markdown viewer. The other four are Lattice’s.

Most mistakes are between two neighbors. Ask one question to tell each pair apart:

[!] no, or [ ] open? Has anyone checked? A load test that ran and failed is [!]. A load test nobody has run is [ ]. One is a finding; the other is the absence of one. Writing [ ] for “no” tells your reader the work is merely unstarted.

[ ] open, or [?] unknown? Did someone try to find out? [ ] means nobody has looked. [?] means somebody looked and could not settle it: the data is disputed, the audit is pending, the vendor will not say.

[!] no, or [/] does not apply? Does the question apply to this row? “Does this plan include SSO?” is [!] for a plan that lacks it. “Does this regulation reach this country?” is [/] for a country outside it. No means the question applies and the answer is negative. Does not apply means the question was never asked of this row.

[-] partly, or [x] yes? Would you sign off on it as it stands? If a reader would need a footnote, it is [-].

A vendor comparison using five answers

Try this. Borealis has [!] for residency (checked: not offered) and [?] for SOC 2 (asked: no answer). Cirrus has [ ] (not yet asked). Three different stories, and a reader can tell them apart at a glance.

1. Shape carries the meaning. Every answer has its own shape — check, dash, cross, question mark, empty ring, slash — and the shape never changes from one layout to the next. So the marks still read in a grayscale print and for a reader who is color-blind. Color is the second channel, not the only one.

2. Fill says whether the answer is settled. Yes, partly, no and does not apply are solid discs: each is a settled answer. Unknown and open are hollow rings: neither is an answer yet. The question mark is what tells the two rings apart.

3. Color carries emphasis, and only you change it. Green, amber, red and gray are the defaults everywhere. A layout never recolors a mark on its own. The one way to recolor is the heat modifier, which flips the colors for a risk reading. See Marks in layouts.

A fourth rule follows from the three: a layout changes the words, never the answer. A roadmap calls [!] missed; pricing calls it missing. Both mean no. Marks in layouts lists every layout’s words.

Bare, at the start of a list item or table cell, in the layouts built to read markers: a checklist row, a pricing feature, a verdict-grid criterion, a roadmap or obligation-matrix cell, or any table with state-cells turned on.

- [!] Load test failed at peak

Inside inline code, anywhere inline code can go: a sentence, a heading, a table cell, a legend under a slide. This is the universal form. It works on every slide.

Residency `[x]` · SSO `[x]` · SOC 2 `[?]`

The two forms draw the same disc. Use the bare form where a layout is built around marks, and the inline form everywhere else.

Every mark is also read aloud. An inline mark carries an accessible name, so a screen reader says yes, partly, no, unknown, open or does not apply, with no extra word on the slide. When Lattice narrates a deck, each layout speaks its own words: a checklist says done and to do, and pricing says included and coming.

Only the six exact forms become a mark. `[~]`, `[0]` and `[data-mark]` all stay literal, because [ also opens a CSS selector, an array index and a citation, and those must survive.

[X] with a capital is not a cross. GitHub reads [X] as a checked box, the opposite of what the letter suggests. Write [!] for no.

Braces are not brackets. `{x}` is neither a mark nor a pill: it stays literal, and the linter points you to `[x]`. See Pills you place.

To show a marker as literal text, put a backslash in front: `\[x]`.

Marks in layouts: where marks draw, each layout’s words, and how to rename them.