フォント

font-variant-numeric

font-variant-numeric は、数字の字形を切り替えます。桁が縦にそろう同じ幅の数字や、「3/4」を 1 文字の分数にする字形などを、フォントが持っているものの中から選びます。

構文normal …
normal
  | [ <numeric-figure-values>
    || <numeric-spacing-values>
    || <numeric-fraction-values>
    || ordinal || slashed-zero ]

プレビュー

1,111.10
8,888.00
3/4 · 1st
プリセット
右下の角をドラッグするとサイズを変えられます

コード

.box {
  font-family: Inter, sans-serif;
  font-size: 16px;
  font-variant-numeric: tabular-nums diagonal-fractions;
}

コントロール

font-variant-numerictabular-nums diagonal-fractions
数字の高さ
数字の高さ
数字の幅
数字の幅
分数
分数
ordinal
slashed-zero
1,111.10
8,888.00
3/4 · 1st

解説

値の書き方

初期値の normal はフォントの標準の字形のままです。そのほかは、次の組から 1 つずつ、いくつでも空白で区切って並べられます。順番は問いません。

  • 数字の高さ:lining-nums は大文字と同じ高さにそろえます。oldstyle-nums は小文字のように、6 や 8 は上に、3 や 9 は下にはみ出す数字です。文章の中で数字が目立ちすぎません。
  • 数字の幅:proportional-nums は 1 が狭いなど字ごとに幅が違い、tabular-nums はすべて同じ幅です。表の金額やタイマーのように、桁を縦にそろえたり、値が変わっても幅が揺れないようにしたりするときに使います。
  • 分数:diagonal-fractions は「1/2」を斜線の分数に、stacked-fractions は横線で上下に重ねた分数にします。
  • ordinal:「1st」の「st」のような序数の文字を小さく上に付けます。
  • slashed-zero:0 に斜線を入れて、英字の O と見分けやすくします。

フォントが字形を持っているときだけ効く

どの値も、フォントに入っている OpenType の機能(tnum・frac など)を使うだけなので、フォントにその字形が無ければ何も変わりません。このページのプレビューは、どの環境でも同じように見えるように、Google Fonts の Inter を使っています。この Inter には oldstyle-nums・stacked-fractions・ordinal・slashed-zero の字形が入っていないので、選んでも見た目は変わりません。また、Inter の数字はもともと大文字と同じ高さで字ごとに幅が違うので、lining-nums と proportional-nums も normal と同じ見た目です。

分数の字形は、フォントによっては斜線の前後だけでなく、すべての数字を小さくしてしまいます。diagonal-fractions は分数を囲んだ要素にだけ書くと安全です。

コメント