Webフォントのカーニングの落とし穴:font-kerningの注意点と解決策


CSSのfont-kerningプロパティは、フォントのカーニングを制御するために使用されます。カーニングとは、隣接する文字間のスペースを調整して、より読みやすく美しいテキストレイアウトを作成するタイポグラフィの技法です。

従来の課題

従来、Webフォントにおけるカーニングは、フォントデザイナーが手動で調整する必要がありました。しかし、これは非常に時間のかかる作業であり、すべてのフォントやブラウザで一貫した結果を得ることが困難でした。

font-kerningプロパティの登場

font-kerningプロパティの登場により、Web開発者はフォントのカーニングをより簡単に制御できるようになりました。このプロパティは、OpenTypeフォントに含まれるカーニング情報に基づいて、自動的にカーニングを適用します。

利点

  • 詳細な制御
    font-kerningプロパティは、個々の文字ペアのカーニングを微調整するために使用できます。
  • 作業効率の向上
    デザイナーは手動でカーニングを行う必要がなくなり、作業効率が向上します。
  • 一貫性のあるカーニング
    font-kerningプロパティを使用すると、すべてのブラウザで一貫したカーニングを実現できます。

構文

font-kerning: auto | manual;
  • manual:手動でカーニングを調整する必要があります。
  • auto:ブラウザがフォントに含まれるカーニング情報に基づいて自動的にカーニングを適用します。(デフォルト)

詳細なカーニング制御

font-kerningプロパティと組み合わせて、以下のプロパティを使用してカーニングをさらに制御できます。

  • tracking:すべての文字ペア間のスペースを均等に調整します。
  • font-feature-settings:特定のカーニング機能を有効または無効にすることができます。

注意点

  • 一部のフォントには、カーニング情報が含まれていない場合があります。
  • font-kerningプロパティは、すべてのブラウザでサポートされているわけではありません。
h1 {
  font-family: "My Font", serif;
  font-kerning: manual;
}

/* 個々の文字ペアのカーニングを調整 */
@font-feature-settings {
  kern: {
    "A" "A": -0.5px;
    "B" "E": 0.2px;
  }
}


h1 {
  font-family: "My Font", serif;
  font-kerning: auto;
}

手動カーニング

以下のコードは、h1要素内のテキストに対して手動カーニングを設定します。この例では、"A"と"A"のペア間のスペースを0.5pxだけ狭くし、"B"と"E"のペア間のスペースを0.2pxだけ広くします。

h1 {
  font-family: "My Font", serif;
  font-kerning: manual;
}

/* 個々の文字ペアのカーニングを調整 */
@font-feature-settings {
  kern: {
    "A" "A": -0.5px;
    "B" "E": 0.2px;
  }
}

特定のカーニング機能を有効にする

以下のコードは、paltカーニング機能を有効にします。paltカーニング機能は、特定の文字ペアの形状に基づいてカーニングを調整します。

p {
  font-family: "My Font", serif;
  font-feature-settings: "palt" 1;
}

すべての文字ペア間のスペースを均等に調整

以下のコードは、p要素内のすべての文字ペア間のスペースを0.5pxだけ広くします。

p {
  font-family: "My Font", serif;
  letter-spacing: 0.5px;
}
  • カーニングを調整しすぎると、テキストが読みづらくなる場合があります。
  • カーニングを調整する前に、フォントにカーニング情報が含まれていることを確認してください。
  • 上記のコード例はあくまでも例であり、すべての状況に適用できるわけではありません。


font-kerningプロパティがサポートされていない場合、またはよりきめ細かな制御が必要な場合は、以下の代替方法を検討することができます。

手動カーニング

  • DTPソフトの利用
    InDesignなどのDTPソフトを使用して、レイアウト上で文字間のスペースを調整することができます。
  • エディタによる調整
    一部のテキストエディタは、個々の文字間のスペースを直接調整することができます。

ウェブフォントの選択

  • セルフカーニング機能付きフォントを選択する
    セルフカーニング機能付きのフォントは、フォント自体が状況に応じてカーニングを調整してくれます。
  • カーニング情報が含まれているフォントを選択する
    多くのウェブフォントには、高度なカーニング情報が含まれています。Google Fontsなどのフォントライブラリから、カーニング情報が豊富なフォントを探すことができます。
  • word-spacing
    単語間のスペースを調整します。
  • text-align
    テキストの配置を調整することで、視覚的にカーニング効果を表現することができます。
  • letter-spacing
    すべての文字ペア間のスペースを均等に調整します。

注意点

  • ウェブフォントの選択は、デザインの選択肢を制限する可能性があります。
  • 手動カーニングは非常に時間のかかる作業です。
  • 上記の代替方法は、font-kerningプロパティと同じレベルの制御を提供できない場合があります。

以下のコードは、letter-spacingプロパティを使用して、p要素内のすべての文字ペア間のスペースを0.5pxだけ広くします。

p {
  font-family: "Arial", sans-serif;
  letter-spacing: 0.5px;
}

最適な方法の選択

最適な方法は、プロジェクトの要件と制約によって異なります。

  • よりきめ細かな制御が必要な場合
    手動カーニング、DTPソフト、またはletter-spacingプロパティなどの代替方法を使用します。
  • シンプルなカーニングが必要な場合
    font-kerningプロパティを使用するか、カーニング情報が含まれているウェブフォントを選択します。