LEISSONCREATIVE
Systems · Method · 116 tokens

How we build systems

The Orbit tokens, type scale and gates we use to build Leisson systems and check them before release.

Versioned token artifact · Orbit v1.0.0 · @leisson/shared v2.7.0 · color.*

Color — Night and Day side by side

color.canvas#000000
#FFFFFF
color.paper#121214
#F0F0FA
color.raised#1A1A1E
#E6E6F0
color.ink#FAFAFA
#000000
color.ink-2rgba(250,250,250,0.70)
rgba(0,0,0,0.72)
color.ink-3rgba(250,250,250,0.55)
rgba(0,0,0,0.55)
color.ink-disabledrgba(250,250,250,0.38)
rgba(0,0,0,0.38)
color.hairlinergba(250,250,250,0.12)
rgba(0,0,0,0.12)
color.hairline-strongrgba(250,250,250,0.28)
rgba(0,0,0,0.24)
color.control-borderrgba(250,250,250,0.48)
rgba(0,0,0,0.48)
color.signal#7CB8FF
#1F5FD1
color.signal-softrgba(124,184,255,0.12)
rgba(31,95,209,0.10)
color.status-ok#81C784
#2E7D32
color.status-warn#FFB74D
#945700
color.status-crit#EF9A9A
#C62828
color.button-fill#FAFAFA
#000000
color.button-fill-ink#000000
#FAFAFA
color.scrimrgba(0,0,0,0.60)
rgba(0,0,0,0.40)

Signal is the only chromatic token: focus ring, active nav, one emphasised number. All other color comes from product screens.

Versioned token artifact · Orbit v1.0.0 · @leisson/shared v2.7.0 · type.*

The type scale

TokenSizeWeightLine heightTypeface
type.display72px8000.98Barlow Condensed
type.h156px7001Barlow Condensed
type.h244px7001.05Barlow Condensed
type.h328px7001.15Barlow Condensed
type.h420px6001.2Barlow Condensed
type.lede19px4001.5Barlow
type.body16px4001.55Barlow
type.body-sm14px4001.5Barlow
type.caption13px4001.5Barlow
type.button14px7001Barlow
type.label12px4001.4IBM Plex Mono
type.micro12px4001.4IBM Plex Mono
type.data13px4001.5IBM Plex Mono
type.stat40px7001Barlow Condensed

What is Orbit?

Orbit is the design system of Leisson Creative (LEISSON OÜ, Tallinn). It is one token file in DTCG format that generates four outputs: CSS custom properties, Tailwind v4 @theme, TypeScript types and Figma variables. Orbit v1.0.0 is internally stable; @leisson/shared v2.7.0 is the related package. DNA 2.0 is a separate specification, not a released version. The released artifact's token count shown at the top of this page is read from the generated orbit.flat.json file at build time.

This page is itself rendered from those tokens. When a token changes, this page changes with the next release; there is no manual step in between.

How does a token reach the screen?

The pipeline has five steps and every step is scripted:

  1. Source. orbit.tokens.json — DTCG structure, semantic names (color.canvas, type.h1, motion.spring.default). A raw hex value in a component is not allowed.
  2. Build. packages/orbit-tokens/build.mjs emits all four outputs at once. The script has no npm dependencies, so the build cannot fail because of a registry.
  3. Verify. verify.mjs measures contrast, monochrome compliance, drift and raw hex. It fails before a wrong value can reach a component.
  4. Sync. site/sync-orbit.mjs copies the flattened tokens into the site build. The site keeps no second copy of the values.
  5. Gates. CI runs the token check, the content gates, type checking, the Playwright gates and an automated accessibility check (axe-core) before code reaches production.

How do these systems differ?

SystemWhere it runsToken sourceOutputsRenderers
Orbit v1.0.0leisson.eu, studio workorbit.tokens.json (DTCG)CSS, Tailwind v4, TypeScript, FigmaReact
ProUXAudit Design System 1.3audit and report design reference1.3 design referencefinding, priority, decisionweb
AgroNutikas Design System v9.0agronutikas.ee, app, accountingcanonical CSS exportCSS tokens + skill generatorsReact
AxonDeck Design System v2.1AxonDeck WebUI and desktop apptokens.csstokens.css, presets.ts, Colors.xamlReact 19 and WPF

The AgroNutikas tokens carry Estonian names (rukkilill, mets, talinisu, oht, muld) because a farmer reading a report also reads them. The only purpose of the AxonDeck system is to keep two renderers — React on the web and WPF on the desktop — on a single source of truth.

What are Orbit tokens made of?

The flattened orbit.flat.json contains color, typography, space, motion and other tokens. The token count at the top of this page and the color and typography specimens below read the same generated file; the total is not maintained in editorial copy.

Why monochrome and a single signal colour?

Because the studio portfolio contains products whose own brand is yellow, green or cyan. If the site chrome were chromatic it would fight every product screenshot. In Orbit the whole chrome is black and white and color.signal is the only chromatic token: focus ring, active navigation, one emphasised number. Every other colour on the page comes from a product screenshot.

The same rule makes the contrast gate measurable. Separate scripts check contrast, monochrome compliance and raw hex; this page does not give a pass count without evidence from a specific run.

What do the gates actually measure?

GateWhat it measuresWhen it fails
verify:tokenscontrast, monochrome, drift, raw hexa wrong value in tokens or a component
gates.mjshorizontal scroll at 390 px (source: tests/gates.mjs), a simplified accessibility check (names, alt, labels, contrast), visible content, SEO meta, CTA hierarchybroken layout or missing meta
claims.mjsevery case-page metric has a source, ET/EN parity, Estonian typographyan unsourced number or the languages drifting apart
axe-coreautomatically detectable accessibility issues, not a full auditone serious or critical finding
Lighthouseperformance, an automated accessibility score, best practices, SEObelow the CI threshold

Source: .github/workflows/orbit-gates.yml.

An automated check finds only some accessibility issues. Keyboard walkthroughs, screen reader checks and a conformance evaluation are separate manual work; a green gate does not prove that a page fully conforms to WCAG.

The gates run on every push. A production release happens on a separate branch and only with green gates.

Can Orbit be used outside the studio?

Not as a public package today — Orbit is not published to npm, and v1.0.0 means the first internally stable version, not a public release. If your team wants the same pipeline for your own brand, that is exactly what the studio builds: tokens, gates and components in your repository, owned by you.

Updated 2026-10-20 · Markdown · llms.txt