Ee Yern Ng
All work

Picasso IR's design system, built to be read by people and agents

A Clarion screen fragment built on Picasso tokens

Picasso is the design system for every IR product: 132 semantic tokens in light and dark, five theme axes, 44 documented components, one version across Figma, npm and the docs. The repo is the source of truth and Figma is a consumer. Every page is also served as Markdown, and the whole system ships as llms.txt files, so an agent building a screen reads the same rules an engineer does.

Impact the short version

  • One token set powering Clarion, the provisioning portal and future IR cloud products
  • Five theme axes (colour, radius, spacing, main and mono type) so a brand is a block of values, not a fork
  • Published as llms.txt files, so an agent with the token table cannot invent a hex code
  • Live components in the docs, with variants, states and content guidance beside them

Brew guide how to make one of these

Dose
132 semantic tokens, 44 components, 5 theme axes
Grind
Tokens in the repo, then components, then docs and Figma sync from the same source
Temperature
On-colours are measured, not chosen: lightness is solved down until white text passes
Time
One version number across Figma, npm and the docs, released together
Yield
Clarion, the provisioning portal and future products themed off one token set, by people or by agents

The repo is the source of truth

Most design systems start in Figma and get ported to code, and the two drift. Picasso runs the other way. Tokens and components live in the repo as @ir/tokens and @ir/ui, the docs render the real React components, and Figma is synced from the same values. A change lands once and shows up everywhere with one version number.

Try the theming axes

Colour, radius, spacing, main type and mono type are the five axes. Below is a small piece of a Clarion screen built on Picasso's real token values. Flip the mode and the radius and spacing scales and watch every component follow, because none of them know their own colours.

Mode
Radius
Spacing
Endpoints healthy1,284+12 today
Needing attention173 new
Offline4since 09:40
Widget install
Contact centre, Sydney
Rolling out
  • bg/app #F8FAFC
  • bg/card #FFFFFF
  • bg/primary/emphasis #007DA8
  • radius 10px
  • spacing x1
Status, click to copy
Chart, eight series
click a swatch to copy its hex

Agent readable

Every docs page is also served as Markdown, and the whole system is published as a set of llms.txt files: an index, the foundations, the components and the token table. When Claude Code or the Figma MCP builds a screen for IR, it reads these first. An agent with the token table cannot invent a hex code, and the content rules travel with it, so the copy comes out in IR's register too.

# https://ir-picasso.vercel.app/llms-tokens.txt

bg/app            surface-app        light #F8FAFC   dark #121926
bg/canvas         surface-canvas     light #EEF2F6   dark #0A0E15
bg/card           surface-card       light #FFFFFF   dark #202939
status/healthy    status-healthy     light #079455   dark #47CD89
status/warning    status-warning     light #DC6803   dark #FDB022
status/critical   status-critical    light #D92D20   dark #F97066

# Never use a raw hex. Every colour in Picasso is one of these.
What an agent sees. The same table drives the components above.

Foundations and content, not just components

  • Foundations: grid, spacing, radius, typography, colour, with tokens and brand blocks that generate [data-brand] CSS
  • Content: voice and register, casing, buttons and labels, errors, empty and loading states, numbers, units and time, terminology
  • Components: 44 live React components with variants, states and guidance, from Accordion to Tooltip, including KpiTile, Meter, Stepper and ThresholdSlider for monitoring work
  • Contributing: a component checklist, and a route for reporting off-system output back into the system

Where it lives

The docs are at ir-picasso.vercel.app. Clarion and the provisioning portal are built on it, and the design agents work that comes next is what it was built for: a machine-readable design contract that a prototype can be checked against.