:root {
/* region 1) fontography — semantic family stacks */
{normalize-space(xhtml:td[1])}: {normalize-space(xhtml:td[2])};
/* endregion fontography */
/* region 2) thickness — 7-step weight scale */
{normalize-space(xhtml:td[1])}: {normalize-space(xhtml:td[2])};
/* endregion thickness */
/* region 3) size — 7-step rem-based size scale */
{normalize-space(xhtml:td[1])}: {normalize-space(xhtml:td[2])};
/* endregion size */
/* region 4) line-height primitives */
{normalize-space(xhtml:td[1])}: {normalize-space(xhtml:td[2])};
/* endregion line-height */
/* region 5) letter-spacing primitives */
{normalize-space(xhtml:td[1])}: {normalize-space(xhtml:td[2])};
/* endregion letter-spacing */
/* region 6) typography feature policies */
{normalize-space(xhtml:td[1])}: {normalize-space(xhtml:td[2])};
/* endregion feature policies */
/* region 7) reading ergonomics */
{normalize-space(xhtml:td[1])}: {normalize-space(xhtml:td[2])};
/* endregion reading ergonomics */
/* region 8) voice — ink-thickness (drives font-weight) */
{normalize-space(xhtml:td[1])}: {normalize-space(xhtml:td[2])};
/* endregion voice ink-thickness */
/* region 9) voice — icon-stroke multipliers */
{normalize-space(xhtml:td[1])}: {normalize-space(xhtml:td[2])};
/* endregion voice icon-stroke */
/* region 10) voice — speech-volume (TTS adapter input, not screen-reader) */
{normalize-space(xhtml:td[1])}: {normalize-space(xhtml:td[2])};
/* endregion voice speech-volume */
/* region 11) voice — speech-rate */
{normalize-space(xhtml:td[1])}: {normalize-space(xhtml:td[2])};
/* endregion voice speech-rate */
/* region 12) voice — speech-pitch */
{normalize-space(xhtml:td[1])}: {normalize-space(xhtml:td[2])};
/* endregion voice speech-pitch */
/* region 13) voice — ssml-emphasis */
{normalize-space(xhtml:td[1])}: {normalize-space(xhtml:td[2])};
/* endregion voice ssml-emphasis */
/* region 14) semantic role endpoints — 8 roles × ~9-10 properties each */
{normalize-space(xhtml:td[1])}: {normalize-space(xhtml:td[2])};
/* endregion semantic role endpoints */
}
/* region dark theme — lighter ink to compensate for perceived boldness on dark backgrounds */
.cem-theme-dark, [data-theme="cem-theme-dark"],
.cem-theme-contrast-dark, [data-theme="cem-theme-contrast-dark"] {
{normalize-space(xhtml:td[1])}: {normalize-space(xhtml:td[2])};
}
/* endregion dark theme */
/* region contrast theme — stronger ink for visibility (overrides dark for shared rows) */
.cem-theme-contrast-light, [data-theme="cem-theme-contrast-light"],
.cem-theme-contrast-dark, [data-theme="cem-theme-contrast-dark"] {
{normalize-space(xhtml:td[1])}: {normalize-space(xhtml:td[2])};
}
/* endregion contrast theme */
cem-typography-fontography — semantic family stacks
Token
Value
Sample
Tier
Description
{$token}
{$value}
Reading UI 123
{$tier}
{$desc}
thickness, size, line-height, letter-spacing, feature, reading-ergonomics
Token
Value
Sample
Tier
Description
{$token}
{$value}
Weight Aa 123
Size Aa 123
Line height example
second line
TRACKING 123
1111 8888 12.34
office affine ffi
Optical size
Readable measure example wraps only when the available table space is narrower than the token.
Paragraph one.
Paragraph two.
Aa 123
{$tier}
{$desc}
voice channels — 7 voices × 6 channels (ink + speech)
Token
Value
Sample
Tier
Description
{$token}
{$value}
Voice ink Aa 123
Speech volume {$value}
Speech rate {$value}
Speech pitch {$value}
SSML emphasis: {$value}
Voice value {$value}
{$tier}
{$desc}
semantic role endpoints — 8 roles × ~9-10 properties
Token
Value
Sample
Tier
{$token}
{$value}
Role family Aa 123
Role size Aa 123
Role line height
second line
ROLE TRACKING
Role weight Aa 123
1111 8888 12.34
office affine ffi
role text
Speech volume {$value}
Speech rate {$value}
Speech pitch {$value}
SSML emphasis: {$value}
Role value {$value}
{$tier}
{$css-body}