Design system
Tokens, classes, and components available in this project
Colors
Type scale
text-2xsThe quick brown fox0.6875rem / 11px · custom (token)text-xsThe quick brown fox0.75rem / 12px · Tailwind defaulttext-smThe quick brown fox0.875rem / 14px · Tailwind defaulttext-baseThe quick brown fox1rem / 16px · Tailwind defaulttext-lgThe quick brown fox1.125rem / 18px · Tailwind defaulttext-xlThe quick brown fox1.25rem / 20px · Tailwind defaulttext-2xlThe quick brown fox1.5rem / 24px · Tailwind defaulttext-3xlThe quick brown fox2rem / 32px · custom override — matches homepage bodytext-4xlThe quick brown fox2.25rem / 36px · Tailwind defaulttext-5xlThe quick brown fox3rem / 48px · Tailwind defaulttext-6xlThe quick brown fox3rem / 48px · custom class (globals.css)Fonts
font-sansfont-bodyfont-headerfont-monoLine height (leading)
leading-noneTwo lines of text to show the spacing. When multiple lines stack, the leading controls how much breathing room sits between them.
1leading-tightTwo lines of text to show the spacing. When multiple lines stack, the leading controls how much breathing room sits between them.
1.25leading-snugTwo lines of text to show the spacing. When multiple lines stack, the leading controls how much breathing room sits between them.
1.375leading-normalTwo lines of text to show the spacing. When multiple lines stack, the leading controls how much breathing room sits between them.
1.5leading-relaxedTwo lines of text to show the spacing. When multiple lines stack, the leading controls how much breathing room sits between them.
1.625leading-looseTwo lines of text to show the spacing. When multiple lines stack, the leading controls how much breathing room sits between them.
2Also: leading-<n> for fixed rem-based values from the spacing scale (leading-3 = 0.75rem, leading-4 = 1rem, etc.).
Preferred: pair with type scale tokens via --font-size-*--line-height so size + leading travel together.
Text color utilities
color: var(--color-text)Sample text at this colorcolor: var(--color-text-secondary)Sample text at this colorcolor: var(--color-text-tertiary)Sample text at this colorcolor: var(--color-text-muted)Sample text at this colorcolor: var(--color-text-faint)Sample text at this colorcolor: var(--color-text-light)Sample text at this colorcolor: var(--color-text-light-muted)Sample text at this colorRadii
--radius-xs4px--radius-sm8px--radius-md16px--radius-pill9999pxrounded-xs4pxLayout
max-w-page / w-page1248pxw-sidebar280pxgrid-cols-2424-col gridgap-4 / gap-6 / gap-81rem / 1.5rem / 2remcol-span-1 … col-span-24generatedcol-start-1 … col-start-24generatedArticle prose (.prose-article)
Heading 2
Heading 3
Body paragraph at 1.25rem with an inline link and strong emphasis plus italics.
Blockquote: indented with a left border, italic, in muted text.
- Unordered list item
- Another item
Callout block — used for `> [!note]` in markdown.
Eyebrow headers (.eyebrow)
Mono uppercase tracker — used as a small section label above content. Defaults to text-xs / --color-text-faint. Override size with text-base etc.; override color with text-[var(--color-text-muted)].
Default eyebrow
Larger eyebrow (.eyebrow text-base)
Muted color override
Buttons (.btn .btn-primary / .btn-secondary)
Pair .btn with a variant modifier. Mono font, 8px radius, hover transitions baked in.
Note: EmailMeButton stays a custom component — it has state-aware label transitions and a tooltip that don’t generalize.
Utility / component classes
.eyebrowMono uppercase eyebrow label — text-xs default, override size with text-* utility.btn .btn-primaryPrimary button — black bg, mono, 8px radius.btn .btn-secondaryOutlined button — transparent bg, border on hover.font-monoRed Hat Mono font-family.content-areaHomepage body container — 2rem / line-height 1.6 / weight 200.expand-wordClickable pill word on homepage (2rem, pill radius).inline-linkInline link with logo + hover preview.prose-articleArticle page typography — applies to all descendants.callout / .callout-noteMarkdown callout block inside .prose-article.callout-testimonialTestimonial variant — top/bottom borders, no background.writing-right-panelSticky right panel on /writing, hidden ≤768pxMisc utilities
z-0 / z-10 / z-20Z-index utilities (whitelisted)rounded-xs4px radiustext-2xs0.6875rem / 11px