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 chipsEvery session is a tree of commits
text.sm12px / 16px · 0emSmall buttons, field hints, sidebarsEvery session is a tree of commits
text.baseCompact13px / 16px · 0emA one-line 13px label; the floor for 13px InterEvery session is a tree of commits
text.base13px / 18px · 0emBody text, controls, dialogsEvery session is a tree of commits
text.lg15px / 24px · -0.016emDialog titles, the transcriptEvery session is a tree of commits
text.code12px / 18pxCode blocks, diffs, tool callsWeights
Agent core
type.weightRegular400Agent core
type.weightMedium500Agent core
type.weightSemibold600Families
| Handle | Default |
|---|---|
type.fontSans | Inter Variable, then the system UI font |
type.fontMono | The system monospace; JetBrains Mono when the appearance setting picks it |
Rules
- Text uses a whole style:
text.*, or atype.font*and its matchingtype.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: 1is 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.