Internal
Design system
118 tokens parsed from tokens.css. Values shown are the declared light-mode source; the swatches render live, so the theme toggle in the site header reflects what actually resolves.
Semantic color
Every value here should be a var() reference. A literal hex
means a layer was bound to a primitive in Figma — see DESIGN_SYSTEM.md §1.
Text
var(--neutral-900)var(--neutral-600)var(--neutral-500)var(--neutral-50)var(--accent-700)var(--neutral-900)var(--neutral-900)Surface
var(--neutral-white)var(--neutral-50)var(--neutral-200)rgb(0 0 0 / 0.6)Border
var(--neutral-200)var(--neutral-300)var(--neutral-400)var(--accent-600)var(--accent-700)Accent
var(--accent-400)var(--accent-500)var(--accent-600)var(--accent-50)var(--accent-50)var(--accent-100)Contrast
WCAG AA needs 4.5:1 for body text, 3:1 for large text (18pt+ or 14pt bold). Computed live, so this re-checks when you toggle the theme.
| Foreground | Background | Ratio | AA | AA Large |
|---|---|---|---|---|
--color-text-primary | --color-surface-page | — | — | — |
--color-text-primary | --color-surface-raised | — | — | — |
--color-text-secondary | --color-surface-page | — | — | — |
--color-text-secondary | --color-surface-raised | — | — | — |
--color-text-muted | --color-surface-page | — | — | — |
--color-text-muted | --color-surface-raised | — | — | — |
--color-text-inverse | --color-surface-page | — | — | — |
--color-text-inverse | --color-surface-raised | — | — | — |
--color-text-accent | --color-surface-page | — | — | — |
--color-text-accent | --color-surface-raised | — | — | — |
--color-text-on-accent | --color-surface-page | — | — | — |
--color-text-on-accent | --color-surface-raised | — | — | — |
--color-text-on-accent-outlined | --color-surface-page | — | — | — |
--color-text-on-accent-outlined | --color-surface-raised | — | — | — |
Primitives
Raw values. Should never be referenced outside tokens.css.
Neutral
neutral-white#ffffffneutral-50#f7f7f4neutral-100#efefebneutral-200#e2e2dcneutral-300#c9c9c2neutral-400#a3a39aneutral-500#7a7a72neutral-600#57574fneutral-700#3b3b35neutral-800#24241fneutral-900#14140fneutral-950#0a0a0aneutral-black#000000Accent
accent-50#fcffe5accent-100#f7ffb8accent-200#f0ff7aaccent-300#e9ff38accent-400#dff500accent-500#c2d400accent-600#97a600accent-700#6b7600accent-800#414800accent-900#232600Type scale
The raw font-size steps. Composed text styles below build on these — reference the scale directly only when defining a new style.
Portfolio — Etele Illes
Portfolio — Etele Illes
Portfolio — Etele Illes
Portfolio — Etele Illes
Portfolio — Etele Illes
Portfolio — Etele Illes
Portfolio — Etele Illes
Portfolio — Etele Illes
Portfolio — Etele Illes
Portfolio — Etele Illes
Text styles
One class per Figma text style. Names map mechanically.
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
Button
Three variants — Primary, Outlined, and Text — each taking text, an
icon, or both, via a variant prop and an icon prop
on one component (see src/components/Button.astro). Icons
are Font Awesome,
loaded via kit script. Hover, tab to, and press the live buttons to
see the real states; the disabled instances can't be triggered by
interaction, so they're rendered as-is.
primary
outlined
text
Table
From Figma node 217:3207 — header row, body rows, a first-column/
rest-of-row text color split (text/primary vs
text/secondary), and a divider under every row but the
last. Not used anywhere on the site yet; built ahead of need (see
src/components/Table.astro).
Project
Owner
Status
Last updated
Website refresh
Alex Morgan
In progress
Oct 08, 2026
Brand guidelines
Jamie Chen
Completed
Oct 07, 2026
Onboarding flow
Taylor Reed
In review
Oct 06, 2026
Customer research
Jordan Lee
In progress
Oct 05, 2026
Asset library
Casey Patel
Not started
Oct 04, 2026
Release notes
Sam Rivera
Completed
Oct 03, 2026
Font stacks
The three type families in use. Shown as the literal CSS font-family stacks — see TODO.md for which are still placeholders.
--font-body- 'Figtree', system-ui, sans-serif
--font-mono- 'Roboto Mono', ui-monospace, SFMono-Regular, Menlo, monospace
Leading / tracking / weight
Line-height, letter-spacing, and font-weight primitives — combined into the composed text styles above, not usually referenced directly.
--leading-none1--leading-tight1.1--leading-snug1.25--leading-normal1.5--leading-relaxed1.7--tracking-tight-0.02em--tracking-normal0--tracking-wide0.06em--weight-regular400--weight-medium500--weight-semibold600
Spacing
The base scale behind every padding, margin, and gap on the site — see DESIGN_SYSTEM.md §8.
--space-0var(--scale-0)--space-1var(--scale-1)--space-2var(--scale-2)--space-3var(--scale-3)--space-4var(--scale-4)--space-5var(--scale-5)--space-6var(--scale-6)--space-8var(--scale-8)--space-10var(--scale-10)--space-12var(--scale-12)--space-16var(--scale-16)--space-20var(--scale-20)--space-24var(--scale-24)Radius
Corner radii, applied via border-radius. --radius-none is the default for most components.
nonesmmdlgfullShadow
Elevation values, hand-authored to match Figma effect styles — see DESIGN_SYSTEM.md §4.
smmdlgLayout, motion, layering
Containers, breakpoints, motion timing, and z-index — everything Figma variables can't carry natively, authored directly in tokens.css.
--container-prose65ch--container-content72rem--container-wide90rem--border-width-default1px--border-width-highlight2px--bp-tablet768px--bp-desktop1280px--duration-fast120ms--duration-base220ms--duration-slow400ms--ease-outcubic-bezier(0.16, 1, 0.3, 1)--ease-in-outcubic-bezier(0.65, 0, 0.35, 1)--z-base0--z-sticky100--z-overlay200--z-modal300