COLRv1 カラー グラデーション ベクター フォント(Chrome 98)

Dominik Röttsches
Dominik Röttsches
Rod Sheeter
Rod Sheeter

コンパクトで圧縮フレンドリーなカラーベクター フォントに、お好きなフォントをすべて使用できます いくつかあります。

Chrome 98 では、Chrome チームとフォントチームが COLRv1 のサポートを追加しました。 COLRv0 フォント形式の進化により、 グラデーションの追加、合成とブレンド、内部シェイプの再利用性の向上 圧縮しやすい、鮮明でコンパクトなフォント ファイルに適しています。

カラーに<ph type="x-smartling-void-element"><wbr /></ph>追加

ウェブ上のテキストは通常、CSS で指定された色で描画されます。フォントは 特定の色を定義せず、ピクセルを配置する位置を指定するだけ あります。通常は問題ありません。CSS では、コンテンツを作成する際に 指定します。ただし、1 つのグリフに複数の色が含まれていて、それらの色が組み合わさって なります。たとえば、このフラグ 薄い青と薄いピンクのストライプでできたトランスジェンダーの旗。 に水色、ピンク、白のストライプがある場合、次のようになります。 現在のテキストの色で単に描画されている場合は、同じ意味を示します。

現在、ほとんどのユーザーにとって、絵文字は唯一のカラーフォントです。絵文字 通常はシステム絵文字フォントを使用するか、画像を挿入して (独自のウォッチフェイスの追加機能、パンダ
悲しい表情の絵文字。 があります)。大きなファイル 特にビットマップベースのカラーフォントでは サイズが小さいため 使用できます。COLRv1 をサポートすることで、 クリエイティブ カラーのフォントをウェブなどで使えるようにします。

カラーを見せて

試せる例をいくつか用意しました。

この例で使用されている Google Fonts のサンプル アセットは、 Google Fonts ウェブ API。内容は次のとおりです。 fonts.google.com のディレクトリに Chrome 98 以降でのみ動作し、試験運用版を紹介します。

無料のオープンソース ツールを使用して、独自の COLRv1 フォントを作成できるようになりました。確認 ナノ絵文字フォント コンパイラを使ってみる SVG ソース画像から COLRv1 フォントを作成して、 Chrome 98 以降。Bungee Spice で自分だけのひねりを。 グラデーション カラー こちらの手順をご覧ください。

たとえば、Bungee Spice フォントを変更して、青と赤のグラデーションを次のようにすることができます。

Bungee Spice カラーのフォントで、青と赤のトーンで「砂丘」という言葉
学習します

結果を @googlefonts にツイートしてください 🙂? 放射状グラデーションやスイープ グラデーションを試してみましょう。

COLRv1 の新機能

フォント形式は色をサポートする複数の方法をサポートしています。 しかし、これまでのところ、ウェブ上で成功した事例はありません。(詳細については、 トレードオフについて Dominik による BlinkOn 15 カンファレンス トークをご覧ください)。 Chrome 98 では、COLRv0 の進化版である COLRv1 がサポートされます。Google は、 グラフィック機能とコンパクト ファイルを組み合わせた COLRv1 は、 多くのカラーフォントのユースケースに適していますCOLRv1 はグラデーションを追加し、 合成、ブレンドといった特徴があり、 内部の図形の再利用により、さらにコンパクトなファイルを作成できます。

COLRv1 の表現機能は、COLRv1 とほぼ同じです。 SVG Native + ブレンドと合成を追加 あります。色の塗りつぶしには、単色、線形グラデーション、放射状の 4 種類があります。 スイープ/円錐勾配がありますCOLRv1 では再配置と変換 平行移動、回転、傾斜、縮尺のフルセットを使用したグリフ要素 必要があります。さらに、フォントのバリエーションや再利用にも対応しています。 既存のシェイプ定義の書式をフォントに追加します。

青
    茶色の土台に紫色の水晶玉と再利用された星の絵文字。
水晶玉での形状の再利用 絵文字

たとえば、水晶玉の絵文字を考えてみましょう。星型のハイライトは、 サイズが異なるため、1 つのシェイプだけが ファイル内で重複することなく、再配置、再利用されます。この形式では、 冗長にすることなく、新しいグリフ内で完全なグリフを再利用できます。 各グリフで同じ形状をエンコードします。文字の入った装飾的なカラーフォントで、 同じ形の花を異なる文字に重ねて配置した花の装飾 既存のカラーグリフを参照するだけですウェブフォントのユースケースの場合は、COLRv1 woff2 の下で十分に圧縮されます(例: COLRv1 を使用した Twemoji のテストビルド)。 容量は約 1.2MB ですが、woff2 形式では約 0.6MB です。アプリケーションのビルド Noto 絵文字グリフのフルセットを、ビットマップ バージョンの 9 MB から 1.85 MB に縮小 COLRv1+woff2 の形式で記述します

<ph type="x-smartling-placeholder">
</ph> Noto 絵文字をビットマップ フォントと COLRv1 フォントで比較した棒グラフ(約 9 MB)
対 1.85MB
WOFF2 圧縮後の Noto 絵文字のフォントサイズ(CBDT/CBLC と COLRv1)。

カラーフォントのユースケース

キャッチーな見出し

刷新されたカラーフォントで、ハイライト、見出し、バナーを目立たせる できます。

