Ecosystem anatomy
Generated from projects/merlin/tokens/tokens.json — merlin-tribukait-branding · 06_design_tokens/brand_tokens.json + BRAND_GUIDEBOOK.html
projects/merlin/tokens/tokens.jsondist/assets/css/theme-merlin.css--ax-* custom propertiesColor tokens
Authored swatches first, then the derived ramp the CSS actually consumes.
| Semantic role | Custom property | Value | Source | Contrast vs surface |
|---|---|---|---|---|
| accent | --ax-accent |
#00f0ff
|
authored | 13.20:1 AA |
| accentHover | --ax-accent-hover |
#00d3e0
|
derived | 10.09:1 AA |
| accentGlow | --ax-accent-glow |
rgba(0, 240, 255, 0.25)
|
derived | 1.89:1 fail |
| accentSubtle | --ax-accent-subtle |
rgba(0, 240, 255, 0.12)
|
derived | 1.29:1 fail |
| bg | --ax-bg |
#08080c
|
authored | 1.07:1 fail |
| bgSubtle | --ax-bg-subtle |
#0f0f13
|
derived | 1.03:1 fail |
| surface1 | --ax-surface-1 |
#12121c
|
authored | 1.00:1 fail |
| surface2 | --ax-surface-2 |
#171d2b
|
authored | 1.10:1 fail |
| surface3 | --ax-surface-3 |
#1e2638
|
authored | 1.23:1 fail |
| surfaceElevated | --ax-surface-elevated |
#2b354c
|
authored | 1.52:1 fail |
| borderSubdued | --ax-border-subdued |
#1f1f24
|
derived | 1.13:1 fail |
| border | --ax-border |
rgba(255, 255, 255, 0.08)
|
authored | 1.22:1 fail |
| borderStrong | --ax-border-strong |
#494a4e
|
derived | 2.10:1 fail |
| borderHover | --ax-border-hover |
#5c5c61
|
derived | 2.80:1 fail |
| text1 | --ax-text-1 |
#f0f2f8
|
authored | 16.62:1 AA |
| text2 | --ax-text-2 |
#e2e6f0
|
authored | 14.89:1 AA |
| text3 | --ax-text-3 |
#8f96a3
|
authored | 6.25:1 AA |
| textInverse | --ax-text-inverse |
#08080c
|
authored | 1.07:1 fail |
| success | --ax-success |
#10b981
|
authored | 7.33:1 AA |
| successGlow | --ax-success-glow |
rgba(16, 185, 129, 0.2)
|
derived | 1.37:1 fail |
| warning | --ax-warning |
#f59e0b
|
authored | 8.66:1 AA |
| warningGlow | --ax-warning-glow |
rgba(245, 158, 11, 0.2)
|
derived | 1.43:1 fail |
| danger | --ax-danger |
#ef4444
|
authored | 4.94:1 AA |
| dangerGlow | --ax-danger-glow |
rgba(239, 68, 68, 0.2)
|
derived | 1.24:1 fail |
| info | --ax-info |
#38bdf8
|
authored | 8.68:1 AA |
| infoGlow | --ax-info-glow |
rgba(56, 189, 248, 0.2)
|
derived | 1.44:1 fail |
Typography
Families: heading → Inter · sans → Inter · mono → JetBrains Mono · numerals → JetBrains Mono
Spacing
Base grid 4px
Radii & shadows
--radius-sm
6px
--radius-md
10px
--radius-lg
16px
--radius-pill
9999px
--shadow-glow
0 0 24px #00f0ff40
--shadow-glowStrong
0 0 36px #00f0ff80
--shadow-card
0 16px 40px rgba(0, 0, 0, 0.6)
Motion
Hover the tracks to compare easing curves.
--transition-fast
0.15s cubic-bezier(0.2, 0, 0, 1)
--transition-normal
0.25s cubic-bezier(0.22, 1, 0.36, 1)
--transition-slow
0.4s cubic-bezier(0.22, 1, 0.36, 1)
Atoms
Indivisible interface elements compiled from the theme above.
<button class="ax-btn ax-btn-primary">Primary</button>
<button class="ax-btn ax-btn-secondary">Secondary</button>
<button class="ax-btn ax-btn-outline">Outline</button>
<button class="ax-btn ax-btn-ghost">Ghost</button>
<button class="ax-btn ax-btn-danger">Danger</button>
<button class="ax-btn ax-btn-primary ax-btn-sm">Small</button>
<button class="ax-btn ax-btn-primary">Medium</button>
<button class="ax-btn ax-btn-primary ax-btn-lg">Large</button>
<input class="ax-input" placeholder="Search tokens...">
<label class="ax-checkbox"><input type="checkbox" checked> Enable token sync</label>
<span class="ax-badge ax-badge-accent">Accent</span>
<span class="ax-badge ax-badge-success"><span class="ax-status-dot active"></span> Operational</span>
--ax-accentInlined from assets/vectors/ — vector masters, no rasterisation.
Molecules
Atoms bound into reusable units.
<div class="ds-search-molecule">…</div>
| Token | Value | Status |
|---|---|---|
--ax-accent | brand accent | authored |
--ax-surface-2 | derived ramp | derived |
Organisms
Molecules composed into page-scale regions.
Merlin Tribukait
Personal identity · Molecular Brand Identity & Design System
| Surface | Token set | Typography | Assets |
|---|---|---|---|
| Web | full | display + mono | svg + png |
| Desktop | full | display + mono | icns + png |
| CLI | mono only | mono | — |
Accessibility
WCAG 2.1 contrast for every text role against every surface role in this theme.
| Role | bg | surface1 | surface2 | surface3 |
|---|---|---|---|---|
text1 |
17.86 | 16.62 | 15.04 | 13.50 |
text2 |
16.00 | 14.89 | 13.48 | 12.10 |
text3 |
6.72 | 6.25 | 5.66 | 5.08 |
Ratios computed at build time from the compiled theme — switch the palette variant in the header and this table is regenerated for that variant on the next build.