Typography

The 30 type styles from TypeScaleTokens (Compose Material3 1.5.0-beta01) set in Google Sans Flex (D1), self-hosted from @kyralabs/m3e-tokens/fonts.css. Compare with the m3.material.io type scale.

Font profiles

@kyralabs/m3e-tokens ships Google Sans Flex in three profiles (D11, D15). Each registers the same "Google Sans Flex" family, so import exactly one: the others replace fonts.css, they do not add to it. Axes a profile drops are fixed at their defaults (wdth 100, ROND 0, slnt 0), so every profile renders the type scale above identically. Browsers download only the chunks a page's text needs.

EntryVariable axesLatin chunkAll chunksUse
fonts.csswght, opsz138.8 KiB328.5 KiBDefault; the umbrella CSS imports it.
fonts-rond.csswght, opsz, ROND205.2 KiB468.1 KiBOpt-in roundness (D15).
fonts-full.csswght, opsz, ROND, wdth, slnt1020.8 KiB2026.8 KiBEvery axis, for width and slant.

Roundness (ROND)

To round the letterforms, import fonts-rond.css instead of fonts.css (with the umbrella package, import the layers' CSS yourself in place of its bundled stylesheet), then set the axis. ROND runs from 0 (the default) to 100. It has no CSS property of its own, so it is set with font-variation-settings, which replaces any inherited value instead of merging with it: repeat every other axis you set in the same declaration.

@import '@kyralabs/m3e-tokens/fonts-rond.css'; /* instead of fonts.css */
@import '@kyralabs/m3e-tokens/tokens.css';
@import '@kyralabs/m3e-tokens/theme.css';
@import '@kyralabs/m3e-css/index.css';

.playful {
  font-variation-settings: 'ROND' 100;
}

The type scale tokens do not set ROND, wdth or slnt: no Material source specifies values for them, so emphasized styles change weight only. The samples below use the latin chunk of the ROND profile under a docs-only family name, so the rest of this site keeps the default profile.