プラカトカラー ハッピー 2022 年: 革新的なタイプによってエネルギッシュなスイープ グラデーションが登場 Foundry Underware(Twitter: @underware、Instagram: @underwarefoundry)。読む Underware 初の COLRv1 リリースについて詳しくは、ブログ投稿をご覧ください。

画像の置き換えが不要(絵文字フォント)

ユーザー作成コンテンツをサポートしている場合、ユーザーは絵文字を使うのが一般的です。今日 テキストをスキャンして、画像で検出された絵文字を置き換えて 一貫したクロス プラットフォームでのレンダリングと、 絵文字を選択できます。これらの画像はテキストに戻す必要があります。 。具体的な例を見てみましょう。

<ph type="x-smartling-placeholder">
</ph> 
チャット履歴に img タグとしてインライン画像とメタデータを表示するコード スニペット
Google Chat の画像置換

絵文字フォントがある場合は、次のようにテキストをフォント内にレンダリングします。

<style>
@import url(https://fonts.googleapis.com/css2?family=Noto+Color+Emoji);

.emoji {
  font-family: "Noto Color Emoji", sans-serif;
}
</style>
<span class="emoji">🙂</span>

同様に、絵文字のリアクション コンポーネントでも、COLRv1 では 画像アセットのカタログではなくコンパクトなフォント ファイルを使用します

絵文字
GitHub で使用されている選択ツール UI
絵文字 GitHub の Reaction Picker

完全な絵文字選択ツールを作成するために取得する必要がある画像の数を想像してみてください。

アイコン フォントの色

アイコン フォントに色を使用すると、グリフが明瞭になり、グリフがわかりやすくなります。

<ph type="x-smartling-placeholder">
</ph>3 回
黒の枠線付きの緑色のアイコン<ph type="x-smartling-placeholder">
</ph> https://fonts.google.com/icons のマテリアル ツートーン アイコン

芸術的表現

スペース効率の高いカラーフォントにより、テキストで新たな形の芸術表現を実現 できます。この Kufi スタイルのアラビア フォントの例では、カラー グラデーションを 伝統的な書道の筆の流れが芸術としてどのように解釈されているか アラビア語のクフィ文体に当てはめてみましょう ペン先とインクで書かずに石に刻まれないようにします。

アラビア語
黒から赤へのグラデーションで描かれた文字です。
Reem Kufi Ink 氏、 アラビア語フォント(Khaled Hosny)

機能検出

現時点では ブラウザ エンジンが特定の色をサポートしているか フォント形式は、ユーザー エージェント スニッフィングや、 ChromaCheck などのライブラリ @PixelAmbacht: 色のレンダリングをテスト キャンバス上のグリフどちらのソリューションも最適ではありません。機能テストでは 特定の機能だけに限定し、ユーザー エージェントの傍受を回避できます。ChromaCheck リソースを大量に消費する 2D キャンバス オペレーションを サポートを決定する要素です。

Chrome チームはこの状況を改善したいと考えており、いくつかの議論を始めている [12] CSS ワーキング グループに参加 JavaScript および JavaScript におけるブラウザ フォントの技術に関するサポートを 宣言的に行うことができます。チームは、効率的な機能検出のリリースを のカラー フォントやその他のフォント技術の変更を予定しています。

COLRv1 のときにプロジェクトでカラーフォントを使用したい場合 方法は 2 通りあります。「フォントを確認する」 モノクロのグリフも含まれる COLRv1 フォントのベンダーです。ユーザー エージェントを COLRv1 ではモノクロのレンダリングにフォールバックします 記述できます。または、ChromaCheck ライブラリまたはユーザー エージェントを使用することもできます。 COLRv1 がサポートされているか判断します。次に CSS とオーディエンスの ユーザー エージェントのサポートで COLRv1 フォントを読み込み、代替フォントを使用する (COLRv0、ビットマップ フォント形式、他のブラウザでは OpenType SVG など)がサポートされています。

CSS フォントパレットのサポート

別の色のセットを使用するときも、 新しいフォントが必要になりました。幸いなことに、 font-palette の CSS プロパティ:「 現在 Chrome チームが Chrome のフォントパレットのサポートをご覧ください。

COLRv1 フォントと

COLRv1 フォントに興味がある場合は、フォント ベンダーに COLRv1 色についてお問い合わせください 例とデモをお試しください。 実際に試してみてはいかがでしょうか。 独自の制作方法

Chrome の COLRv1 に関するフィードバックがある場合は、 blink-dev メーリング リスト Issue Tracker で問題を報告してください。フィードバックがある場合 問題がある場合は、 COLRv1 仕様の GitHub リポジトリ

Chrome 98 では、COLRv1 によってまったく新しいレベルの ウェブへのタイポグラフィの創造性です

その他の情報

さらに詳しい情報については、以下のリソースをご覧ください。

COLRv1 の仕組みと Chrome での実装方法については、Dominik による BlinkOn 15 カンファレンス トークをご覧ください。

謝辞

Behdad Esfahbod、Cosimo Lupo、Peter Constable、Ben Wagner、Werner に心より感謝します Lemberg、Dave Crossland、Vladimir Levantovsky、Jonathan Kew、Laurence Penney Chris Lilley、David Jonathan Ross、Underware、Just van Rossum、Roel Nieskens、 COLRv1 に協力してもらいました