タイポグラフィ
デジタルプロダクトは文字を中心に構成されるため、適切にタイポグラフィを扱うことは重要です。フォントやフォントサイズなどをリファレンストークンとし、UI上の役割に合わせてグループ化したシステムトークンを定義しています。
更新 2024/11/1
フォント
Serendieブランドは、欧文フォント「Roboto」、和文フォント「Noto Sans JP」を採用しています。Serendie Design Systemにおいてもそれを踏襲しつつ、等幅フォント「Noto Sans Mono」を追加しています。いずれのフォントもオープンソースであり、無償で商用利用可能です。
CSSで利用する
WebアプリケーションにおいてはGoogle FontsなどでWebフォントとして利用してください。Serendie UIにはバンドルされており、個別設定は不要です。
個別設定を行う場合は、下記を参考にCSSのfont-familyを記述し、システムフォントへのフォールバックを適切に設定してください。
body {
font-family: Roboto, "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif;
}
Figmaで利用する
Figmaではいずれのフォントもデフォルトで利用可能です。ただしFigmaでは和欧混植設定 (和文/欧文フォントの自動使い分け) がサポートされていないことに注意が必要です。現在のところSerendie Design Systemは、Figma上では常にRobotoを指定することを推奨しています。
Robotoは欧文フォントのため和文はサポートされていません。ただし、Figmaのフォントフォールバックにより、サポートされない箇所にはNoto Sansが自動適用されます。これにより、特別なプラグイン無しで、RobotoとNoto Sansの和欧混植が実現できます。混植のための細かな設定はできませんが、運用性の高さを優先しています。
フォントサイズ
フォントサイズ (font-size) は、可読性や視認性に大きく影響します。また見出しや本文など役割に応じて、フォントサイズを一貫させることや、サイズを変化させることでリズムを生むことも大切です。
Serendie Design Systemでは調和数列をベースにフォントサイズスケールを設計し、リファレンストークンとしています。デザイン上の使い勝手を考慮し、16px (medium) を基準としつつ、使用頻度の高いmedium未満 (10px〜14px) はスケール間隔を小さくし、ジャンプ率が求められるmedium以上 (18px〜64px) はスケール間隔を大きくしています。
参考文献
音楽、数学、タイポグラフィ - ÉKRITS
ウェイト
見出しや文章内の強調など、視覚的・意味的に強弱をつけたいときはウェイト (font-weight) を変化させます。通常 (regular) と太字 (bold) の2種類をリファレンストークンとして定義しています。数値はregularを400、boldを700としています。
行の高さ
行ボックスの高さ (line-height) は、文章の可読性や印象に影響します。normal (160%) を基準とし、ゆったりとした印象を与えるrelaxed (180%)、逆に情報量を優先させるtight (140%)、ボタンなどラベルテキストでの使用を想定した none (100%)の4パターンをリファレンストークンとして定義しています。
Figmaでの利用上の注意
他と同様にFigmaではVariablesとして定義されていますが、2024年11月現在のFigmaの仕様では、相対値を含むVariablesを行の高さに設定することができません。今後のアップデートで対応されると考え、現在のところVariablesを使わず直値指定で運用しています。
ロール
タイポグラフィは、フォント、ウェイト、サイズ、行の高さなどをグループ化し、グループごとに見出し、タイトル、本文、ラベルなど、UI上の役割を持つことが特徴です。これらをシステムトークンとして定義しています。
Display
最も大きなフォントサイズを使用し、視覚的に印象付ける役割を持ちます。表現を重視するプロダクトにおいて、PCなど比較的大きなブラウザ幅で用います。Displayロールは、smallとmediumの2つのサイズを持ちます。
Headline
ページや文章を端的に表す大見出しとして用います。ブラウザ幅に関わらず利用頻度の高いロールです。Headlineロールは、small/medium/largeの3つのサイズを持ちます。
Title
Headlineよりも小さめの小見出しとして用います。HeadlineやBodyとセットで使われることが多いため、デフォルトのウェイトを太くすることで強弱をつけています。extraSmall/small/medium/largeの4つのサイズを持ちます。
Body
複数行からなる本文として用います。extraSmall/small/medium/largeの4つのサイズを持ち、特にmediumサイズは、サイト全体のテキストの基準サイズとなります。extraSmallサイズのみ、複数行からなる補足文に使うことを想定しており、行の高さを狭め (tight) にしています。
Label
Buttonなどコンポーネント内のテキストや、入力フォームのラベルに用います。Labelはsmall/medium/large/extraLargeの4つのサイズを持ちます。いずれも行の高さは100% (none) にしており、単行を想定しています。文章が折り返されたり、改行が入る場合は、Bodyを使ってください。
Figmaでの利用上の注意
Figma Variablesはグループ化されたトークン (Composit Tokenと呼ばれます) に現在対応していません。そのため、タイポグラフィのシステムトークンはVariablesではなくText Stylesとして定義しており、他と適用方法が異なることに注意してください。
ブラウザ・画面幅に応じた基準サイズの変更
Bodyロールのmediumサイズは、ページ本文に用いることを想定しており、これをフォントサイズの基準として扱います。
ただしこの基準サイズは、ブラウザ幅によって変化するのが一般的です。Serendie Design Systemでは、ブラウザ幅がCompact (モバイル) の場合は16px、Expanded (PC) の場合は14pxを基準としています。これを基準として、全ロールが相対的にフォントサイズが変わることに注意してください。
Serendie Design Systemでは、これをVariableモードとして扱います。Themingと同様に、ページやセクション、フレームなどにモード (Expanded/Compact) を割り当てることで、基準サイズを変更できます。
デフォルトはCompactモード(モバイル)です。 Expanded(PC)用の画面をデザインするときには、ページ全体をExpandedモードに変更してください。