Skip to content
Hexel StudioDocs

Theming

Where the Hexel Studio look comes from, and how to change it.

On this page

The site uses the Hexel Studio design language as-is. Nothing here is a new theme: tokens, fonts and components are copied from the homepage and Orbit so the docs read as part of the same product.

Sources

WhatTaken fromLives in
Colour, surface and state tokens (Hexel v2)homepage/app/globals.cssapp/globals.css
Pill buttons, segmented control, prose linkshomepage/app/globals.cssapp/globals.css
Wordmark, product marks, theme switch, theme providerhomepage/components/hxcomponents/brand, components/docs, components/theme-provider.tsx
Code colours (GitHub Light and Dark)Orbit's --workspace-code-* tokenslib/mdx.ts
Quiet scrollbarsOrbit's globals.cssapp/globals.css
Inter and Geist Monohomepage/app/layout.tsxapp/layout.tsx

The rules the components follow

  • Ink on white. Text is --ink on --canvas; raised surfaces are warm --paper, separated by --line hairlines.
  • Colour is for state and product art. Callouts tint only their icon and hairline. Product colour appears only in the product marks.
  • Calls to action are black pills. ButtonLink uses the homepage .btn classes.
  • The brand is always "Hexel Studio", never "Hexel" alone. The header shows the text wordmark.

Main tokens

TokenLightDarkUsed for
--canvas#ffffff#0a0a0bPage background
--ink#0b0b0c#f4f4f5Headings, active items, primary buttons
--ink-2#2b2b2e#d6d6daBody text
--muted-ink#66666c#a1a1a8Secondary text, labels
--paper#f6f6f4#141416Cards, code blocks, callouts
--paper-2#efefec#1c1c1fActive sidebar item, selected tab
--line8% ink8% whiteHairlines
--tone-*Callout icons and badges

Dark mode

The theme switch in the header sets light, dark or system; the D key toggles between light and dark. The site starts in light. When the docs run under hexelstudio.com, both apps share the stored choice, because they share an origin and the same next-themes storage key.

Code blocks, including the example on the landing page, follow the theme.

Fonts

Inter carries the brand voice, with its optical-size axis on so large headings use the tighter display cut. Geist Mono carries labels (like On this page) and code. Both load through next/font, so there is no layout shift.