Skip to Content
DocumentationTypography

Typography

Font size

Use font-size tokens or the -font-size:* utility to scale text. Variations are generated from the harmonic sequence, and they update when --unitone--harmonic-sequence-base or --unitone--root-font-size changes.

The automatic line-height optimization still follows the rendered font size. By default, it scales from 1.1(= 1 + var(--unitone--min-half-leading) * 2) to 1.6(= 1 + var(--unitone--half-leading) * 2).

Approximate font sizes with the default --unitone--root-font-size: 16px are:

TokenUtility classApprox. remApprox. px
--unitone--font-size-2xs.-font-size:2xs0.727rem11.6px
--unitone--font-size-xs.-font-size:xs0.8rem12.8px
--unitone--font-size-s.-font-size:s0.889rem14.2px
--unitone--font-size-m.-font-size:m1rem16px
--unitone--font-size-l.-font-size:l1.143rem18.3px
--unitone--font-size-xl.-font-size:xl1.333rem21.3px
--unitone--font-size-2xl.-font-size:2xl1.6rem25.6px
--unitone--font-size-3xl.-font-size:3xl2rem32px
--unitone--font-size-4xl.-font-size:4xl2.667rem42.7px
--unitone--font-size-5xl.-font-size:5xl4rem64px
--unitone--font-size-6xl.-font-size:6xl8rem128px

These are static size approximations. When -fluid-typography is used, the actual rendered size changes within a range based on the active responsive context, which is the viewport by default.

When using large font sizes such as 2xl and above, combining them with -fluid-typography is recommended. This helps prevent oversized text from breaking the layout on mobile screens.

For plain HTML, use the utility class from utilities.mdx, such as class="-font-size:xl".

When utilities are not loaded but the font-size behavior is loaded, use the data-unitone-layout version. The leading . seen in CSS selector notation is not included in the class attribute value.

<p class="-font-size:xl"> ... </p>
<p data-unitone-layout="-font-size:xl"> ... </p>

In custom CSS, set the font-size property directly.

.foo { font-size: var(--unitone--font-size-xl); }

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Line height

The half leading can be set. The default value is 0.3.

<p style="--unitone--half-leading: 0.3"> ... </p>

Fluid typography

Combine a font-size utility with -fluid-typography to switch from the static token to the matching fluid token.

Approximate fluid font-size ranges with the default --unitone--root-font-size: 16px are:

Fluid tokenUtility classMin remMin pxMax remMax px
--unitone--font-size-2xs-fluid.-font-size:2xs0.727rem11.6px0.727rem11.6px
--unitone--font-size-xs-fluid.-font-size:xs0.8rem12.8px0.8rem12.8px
--unitone--font-size-s-fluid.-font-size:s0.889rem14.2px0.889rem14.2px
--unitone--font-size-m-fluid.-font-size:m1rem16px1rem16px
--unitone--font-size-l-fluid.-font-size:l1.089rem17.4px1.143rem18.3px
--unitone--font-size-xl-fluid.-font-size:xl1.2rem19.2px1.333rem21.3px
--unitone--font-size-2xl-fluid.-font-size:2xl1.343rem21.5px1.6rem25.6px
--unitone--font-size-3xl-fluid.-font-size:3xl1.533rem24.5px2rem32px
--unitone--font-size-4xl-fluid.-font-size:4xl1.8rem28.8px2.667rem42.7px
--unitone--font-size-5xl-fluid.-font-size:5xl2.2rem35.2px4rem64px
--unitone--font-size-6xl-fluid.-font-size:6xl2.867rem45.9px8rem128px

These values are the approximate minimum and maximum lengths generated by clamp() across the default viewport range.

When using large font sizes such as 2xl and above, combining them with -fluid-typography is recommended. This helps prevent oversized text from breaking the layout on mobile screens.

In plain HTML, the utility version is a class:

<p class="-font-size:6xl -fluid-typography"> ... </p>

The same combination can be written with data-unitone-layout.

<p data-unitone-layout="-font-size:6xl -fluid-typography"> ... </p>

In custom CSS, use the fluid token directly.

.foo { font-size: var(--unitone--font-size-6xl-fluid); }

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Use -responsive-context:container together with -container-type:inline-size on the same ancestor to switch its descendants to container-width-based fluid typography.

Both markers must be on the same element for the context to become active. An unpaired context marker is ignored: fluid typography keeps using the existing context, which is the viewport by default. Only the container context is supported. See Responsive context utilities for examples and the behavior when markers are missing or separated.

<div data-unitone-layout="decorator -container-type:inline-size -responsive-context:container"> <p data-unitone-layout="-font-size:6xl -fluid-typography"> ... </p> </div>

or

<div class="-container-type:inline-size -responsive-context:container"> <p class="-font-size:6xl -fluid-typography"> ... </p> </div>

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Auto line breaks

Use overflow-wrap: anywhere + word-break: keep-all for automatic line breaks. Use wbr to indicate a line break at an arbitrary position.

<p data-unitone-layout="-auto-phrase"> ... </p>
Last updated on