Skip to content
@erikakers/typography

Settings

Every setting belongs to exactly one tier: Normative (WCAG, enforced, not configurable), Measured (vision science, a bound rather than a default), or Convention (everything else, and labelled as such rather than dressed up as research). “Choice” below marks a setting that is neither measured nor arbitrary — a decision the standards decline to make.

Setting Default Configurable Tier
$scale-base 1rem yes Convention
$scale-ratio 1.25 yes Convention
$font-family-base null yes Convention
$font-family-code ui-monospace, SFMono-Regular, Menlo, monospace yes Convention
$leading-base 1.5 yes Convention
$leading-exponent 0.25 yes Convention
$script-langs (en) yes Choice
$role-overrides () yes Convention
$role-steps () yes Convention
$role-kinds () yes Convention
$role-groups () yes Convention
$font-weights regular 400, medium 500, semibold 600, bold 700 yes Convention
$tracking-uppercase 0.05em yes Convention
$tracking-small-caps 0.05em yes Convention
$tracking-per-doubling -0.01em yes Convention
$root-scale 1 yes Convention (units)
$scale-precision 4 yes Convention
$reset true yes Convention
$elements Role to element selector, null for display, lead and fine yes Convention
$rhythm-blocks dd, details, fieldset, figure, hr, table yes Convention
$rhythm-role 'body' yes Convention
$underline-offset 0.15em yes Convention
$scripts cjk 1.15, devanagari 1.2, arabic 1.2 yes Choice
$roles display, h1-h6, lead, body, caption, fine, code derived Convention
$rhythm-unit 1.5rem (scale(0) x $leading-base) derived Convention

$roles and $rhythm-unit are outputs. Read them, pass a map of your own to the mixins that take one, but do not try to configure $roles with with — it is not !default, and the supported ways to change it are the scale/font inputs, $role-overrides, and the derivation engine configuration maps ($role-steps, $role-kinds, $role-groups).