A printed sheet, not a screen. Hairlines instead of cards.
Everything here follows from that one idea. Rules divide, they don’t enclose. There is no elevation, because paper has none. Colour is spent on what is moving and nothing else, and every state that matters is drawn as a shape first so it survives losing its hue entirely.
Colour
Six surfaces, three inks, one accent. The ground is cool slate rather than neutral black — a slight blue cast reads better on a screen than true grey, and it keeps the paper metaphor from going warm and editorial.
#12151BThe page.#171B23Insets, panels, specimens.#212734Rows within a block.#2B3140Structure. Also the watermark.#3B3A63The masthead. One per page.#9391C3The accent. Sampled from the mark, not chosen. Reserved.#7C8593Labels, meta. 4.9:1.#9BA5B4Body copy. 7.4:1.#E3E7ECHeadings, the human hand. 14.9:1.Colour is reserved for what is moving. The accent marks a live project, something a machine did, or the one primary action on a surface. It never marks a heading, a link, or a section just to make the page look designed.
If two accented things are visible at rest in one block, one of them is decoration and gets demoted.
Type
Three roles and no more. Mono is for data, identifiers and measurement — never as costume for “technical”.
Onest, 400. Set at 16.5px on marketing pages and 14px in product chrome, because a surface you read once and a surface you stare at all day want different densities. Measure stays between 58 and 66ch.
State markers
The load-bearing idea. Every state is a shape before it is a colour, so the whole system can be desaturated without losing a single distinction. That is what makes the neutral chrome below possible at all.
A person and a machine writing into the same record is the thing Mirako is actually about. In the log it reads as filled square versus filled diamond — two shapes, two values, no hue required.
Test for any new marker: print it in greyscale. If you can still tell it apart, it is a real marker. If you cannot, it was a colour swatch pretending to be one.
Neutral chrome
Brand colour is a marketing instrument. A surface somebody stares at for eight hours needs its colour budget for meaning — destructive, error, degraded — not for identity.
/* marketing keeps the iris. apps get this. */ .chrome-neutral{ --mach:#A8B2BF; /* the machine hand, desaturated */ --mach-flat:#232A36; --lift:rgba(227,231,236,.07); /* selection */ --lift-soft:rgba(227,231,236,.04); /* hover */ }
Put it on <body> and the surface desaturates in one line. Nothing breaks, because hue was always the second cue. Cloudflare’s brand is orange and their dashboard is black and white; same reasoning.
Against Zen Brutalism
Sina’s other system, running on sinadilek.com. The two are close relatives, not the same language. Rows in accent are where they now agree exactly.
#8F90C2, exactly one
The LedgerIris #9391C3, exactly one. The same colour — ZB’s value is it, rounded. Both trace to the mark below.--snap .13s cubic-bezier(.2,0,0,1). Mechanical only.
The LedgerThe same curve, adopted over a softer expo-out.#0C0C0D, paper #ECECE4
The LedgerCool slate #12151B, ink #E3E7EC. Concrete and steel there; paper and print here.Zen Brutalism says emphasis is a highlighter block — solid accent, dark text on top — and explicitly names accent-coloured text as a mistake. The ledger currently uses coloured text, including on the line above every thesis on this site.
Adopting the highlighter would tighten the two systems further, but it changes the look of every marketing page. Left as-is until that is a deliberate call rather than a side effect.
Using it
Link mirako.css, then put only what your page genuinely adds in its own <style>. Do not copy the token block — if it appears twice, one copy is already wrong.
Product surfaces add class="chrome-neutral" to the body. Marketing surfaces keep the iris.
Superseded
hako/mirako-design-system.html documents an older dual-palette system defaulting to sakura pink. It disagrees with this page. This one is live and that one is not.