Skip to content
UI

Search docs

Search components and documentation

New
Menu

Typography

The type system — Inter everywhere, tuned per role with weight and tracking.

logic2b sets a deliberate single-family system: Inter carries everything — display type, headings, body copy, navigation and UI chrome — differentiated by weight and tracking instead of by family. Headings tighten their tracking and compress line-height; body stays comfortable. Code and technical metadata use the system monospace stack. The webfont is self-hosted via @fontsource-variable, so there’s no third-party font request.

The tokens are --font-heading, --font-sans (both Inter by default) and --font-mono. Headings (h1h4) inherit --font-heading from the base layer; everything else defaults to --font-sans. Projects can point --font-heading at a display family of their own (the theme studio offers several) without touching any component.

Heading

Headings use Inter 600–700 with negative tracking. Keep line-height compressed at display sizes.

Subheading

The third level steps down in size but holds the same voice.

Paragraph

Body text is Inter at 16px with a 1.5 line-height and a hair of negative tracking. It should stay comfortable to read in long form, never dipping below 12px, and it never mixes fonts inside a block.

Blockquote

Depth never comes from shadows; it comes from the luminance ladder and hairline borders. Restraint everywhere.

List

  • Route every color through semantic tokens (text-foreground, text-muted-foreground).
  • One family, many voices: differentiate with weight and tracking, not fonts.
  • Reserve color for chart series and the destructive state.

Inline code

Wrap technical tokens in inline code — it renders in the monospace stack on a muted surface, e.g. npx logic2b@latest add button.

Table

Role Font Size Tracking
Display Inter 700 48–68px -0.035em
Heading Inter 700 30–36px -0.025em
Body Inter 400 16px -0.011em
Caption Inter 400 12px -0.01em

Utilities

Apply the families directly with Tailwind when you step outside the defaults:

<h2 className="font-heading tracking-tighter">Foundation</h2>
<p className="font-sans text-muted-foreground">Monochrome discipline.</p>
<code className="font-mono">--radius: 0.625rem</code>