DJVF Brand OS v3.0 “Atlas” · the token authority. Status: LOCKED (2026-08-13). Six colours, four faces, one owned motion, one mark. Supersedes Evergreen v0.6 and the four exploration directions beside it; the --os-* token names are unchanged so every skill and template that already reads them keeps working.
The one-page cut the AI actually loads: tokens, laws, type, marks, and the never list. The full system with reasons lives in the standalone Brand OS document in 02 Brand/Brand OS/. This half and that half are kept in step by hand — see Drift control.
Every ratio on this page was measured on 2026-08-13, not estimated, and the failures are written down as laws rather than nudged away. Never hardcode a hex that has a token.
| Token | Value | Name · why | Measured |
|---|---|---|---|
--os-ink / --os-ground | #00272C | Midnight Green — the one dark. Heroes, headers, footers, dark bands, and every line of body type on a light page | white on it 15.8:1 ✓ · on white 15.8:1 ✓ |
--os-accent | #FF6B1C | True North — the needle. The only warm value and the only one allowed to move: primary buttons, the eyebrow on dark, the live rule. Once per view, twice at most | on Midnight 5.6:1 ✓ · on white 2.8:1 × |
--os-paper / --os-card | #FFFFFF | Paper White — true white, never off-white. Cards, sheets, knockout marks, all type on dark grounds | on Midnight 15.8:1 ✓ |
--os-signal | #09E85E | Landfall — land sighted. SIGNAL ONLY: shipped, passing, the live dot, data fills | on Midnight 9.6:1 ✓ · on white 1.7:1 × |
--os-beacon | #279AF1 | Meridian — the line you are still travelling along. SIGNAL ONLY: in progress, in review, neutral information | on Midnight 5.3:1 ✓ · on white 3.0:1 large only |
--os-primary | #245D63 | Surface Steel — what the material collapses to with no WebGL. Doubles as the link, eyebrow and label colour on light grounds, and draws the bezel and grid inside the mark | on white 7.4:1 ✓ · on Midnight 2.1:1 × |
Three do the work: Midnight Green grounds everything, Paper White carries the type, True North is the only warm thing. Two are reserved for signal and are never decoration and never brand furniture. The sixth is what the material falls back to when it cannot render. There is no seventh, including a lighter midnight for large fills.
| Token | Value | Formula · measured |
|---|---|---|
--os-page | #F4F7F7 | 5% Steel on white. The page beneath the cards, so white sheets have something to sit on |
--os-band | #EDF3F3 | 8% Steel on white. Chips, code, washes |
--os-muted | #476467 | 72% Midnight on white · 6.4:1 ✓. Secondary text |
--os-faint | #597276 | 65% Midnight on white · 5.1:1 ✓. Muted labels, metadata |
--os-dim-d | #A8B6B7 | 66% white on Midnight · 7.6:1 ✓. Dimmed type on dark |
--os-hairline | 13% Midnight · 16% white on dark | Depth comes from hairlines, not shadows |
| Shadows | 0 1px 3px at 5% · 0 12px 30px -14px at 22% | Resting sheets · genuinely floating sheets. Nothing else |
| Radii | 8 · 14 · 22 · pill | Chips · cards · panels · buttons. Tiles are 22% of tile width, so an app icon and a favicon curve alike |
Every one of these is a color-mix() against a named token, never a pasted hex. Repoint Midnight Green and the whole page re-renders correctly — that is the test this table exists to pass.
| Retired token · name | Was | What replaces it |
|---|---|---|
--os-accent Sea Glass #94DBD2 | the dark-surface voice | Paper White carries type on dark. Deleted, not repointed |
--os-glint Tide #63A8A1 | detail strokes, diagram lines | Seventh-colour violation. Use --os-primary or a hairline |
--os-surface Inkwell #0A3838 | elevated dark surface | Folded into --os-ink. There is no second dark |
--os-flag Electric Orange as alert | alerts and errors | There is no red and no alert colour in this palette. An error is a 2 px Midnight Green border, the glyph, and a mono line under the field — never True North, which means action, not failure |
Stone #5E827E | muted labels | Measured 4.2:1 on Paper White #FFFFFF — and 3.9:1 on --os-page #F4F7F7, the ground it actually sat on — so it failed AA at text sizes either way. Replaced by --os-faint #597276 (5.1:1 on white), reached by formula |
Harbor #335A55 | light-surface accent | Link and eyebrow duty transfers to --os-primary Surface Steel #245D63 |
Mist #D2EFE9 · Basalt #2F5350 | washes, secondary text | Absorbed by --os-band and --os-muted |
| Metals — Chrome and the Copper triplet | material gradients | One owned material only. Copper is gone entirely; there is no warm secondary family |
Gauges #1C3B52 / #4F7F96 / #78929B | data fills | Data visualisation is Landfall and Meridian, fills only |
Anything still asking for a retired name is asking for a value that no longer exists. Answer with the replacement above, never with the old hex.
linear-gradient(158deg, #0A4C4A, #00272C 46%, #001A1E). No gradients between brand colours. Print falls back to flat Surface Steel #245D63.Ratios above are measured against Paper White #FFFFFF. On --os-page #F4F7F7 each light-ground figure loses about 0.5 and every one of them still passes: Midnight 14.7:1, Steel 6.9:1, muted 5.9:1, faint 4.8:1.
| Family | Weights / axes | Duty | Class |
|---|---|---|---|
| Saira | BLACK 900 · wdth 125 | The wordmark, and nothing else. Never a headline, never a heading, never live text in production. Outline it and it becomes artwork | Wordmark only |
| Archivo | 500–900 | Headlines, section heads, card titles, buttons. 800–900 for display, 700 for anything under 24 px | Display |
| IBM Plex Sans | 400 · 500 · 600 · 700 | Body and UI. Everything a person reads for longer than a glance | Body / UI |
| IBM Plex Mono | 400 · 500 · 600 · TABULAR | Eyebrows, figures, IDs, file names, code. Tabular figures always, so columns of numbers line up | Mono |
All four are OFL. Body sets around sixteen pixels over 1.55 leading (1.65 for long-form prose) and holds a 66-character measure. Links are Surface Steel with a one-pixel underline three pixels clear of the baseline. Sub-heads are Archivo 800, never bold body. Figures inside prose set in Plex Mono with tabular numerals. Hierarchy: headlines step-4 / 900 / -0.025em, section heads step-2 / 800, eyebrows sit above, never below.
Files live in assets/brand/ and are referenced relatively, so the demo stays self-contained on the /llm/ subpath. Code references these names; renaming one is a breaking change and never happens quietly. Transparent means genuinely empty, never a white rectangle.
| Situation | File | Threshold |
|---|---|---|
| Site header, email signature, document chrome — the working default | 01-primary-lockups/djvf-logo-compact.svg · -dark.svg | min 208 px / 55 mm |
| Anywhere with room for the full name | 01-primary-lockups/djvf-logo-horizontal.svg · -dark.svg | min 168 px |
| First impression — covers, leave-behinds | 01-primary-lockups/djvf-logo-horizontal-tagline.svg · -dark.svg | min 240 px / 64 mm |
| Square or narrow space | 01-primary-lockups/djvf-logo-stacked.svg · -tagline.svg · -dark.svg | min 144 px (200 px with tagline) |
| Type only, full name | 02-typography-marks/djvf-wordmark.svg · -dark.svg | — |
| Avatars, stamps, square rooms | 02-typography-marks/djvf-abbreviated.svg · -dark.svg | — |
| Type only, compact | 02-typography-marks/djvf-lettermark.svg · -dark.svg | — |
| Icon alone, 48 px and up — full grid, tick bezel, both stars | 03-icons/djvf-icon.svg | min 48 px / 14 mm |
| 24–48 px — tick bezel goes solid, grid drops to four lines | 03-icons/djvf-icon-simple.svg | min 24 px / 7 mm |
| Below 24 px, mandatory — the rose alone, browser tabs | 03-icons/djvf-favicon.svg | min 16 px / 5 mm |
| Inside UI furniture — bullets, dividers, list markers, loaders | 03-icons/djvf-glyph.svg | inherits currentColor |
| Tiles — icon at 66% of tile width, optically centred, radius 22% of width | 04-tiles/tile-primary.svg · -dark · -light · -social | — |
| One ink, embroidery, etching, foil, knockout, newsprint | 05-one-colour/djvf-black.svg · -white.svg · -grey.svg (+ icon and favicon masters) | — |
| The seam rule, the flat material, the palette strip | 06-graphics/djvf-seam.svg · surface-fallback.svg · palette.svg | — |
The mark: a compass rose set over a gridded globe. The globe is the territory; the rose is the read on it. One point of that rose, north, is True North orange, and it is the only warm thing in the mark. The bezel and grid are Surface Steel.
The handoff rule is a size, not a preference. Below 48 px use Simplified, below 24 px use Micro, inside interface furniture use the Glyph. Four drawings, not four sizes of one.
Clear space: 0.5 × icon height on all four sides, measured from the outer bezel. Dense interface chrome may drop to 0.3, never below. Nothing enters that band.
Degradation: below 240 px the tagline is dropped, not shrunk. Below 168 px the wordmark is dropped and the icon stands alone.
Reproduction ladder, order fixed — if full colour cannot reproduce, step down one rung, never two: full colour · dark background (wordmark to Paper White, icon unchanged) · light background (wordmark to Midnight Green, 15.8:1) · black 100K (glyph replaces the icon; the globe cannot survive one ink) · white knockout · greyscale · the material treatment (three uses, no fourth).
Strings: wordmark “DJ Von Frank” · lettermark “DJVF” · tagline “Strategy. Systems. Adoption.” Icon always left or above, never right. Tagline under the mark text, never beside it.
The material is a slow liquid-chrome field in Midnight Green with a low, out-of-phase thread of True North running through it, tone-mapped so the brightest band lands on a muted steel instead of blowing to white. Published parameters: speed 0.12 · amplitude 0.32 · base #00272C · orange thread 0.04. It renders in exactly three places and there is no fourth: the site hero, the Brand OS document cover, the app icon. Two owned motions is zero owned motions.
Timing budget, fixed: hover 170 ms · press 90 ms · release 200 ms · ease cubic-bezier(.33,0,.15,1). Every state change resolves in 260 ms or less. Continuous ambient surfaces are exempt (2026-08-26 ruling): The Surface, the marquee, the rail pulses, the hero line and its kicker shine. The test is whether a person is waiting on it. Hover is a border-colour change plus a 1–2 px lift, never a scale and never a colour wash across the whole card. Hit targets never below 44 px. Focus is a 2 px Surface Steel ring, never a glow.
Fallbacks are the design. No WebGL: the flat gradient underneath simply shows and nothing structural is lost. Reduced motion: one still frame is drawn at t=8.0 and the loop never starts. Movement is removed, never slowed — a slowed signature reads as broken.
| Do | Don't |
|---|---|
| Reference tokens by name | Hardcode a hex anywhere |
| One True North moment per view | Two accents fighting, or a second primary button |
| Publish the measured ratio beside the colour | Carry a ratio forward without re-measuring |
| Choose the mark by size, from the threshold table | Scale one drawing to every size |
| Answer a retired token name with its replacement | Answer with the old hex |
There is no mechanism that keeps this sheet and the standalone Brand OS document in step. None. They are two hand-maintained files and nothing compares them.
Skills/quality-control/generate-twins.py and the twin-sync skill govern the .md → .html twin of this sheet only, and even that is hand-maintained here because this file carries the demo shell the generator would destroy. Both halves were edited by hand on 2026-08-13 and are consistent as of that edit.