sdxc

[ @sdxc/u/typography ]

font-variant-numeric

Sets font-variant-numeric; u.tabularNums() covers the common tabular-nums case and shares the same declaration.

import { fontVariantNumeric } from "@sdxc/u/typography";

Quick reference

Every documented call, beside the CSS it emits.

CallCSS
u.fontVariantNumeric()css({ fontVariantNumeric: "tabular-nums" })
u.fontVariantNumeric("slashed-zero")css({ fontVariantNumeric: "slashed-zero" })
u.fontVariantNumeric("tabular-nums slashed-zero")css({ fontVariantNumeric: "tabular-nums slashed-zero" })

Examples

Basic example

Use fontVariantNumeric(value) to pick how a font draws its digits; with no value it uses "tabular-nums", which lines figures up in columns:

fontVariantNumeric()

1:11.111

1:08.808

1:14.441

fontVariantNumeric("proportional-nums")

1:11.111

1:08.808

1:14.441

<div mix={[grid(), gridTemplate({ columns: "auto auto" }), gap(12)]}>
	<div mix={[textAlign("end")]}>
		<p mix={[...]}>fontVariantNumeric()</p>
		<p mix={[fontVariantNumeric()]}>1:11.111</p>
		<p mix={[fontVariantNumeric()]}>1:08.808</p>
		<p mix={[fontVariantNumeric()]}>1:14.441</p>
	</div>
	<div mix={[textAlign("end")]}>
		<p mix={[...]}>fontVariantNumeric("proportional-nums")</p>
		<p mix={[fontVariantNumeric("proportional-nums")]}>1:11.111</p>
		<p mix={[fontVariantNumeric("proportional-nums")]}>1:08.808</p>
		<p mix={[fontVariantNumeric("proportional-nums")]}>1:14.441</p>
	</div>
</div>

Fractions

Use fontVariantNumeric("diagonal-fractions") to draw 3/4 as a fraction, where the font supports it:

fontVariantNumeric("diagonal-fractions")

Add 3/4 cup sugar and 1/2 cup milk

default digits

Add 3/4 cup sugar and 1/2 cup milk

<div mix={[...]}>
	<div>
		<p mix={[...]}>fontVariantNumeric("diagonal-fractions")</p>
		<p mix={[fontVariantNumeric("diagonal-fractions"), text("2xl")]}>
			Add 3/4 cup sugar and 1/2 cup milk
		</p>
	</div>
	<div>
		<p mix={[...]}>default digits</p>
		<p mix={[text("2xl")]}>Add 3/4 cup sugar and 1/2 cup milk</p>
	</div>
</div>

Applying on a state

Wrap the call in a state utility to scope it to one selector.

u.hover(u.fontVariantNumeric())

Responsive design

Wrap the call in a container query to scope it to one width.

u.at("md", u.fontVariantNumeric())

Signature

u.fontVariantNumeric(value?: FontVariantNumericValue)

Written by Sergio Xalambrí. Follow @sergiodxa for new packages, or sponsor the work.