Theming
Every component reads Destiny's look from one set of typed CSS variables — @engram/tokens. Colors are semantic (never raw hex in a component); type, tracking, and shape follow Destiny's flat FUI rules. Both lightness themes (darkness / light) re-tune the same token names, and you can override any of them.
Install the theme
@engram/tokensnpx shadcn@latest add @engram/tokensEvery component depends on this theme, so it's pulled in automatically when you add a component. Import it once in your global stylesheet:
/* app/globals.css — after your Tailwind import */
@import "@engram/tokens/theme.css";Palette
CSS variablesSurfaces & accents
Background
--engram-bgSurface
--engram-surfaceRaised
--engram-raisedRaised 2
--engram-raised-2Border
--engram-borderBorder strong
--engram-border-strongForeground
--engram-fgMuted
--engram-mutedFaint
--engram-faintAccent
--engram-accentAccent 2
--engram-accent-2Gold
--engram-goldDamage elements
Kinetic
--engram-kineticArc
--engram-arcSolar
--engram-solarVoid
--engram-voidStasis
--engram-stasisStrand
--engram-strandPrismatic
--engram-prismaticAmmo
Primary
--engram-ammo-primarySpecial
--engram-ammo-specialHeavy
--engram-ammo-heavyRarity & tier
Basic
--engram-basicCommon
--engram-commonRare
--engram-rareLegendary
--engram-legendaryExotic
--engram-exoticMasterwork
--engram-masterworkDeepsight
--engram-deepsightClass & status
Titan
--engram-class-titanHunter
--engram-class-hunterWarlock
--engram-class-warlockOK
--engram-okWarn
--engram-warnBad
--engram-badTypography
ArchivoDisplay 700 / tight
Sub-screen header
Tracked label 600
Tracked title
Kicker / eyebrow
Eyebrow · Context
Body 400
General body copy — a clean humanist grotesque for readability.
Fiction / italic
"Lead by example."
Numerics (tabular)
2,010 · 182,400
Mono (code / ids)
find_god_rolls
Shape & tracking
layout rulesTitle tracking
tracking-engram-title · var(--engram-tracking-title)Label tracking
tracking-engram-label · var(--engram-tracking-label)Corners
0Surfaces are square — FUI depth comes from translucency + blur, not rounded elevation.
Spacing
Tailwind's 4px scale (gap-2 = 8px, p-5 = 20px). Dense by default; sections separated by gap-10.
Override
re-tune any tokenBecause it's all CSS variables, you own the look — override any token in your own stylesheet and every component follows. No forking, no prop drilling.
/* Re-tune any token in your own CSS — components follow. */
:root {
--engram-accent: #36a8e0; /* focus / links / active */
--engram-gold: #f5c93f; /* masterwork / premium */
}
[data-theme="light"] {
--engram-accent: #1583c2;
}