Land
The dot arrives from just above its place and stops. An incident happens.
420 ms · arrive · 18 units
IK-0001 Closed with proof Stop
01 · The mark
The dot is the incident: one round, warm point, the moment something happens. The blocks are everything that has to happen next. Stacked, they make the i in kit.
| Block | 22 × 10, radius 3 |
|---|---|
| Gap between blocks | 3 |
| Dot | ⌀ 22 as wide as a block |
| Dot to the first block | 6 two gaps |
| Height | 77 3.5 widths |
| Clear space | 22 on every side one block width |
Round over square: one human event, held up by structure. The blocks are in the order the work happens, top to bottom. Nobody proves anything before it is reported.
In the interface the mark stands alone at 16 to 32 px. Larger than that, use the wordmark. The mark is shown big only as the subject of motion, and in this book.
02 · The reveal
Something happens. Then four things have to. The mark holds all five, and when it opens, each block says what it is for.
A fall at 2:47 am. A wrong site caught at the time-out. A ladder that slipped. Round, warm and human: the one clay thing on the page.
A text or a QR scan, in 90 seconds. Lauren drafts the report and the person who saw it signs it.
Five whys and a decision, approved by the owner.
An owner, a date, and proof it worked. It cannot close until the check passes.
A packet for the surveyor, the committee or the inspector, built from the record.
Four verbs, one object. Each line ends in it, and so does the name.
Six frames from the full arc, drawn by the same code that plays it.
0.26 sThe dot lands.
0.72 sEach block comes out of the one above it.
2.70 sEach word comes out of its block.
4.56 sThey go back in, Prove first.
5.50 sThe mark is whole again.
8.20 sIt becomes the i in kit. The dot ends the line.
03 · Wordmark
Instrument Sans, lowercase, set at 100 units and drawn to outlines. Its x-height is 51, and the four blocks of the i fill it exactly.
| Clear space | Half the x-height, 25.5, on every side |
|---|---|
| Smallest | 88 px wide on screen, 22 mm in print |
| Name in text | IncidentKit one word, capital I and K |
| Never | Retyped in a font, recoloured, or with the dot moved |
04 · Colour
Fir is who we are. Mist is the page. Clay is an incident that is still open, and nothing else, so when it appears, it means something.
Share of a typical page. Clay stays under 1%: the dot, an open count, the marker on a live row.
The words that come out of the blocks are ink, or mist on fir. Nothing else on a moving frame is clay.
When a record closes, its chip turns green. The dot never does: it is the logo, and the logo is always the open case.
Ink becomes mist and clay becomes peach. Clay on fir measures 2.28:1 and is never used.
05 · Type
Instrument Sans says it. Geist Mono labels it: the ids, the times and the citations a surveyor will check.
Every incident, closed with proof.
Instrument Sans · 400 to 700
Aa
Headlines at 600, tracked in: −4.5% at display sizes, −2% at 18 px. Body at 400, 17 px on 1.6. Open Font License.
Geist Mono · 500
IK-0233
Ids, times, citations and the one eyebrow per sheet. Capitals, +10%, never below 11 px. Open Font License.
Figures
7:52
Times and counts are set in Geist Mono so columns line up: 7:52 am, 2:47 am, 41 seconds, 42 CFR 416.43.
06 · Motion
In order, one step at a time, and it always finishes. Six moves make every animation in the system. Press any of them.
The dot arrives from just above its place and stops. An incident happens.
420 ms · arrive · 18 units
Each block is pulled out of the one above it, Report first. The first comes out of the dot.
4 × 340 ms · 110 ms apart · arrive
The stack opens, and each word slides out of its block. Nothing appears from nowhere.
520 ms move · 4 × 540 ms arrive
Each word goes back into its block, Prove first. The stack closes. The mark is whole.
4 × 380 ms leave · 480 ms move
The mark changes shape, in place, into the i of kit. The word comes out of it, both ways.
760 ms move · 700 ms arrive
The dot lands one last time, as the full stop of the line. Nothing moves after it.
420 ms · arrive
It is the first thing to move or the last thing to land. Never the middle.
Out top to bottom: Report, Investigate, Close, Prove. Back in bottom to top.
A word comes out of its block and goes back into it. No fades from thin air.
Every sequence ends with the mark whole, or with the line and its full stop.
Nothing bounces, spins, scales up, blurs or glows. Straight lines and full stops.
Reduced motion gets the last frame. So does anyone who switches motion off above.
The full arc · 8.2 s
07 · Intros and outros
Five cuts cover every film, deck, launch and demo. Each starts and ends on a frame that would work as a still.
Intro · 3.6 s · 108 frames
Opens an explainer. The mark arrives, then says what it means, and holds on the four words.
Outro · 3.6 s · 108 frames
Closes an explainer. The words go back in, the mark is whole, and it becomes the i in kit.
Intro · 1.5 s
Video opens, app launch, the first frame of a page that loads.
Outro · 2.2 s
The last line of a film or a deck. The dot is its period.
Sting · 1.3 s
The end of a demo, or the moment a record closes. Prove lands last.
Safe area is 8% on every side, 14% top and bottom on 9:16 for the app's own interface. The camera frames the subject, never the format: switch formats on the motion sheet and the same sequence reframes itself.
| Frame rate | 30 fps for film, 60 on screen. Render from the timeline; never retime by hand. |
|---|---|
| Sound | None, or one soft tick when the dot lands. No whooshes. |
| Hold | 1 s on the last frame before a cut to black |
| Surfaces | Mist, white or fir. On fir, ink becomes mist and the dot is peach. |
| Speed | As built. Never sped up to fit a slot; cut a move instead. |
| Films | Every cut on mist and fir, the full arc and the four explainers, rendered from this timeline: brand/identity/films. Re-render with export.mjs. |
08 · Loader
The blocks fill in order and go back the other way. The dot lifts and lands again, and the next record starts. It never spins.
Building packet · IK-0233
2 of 4 · Investigation
| Cycle | 2.0 s, then again |
|---|---|
| Fill | 120 ms a block, 160 ms apart, top first |
| Hold | 540 ms with all four filled |
| Back | Bottom first, 80 ms apart |
| Dot | Lifts 4 units, lands in 200 ms |
| Smallest | 24 px upright. Smaller, use the meter |
| Reduced motion | Still, faint blocks, and the word Loading beside it |
Opening IK-0871
Maple Court · 18 events
| Record | Stage | Status |
|---|---|---|
| IK-0871 | Investigating | |
| IK-0233 | 2 actions open | |
| IK-0412 | Closed |
<!-- ik-loader.css, then: --> <svg class="ik-ldr" viewBox="37 9.5 22 77" role="img" aria-label="Loading"> <circle class="d" cx="48" cy="20.5" r="11"/> <rect class="b" x="37" y="37.5" width="22" height="10" rx="3"/> <!-- × 4: 37.5, 50.5, 63.5, 76.5 --> <g><rect class="f" … /></g> <!-- the same four, for data-mode="det" --> </svg> <!-- known amount --> <svg class="ik-ldr" data-mode="det" style="--p: .5" …>
Files
Plain CSS and SVG. No script, no library. The SVGs animate on their own wherever an image can go.
09 · Explainers and use cases
The dot is what happened, with a time and a place. Each block comes out with what the kit did. Then it all folds back, and the record is closed.
Every explainer is the same five lines. Most of the work is choosing them.
| The dot line | A time, a place, what happened. Eight words at most. |
|---|---|
| Each block | One fact with a number, a role or a citation. Nine words at most. |
| Names | Roles, not people: the CNA, the foreman, the director of quality. |
| Lauren | She drafts and asks. A person signs, approves and closes. |
| Data | Sample records only, labelled synthetic. Never a real patient, room or date. |
| The end | Always the fold, then the lockup and the line with its full stop. |
For a carousel or a story: the same explainer, stopped at its four best frames. Drawn live from the case above.
10 · Trust
Buyers in healthcare and safety are trained to doubt. The brand earns trust the way a good record does: a time, a role, a citation and a signature, every time.
IK-0233 · Incident report · Lakeside Surgical Center
| Append-only audit trail | Live |
|---|---|
| Read-only auditor access | Live |
| Six roles, each sees only what it needs | Live |
| Encrypted in transit and at rest by the host | Live |
| AI provider under a BAA, no training on your data | Regulated, Network |
| Single sign-on, SAML or OIDC | Network |
| SOC 2 audit | Being scoped · no report yet |
| Lakeside Surgical Center | IK-0233 | |
|---|---|---|
| Maple Court | IK-0871 | |
| Northfield | IK-0412 | |
| Ridgeline | IK-0560 |
No seals, no shields, no certification logos until the report exists. There is no such thing as HIPAA certified.
If a control is on a plan, rolling out or planned, say so next to it. Never in a footnote.
Every regulatory claim carries its citation and a reviewed date: 42 CFR 416.43, F689, 29 CFR 1904.
Every text colour this book uses passes WCAG 2.2 AA; the two failing pairs on sheet 04 are there as warnings. Every animation stops for reduced motion, and the switch at the top turns it all off.
11 · Rules and files
Eight ways to lose what the mark means. Then the tokens, and every file in this book.
/* IncidentKit motion tokens · Rev A · ik-motion-tokens.css */ :root { /* curves */ --ik-arrive: cubic-bezier(.2, .7, .2, 1); /* lands, extends, comes out. The site's --ease-out. */ --ik-move: cubic-bezier(.65, 0, .25, 1); /* opens, travels, changes shape */ --ik-leave: cubic-bezier(.55, 0, .8, .3); /* goes back in */ /* the moves */ --ik-land: 420ms; --ik-land-drop: 18; /* units; a block is 10 */ --ik-extend: 340ms; --ik-extend-gap: 110ms; --ik-open: 520ms; --ik-word: 540ms; --ik-word-gap: 160ms; --ik-fold: 380ms; --ik-fold-gap: 110ms; --ik-close: 480ms; --ik-become: 760ms; --ik-letters: 700ms; --ik-stop: 420ms; /* the loader */ --ik-loop: 2000ms; --ik-fill: 120ms; --ik-fill-gap: 160ms; }
Everything else, as files.
Logos as SVG, PNG, JPG and PDF, icons, GIFs, films, posters, stills, social images, palettes and fonts: over 200 files, with rules for which to use where. In the repo at brand/kit.
This book is built from parts. Sheets, styles and motion live in brand/identity/src; node brand/identity/build.mjs joins them into one page, with the palette read from the site and the logo read from its own files.