Foundations

Typography

Whole text styles that scale from one base size

Every size derives from --nyte-font-size-base, which the desktop's appearance settings write. At the default 13px the scale is 11, 12, 13, 15, and 19. Each text style pairs a size with its line box and tracking, so no component pairs them by hand.

import { text } from "@nyte-ai/ui/styles/text.stylex";
import { type } from "@nyte-ai/ui/styles/vars.stylex";

<p {...props(text.sm, styles.label)} />;

Every session is a tree of commits

text.xs11px / 14px · 0emTooltips, chart labels, composer chips

Every session is a tree of commits

text.sm12px / 16px · 0emSmall buttons, field hints, sidebars

Every session is a tree of commits

text.baseCompact13px / 16px · 0emA one-line 13px label; the floor for 13px Inter

Every session is a tree of commits

text.base13px / 18px · 0emBody text, controls, dialogs

Every session is a tree of commits

text.lg15px / 24px · -0.016emDialog titles, the transcript

Every session is a tree of commits

text.code12px / 18pxCode blocks, diffs, tool calls

Weights

Agent core

type.weightRegular400

Agent core

type.weightMedium500

Agent core

type.weightSemibold600

Families

HandleDefault
type.fontSansInter Variable, then the system UI font
type.fontMonoThe system monospace; JetBrains Mono when the appearance setting picks it

Rules

  • Text uses a whole style: text.*, or a type.font* and its matching type.leading* together.
  • Line heights round up to whole pixels at every size.
  • 13px Inter needs at least the 16px line box (text.baseCompact). A tighter box clips descenders when text truncates.
  • lineHeight: 1 is for glyph boxes only, never for text.
  • Weights come from type.weight*: 400, 500, and 600. There is no bold.
  • Large text tightens by -0.016em; everything else keeps zero tracking.