Brand

The Radial brand.

Radial runs one design system in two modes. Everything on this page also ships as machine-readable tokens, so agents and tools can read the brand the same way people do.

What we stand for

Five rules the system follows.

01

Do one thing well.

The system serves an issue tracker, not a platform. Every token, font, and rule earns its place or leaves.

02

Speed is the feature.

The visual language is quiet so the product feels fast: hairline borders, near-invisible shadows, no decoration that has to load.

03

Two modes, one set of names.

Semantic tokens stay constant; only the light or dark mapping changes. You never write a mode-specific color.

04

Amber is the accent, not the theme.

One warm charcoal (or cream) surface, near-neutral text, and amber used sparingly for the pop. The mark, the focus ring, one highlight per view.

05

Honest and plain.

Plain words, short sentences, no hype. The copy states the bet and stops. "AI features shipped: 0."

Logo and symbols

The radial burst.

A center point and eight spokes. Two forms: the line mark, rendered in a single color via currentColor, and the amber tile for icons and avatars.

Line mark, foreground
Line mark, amber
App icon tile
Radial

Light strokes on dark surfaces, dark strokes on light. Follow contrast.

Single color always. Never recolor, outline, distort, or add effects.

Keep clear space around the mark. Do not crowd it.

The mark

The radial burst. Single color via strokes; pick the variant for your surface.

App icon

The amber tile. For favicons, avatars, and app icons.

Mark (digital)
16px minimum height
Wordmark
never below text-lg (about 18px)
App icon / avatar
32x32px, tile only

Our name

Radial

Always "Radial": one word, capital R. The wordmark pairs the burst mark with Radial set in Geist semibold, the way the nav and footer render it.

NotRadial AI

Never append AI. The whole point is that there is none.

Notradial

Not lowercase in prose.

NotRadial.build

The domain is radial.build; the product is "Radial".

Color palette

Two modes, one set of names.

Colors are defined as OKLCH tokens in one stylesheet; the hex below is the sRGB equivalent. The semantic names stay constant and only the light or dark mapping changes. Click any swatch to copy its hex.

Identity

The one brand color. Amber carries the whole identity; the rest of the system is neutral.

Dark mode (default)

The default surface: warm charcoal, near-white text. Marketing pages are always dark.

Light mode (opt-in)

The same token names remapped to a warm cream surface. Used in the app and auth screens via .light.

Status and priority

The tracker hues, used for workflow status and priority. Dark-mode values shown.

Tier 1 is a warm stone scale (stone-50 #FAFAF9 to stone-950 #0C0A09). Components never touch it directly; the semantic tokens above remap onto it.

Typography

Barlow Condensed, Geist, Geist Mono.

Barlow CondensedDisplay

The display face: the social card and big headline moments. Not the wordmark.

--font-headlineweights 500, 700
No AI. No BS.
GeistBody and UI

The wordmark, all body copy, headings on the site, and product UI.

--font-bodyweights 400, 500, 600
The fast, CLI-first issue tracker.
Geist MonoMono

Eyebrow labels, install commands, and IDs like RAD-219.

--font-monoweights 400, 500
radial close RAD-219
  • Headings use Geist, font-semibold, tracking-tight. Not the display face.
  • Hero: text-5xl to text-7xl. Section: text-2xl to text-3xl.
  • Only font-mono exists as a font utility; set Barlow or Geist via the CSS variable.

How we sound

Quiet, plain, honest.

Voice markers

  • Plain words over jargon.
  • Short sentences. State the bet, then stop.
  • Honest to a fault: "AI features shipped: 0."
  • Second person: your terminal, your agent, your data.
  • Concrete: RAD-219, $50 a year, under 50ms.

Lines that land

  • An issue tracker. That's it.
  • No AI, no agents, no credits, no BS.
  • $50 per user, per year. Flat.
  • Bring your own agent. Keep your money.
  • AI features shipped: 0.

Never use

  • AI hype: copilot, magic, revolutionary, supercharge, 10x, seamless.
  • Em dashes anywhere in copy.
  • Fake urgency or "Contact sales".
  • Credits, seats, or usage-meter language.

Words matter

The ontology is fixed.

Workspace, then Team, then Project, then Issue. Plus Cycle, Label, Status, Priority, Comment.

Preferred

Issue
The atomic unit of work. Capital I. IDs read RAD-219.
Project / Team / Workspace
How work is organized, in that nesting order.
Cycle
A time-boxed set of issues.
Status
Triage, Backlog, Todo, In Progress, In Review, Done, Canceled.
Priority
No priority, Urgent, High, Medium, Low.
CLI, MCP, REST API
The interfaces. First-class, never add-ons.

Avoid

ticket, card, story
It is an Issue.
sprint
It is a Cycle.
board column
It is a Status.
copilot, our agent
You bring your own agent. Radial has none.
Radial AI, Radial.build (in prose)
The product is "Radial".

Usage guidelines

Do and don't.

Do

  • Use semantic tokens only: bg-background, text-foreground, bg-brand. The mapping changes per mode, not the class.
  • Let dark be the default; light is opt-in via .light.
  • Keep amber for accents: the mark, the focus ring, one highlight per view.
  • Render the mark in a single color. Light strokes on dark, dark strokes on light.
  • Set display type in Barlow Condensed, body and UI in Geist, labels and IDs in Geist Mono.

Don't

  • Never write a dark: prefix. The theme guard fails the build.
  • Never hardcode a palette color like emerald-400 or a raw #10b981. Add a token instead.
  • Never use amber as a page background or a large fill. It is an accent.
  • Never recolor, outline, distort, or add effects to the mark.
  • Never stretch the wordmark or set it below the minimum size.

For AI and developers

Machine-readable tokens.

Every token and rule on this page ships as data, from one source of truth. The system is two-tier: semantic names stay constant, and the mode decides the mapping. Fetch whichever format your tool reads.