Skip to main content

Presets

Target Element

Capitalization (font-variant-caps)

Controls how uppercase and lowercase letters are displayed.

Numbers (font-variant-numeric)

Ligatures (font-variant-ligatures)

Alternates (font-variant-alternates)

Position (font-variant-position)

Use proper OpenType sub/superscripts instead of scaled text.

East Asian (font-variant-east-asian)

Emoji (font-variant-emoji)

Control how emoji characters are rendered.

Options

Live Preview

Default:ABCdef 1234567890 fi fl ffi 1/2 3/4 1st 2nd
With Styles:ABCdef 1234567890 fi fl ffi 1/2 3/4 1st 2nd

Feature Demonstrations

Small CapsHello World
All Small CapsHello World
Lining Figures1234567890
Oldstyle Figures1234567890
Tabular Figures$1,234.56
Diagonal Fractions1/2 3/4 1/8

Generated CSS

.typography {
  font-variant: normal;
}

Usage Examples

Body Text Typography

body {
  font-variant-ligatures: common-ligatures contextual;
  font-variant-numeric: oldstyle-nums proportional-nums;
}

Data Tables

table {
  font-variant-numeric: lining-nums tabular-nums slashed-zero;
  font-variant-ligatures: no-common-ligatures;
}

Headings with Small Caps

h1, h2, h3 {
  font-variant-caps: small-caps;
  font-variant-ligatures: common-ligatures;
  letter-spacing: 0.05em;
}

Fractions and Ordinals

.recipe-amounts {
  font-variant-numeric: diagonal-fractions ordinal;
}

/* Makes 1/2 โ†’ ยฝ and 1st โ†’ 1หขแต— */

Proper Subscripts/Superscripts

.chemical-formula sub {
  font-variant-position: sub;
}

.math-formula sup {
  font-variant-position: super;
}

/* Uses proper OpenType glyphs instead of scaled text */

CSS Variables for Typography

:root {
  --font-variant-body: common-ligatures contextual oldstyle-nums;
  --font-variant-code: no-common-ligatures tabular-nums slashed-zero;
  --font-variant-headings: small-caps common-ligatures;
}

body {
  font-variant: var(--font-variant-body);
}

code, pre {
  font-variant: var(--font-variant-code);
}

h1, h2, h3 {
  font-variant: var(--font-variant-headings);
}

Reference

font-variant-caps Values

ValueDescription
normalNo special capitalization
small-capsLowercase letters as small capitals
all-small-capsAll letters as small capitals
petite-capsSmaller small capitals
all-petite-capsAll letters as petite capitals
unicaseMixed case with uniform heights
titling-capsCapitals designed for titles

font-variant-numeric Values

ValueDescription
lining-numsNumbers with uniform height (default for most fonts)
oldstyle-numsNumbers with varying heights (text figures)
proportional-numsVariable-width numbers
tabular-numsFixed-width numbers (for tables)
diagonal-fractionsDiagonal fraction glyphs (1/2 โ†’ ยฝ)
stacked-fractionsStacked fraction glyphs
slashed-zeroZero with a slash (0 vs O)
ordinalOrdinal markers (1st, 2nd)

Browser Support

PropertyChromeFirefoxSafariEdge
font-variant-caps52+34+9.1+79+
font-variant-numeric52+34+9.1+79+
font-variant-ligatures34+34+9.1+79+
font-variant-position117+34+9.1+117+
font-variant-east-asian63+34+15.4+79+
font-variant-emoji129+108+17.5+129+

Best Practices

  • Use fonts that support OpenType features (e.g., Source Sans Pro, Lato, Open Sans)
  • Use font-variant-numeric: tabular-nums for number columns in tables
  • Use font-variant-caps: small-caps for acronyms like "NASA" or "HTML"
  • Use font-variant-ligatures: no-common-ligatures in code blocks
  • Prefer font-variant-position over vertical-align with scaled font-size
  • Test with actual OpenType-capable fonts to see the effects

Rate this tool