タイポグラフィオプションの有効化と無効化
ユーザーインターフェースの要素を有効または無効にするための設定がいくつかあります。これらのプロパティはすべてブール値を受け入れ、true
またはfalse
に設定できます。
すべてのブロックがすべてのタイポグラフィ設定をサポートするわけではありません。一部は特定のブロックに特有です。たとえば、dropCap
プロパティは段落ブロックにのみ機能します。他のプロパティは、customFontSize
のように、テキストを含むほぼすべてのブロックで広く使用されます。
これらのsettings.typography
プロパティを使用すると、インターフェースの機能を有効または無効にできます:
customFontSize
: ユーザーがカスタムフォントサイズを入力できるかどうか。デフォルトはtrue
です。dropCap
: ユーザーが段落ブロックの最初の文字にドロップキャップを有効にできるかどうか。デフォルトはtrue
です。fontStyle
: ユーザーがカスタムフォントスタイルを選択できるかどうか。デフォルトはtrue
です。fontWeight:
ユーザーがカスタムフォントウェイトを選択できるかどうか。ウェイト範囲は標準のThinからBlackフォントウェイトにマッピングされます。デフォルトはtrue
です。letterSpacing
: ユーザーがカスタムレター間隔値を入力できるかどうか。デフォルトはfalse
です。lineHeight
: ユーザーがテキストのカスタム行間を入力できるかどうか。行間プリセットを登録する方法はないため、このオプションは完全にカスタム入力を有効にします。デフォルトはfalse
です。textColumns
: ブロックのテキストに対して列オプションを表示するかどうか。デフォルトはfalse
です。textDecoration
: ユーザーがブロックのテキストの装飾を設定できるかどうか。利用可能なオプションはNone、Underline、およびStrikethroughです。デフォルトはtrue
です。textTransform
: ユーザーがブロックのテキストの文字ケースを変更できるかどうか。利用可能なオプションはNone、Uppercase、Lowercase、およびCapitalizeです。デフォルトはtrue
です。writingMode
: インターフェースでテキストのOrientationを有効にし、ユーザーがHorizontalとVerticalのテキストを選択できるようにするかどうか。デフォルトはfalse
です。
これらのタイポグラフィ設定がデフォルトのWordPress theme.json
でどのように見えるかは次のとおりです:
{
"version": 2,
"settings": {
"typography": {
"customFontSize": true,
"dropCap": true,
"fontStyle": true,
"fontWeight": true,
"letterSpacing": true,
"lineHeight": false,
"textColumns": false,
"textDecoration": true,
"textTransform": true,
"writingMode": false
}
}
}
このスクリーンショットでは、すべての設定が有効になっている段落ブロックのTypographyパネルに注意してください:
テーマのオーディエンスに応じて、ユーザーが必要とする機能のみを有効にすることをお勧めします。たとえば、フォントサイズを設定する必要があるクライアントがいる場合、彼らのワークフローを妨げるようなすべての設定を表示するのは意味がありません。
ドロップキャップに関する注意:現在の実装機能は、異なるフォントファミリー、フォントサイズ、および行間で著しくバグが多いです。この機能を有効にしたままにする場合は、ドロップキャップがテーマのデザイン内で良好に見えることをテストしてください。テーマに合わせるためにカスタムCSSを追加する必要があるかもしれません。
カスタムフォントファミリー
WordPressでは、settings.typography.fontFamilies
プロパティを使用して、任意の数のフォントファミリーを登録できます。システムフォント(訪問者のコンピュータに存在するフォント)やウェブフォント(テーマにバンドルされたカスタムフォント)の両方をサポートすることができます。このセクションでは、これらの両方を登録する方法を学びます。
これらは、フォントを選択できるブロックのインスペクターパネルのTypography > Fontフィールドの下にオプションとして表示されます:
- **`````name`````:** (必須) フォントファミリーの人間が読めるタイトルで、翻訳可能です。
- **`````slug`````:** (必須) サイズのスラッグで、生成されたCSSカスタムプロパティに追加されます:`````--wp--preset--font-family--{slug}`````。
- **`````fontFamily`````:** (必須) CSS `````font-family`````値にマッピングされる有効な値です。一般的に、これはフォントスタック(ブラウザが順番に使用しようとするファミリーのリスト)になります。
- **`````fontFace`````:** (オプション) `````@font-face````` CSS at-ruleにマッピングされたフォントフェイスの配列です。これは、テーマにカスタムウェブフォントをバンドルする際にのみ使用する必要があります。
フォントファミリー設定がデフォルトのWordPress `````theme.json`````でどのように見えるかは次のとおりです:
``````bash
{
"version": 2,
"settings": {
"typography": {
"fontFamilies": []
}
}
}
`
次のサブセクションでは、最初にシステムフォントを登録する方法を学びます。次に、カスタムウェブフォントを登録する次のステップに進みます。
システムフォントの登録
システムフォントはウェブフォントよりも簡単です。使用したいフォントを知っているだけで済みます。この演習では、テーマで使用する2つのフォントを登録すると仮定しましょう:
- Primary: 現代のデバイスで見栄えの良いトランジショナルセリフフォントスタック。
- Secondary: ユーザーのシステムUIフォント。
このコードをtheme.json
に追加して、各フォントを登録します:
{
"$schema": "https://schemas.wp.org/trunk/theme.json",
"version": 2,
"settings": {
"typography": {
"fontFamilies": [
{
"name": "Primary",
"slug": "primary",
"fontFamily": "Charter, 'Bitstream Charter', 'Sitka Text', Cambria, serif"
},
{
"name": "Secondary",
"slug": "secondary",
"fontFamily": "system-ui, sans-serif"
}
]
}
}
}
これらのオプションは、機能をサポートする任意のブロックのTypography > Fontドロップダウンに表示されます。
WordPressは、エディタとフロントエンドの両方で--wp--preset--font-family--{$slug}
形式の2つのCSSカスタムプロパティを生成します:
body {
--wp--preset--font-family--primary: Charter, 'Bitstream Charter', 'Sitka Text', Cambria, serif;
--wp--preset--font-family--secondary: system-ui, sans-serif;
}
これらをvar:preset|font-family|$slug
として参照できます。 Styles in theme.json
として使用し始めるときに。CSS内でvar( --wp--preset--font-family--{$slug} )
を使用して直接参照することもできます。
フォントファミリースラッグのセマンティック命名スキームを使用することを一般的にお勧めします。これにより、子テーマ、スタイルのバリエーション、さらにはテーマ間で切り替える際に将来にわたってより耐久性があります。これらの例では、primary
とsecondary
を使用しています。これらは広く使用されている用語です。スラッグが現在のフォントファミリーと一致するように命名するのは避けるのが最善です。
ウェブフォント(フォントフェイス)の登録
カスタムウェブフォントの登録は、システムフォントとほぼ同じ方法で機能します。大きな違いは、フォントファミリーオブジェクトにfontFace
プロパティを追加する必要があることです。
fontFace
はフォントフェイスオブジェクトの配列でなければなりません。各オブジェクトは、@font-face
CSS at-ruleの記述子にマッピングされるこれらのプロパティを受け入れます:
fontFamily
: 有効なCSSfont-family
記述子。fontWeight
: CSSfont-weight
値の範囲。fontStyle
: 有効なCSSfont-style
値。fontStretch
: 有効なCSSフォントストレッチ値。src
: フォントファイルが格納されているフォントファイルURLの配列(複数のフォーマットをサポートするために使用できますが、1つだけが必要です)。
例を試してみましょう。前のセクションのコードを基に、システムUIフォントをOpen Sansウェブフォントに置き換えたいとします。
この例では、Open Sansフォントを最新の`````.woff2`````形式にダウンロードして変換したと仮定します。これはほとんどのブラウザで広くサポートされています。また、これらのファイルをテーマの`````/assets/fonts`````フォルダーに次のように配置しました:
- `````/assets
- `````/open-sans.woff2
/open-sans-italic.woff2
ウェブフォントがテーマにバンドルされ、準備が整ったら、これらを登録するためにtheme.json
ファイルにこのコードを追加します:
{
"$schema": "https://schemas.wp.org/trunk/theme.json",
"version": 2,
"settings": {
"typography": {
"fontFamilies": [
{
"name": "Primary",
"slug": "primary",
"fontFamily": "Charter, 'Bitstream Charter', 'Sitka Text', Cambria, serif"
},
{
"name": "Secondary",
"slug": "secondary",
"fontFamily": "'Open Sans', sans-serif",
"fontFace": [
{
"fontFamily": "Open Sans",
"fontWeight": "300 800",
"fontStyle": "normal",
"fontStretch": "normal",
"src": [ "file:./assets/fonts/open-sans.woff2" ]
},
{
"fontFamily": "Open Sans",
"fontWeight": "300 800",
"fontStyle": "italic",
"fontStretch": "normal",
"src": [ "file:./assets/fonts/open-sans-italic.woff2" ]
}
]
}
]
}
}
}
システムフォントと同様に、WordPressはウェブフォントのCSSカスタムプロパティを生成します。CSS出力は次のようになります:
body {
--wp--preset--font-family--primary: Charter, 'Bitstream Charter', 'Sitka Text', Cambria, serif;
--wp--preset--font-family--secondary: 'Open Sans', sans-serif;
}
カスタムフォントサイズ
WordPressでは、テーマユーザーが選択できる任意の数のプリセットフォントサイズを登録できます。カスタムサイズを登録することで、テーマ全体で一貫したタイポグラフィを維持しやすくなります。
カスタムフォントサイズは、機能をサポートするブロックのインスペクターコントロールのTypography > Sizeパネルにオプションとして表示されます:
カスタムサイズが5つを超える場合、UIは上記のスクリーンショットに表示されているボタングループの代わりにドロップダウンセレクトを表示します。
フォントサイズに関連する2つのtheme.json.settings.typography
サブプロパティがあります:
fluid
: 大きな画面で拡大し、小さな画面で縮小する流動的なフォントサイズを有効にするかどうか。これは個々のカスタムサイズに対してオーバーライドできます。デフォルトはfalse
です。fontSizes
: ユーザーが選択できる利用可能なプリセットをカスタマイズするために使用できるフォントサイズオブジェクトの配列。WordPressはsmall
、medium
、large
、およびx-large
のデフォルトサイズを登録します。
これらのプロパティがデフォルトのWordPress theme.json
でどのように見えるかは次のとおりです:
{
"version": 2,
"settings": {
"typography": {
"fluid": false,
"fontSizes": [
{
"name": "Small",
"slug": "small",
"size": "13px"
},
{
"name": "Medium",
"slug": "medium",
"size": "20px"
},
{
"name": "Large",
"slug": "large",
"size": "36px"
},
{
"name": "Extra Large",
"slug": "x-large",
"size": "42px"
}
]
}
}
}
ご覧のとおり、WordPressはデフォルトで流動的なフォントサイズを無効にし、独自の4つの静的サイズを登録します。ほとんどの場合、これらをテーマのデザインに一致するサイズで上書きすることをお勧めします。
``````bash
body {
--wp--preset--font-size--small: 13px;
--wp--preset--font-size--medium: 20px;
--wp--preset--font-size--large: 36px;
--wp--preset--font-size--x-large: 42px;
}
`
WordPressは、.has-{$slug}-font-size
命名スキームを使用して、各フォントサイズプリセットのカスタムCSSクラスも生成します。デフォルトサイズはこれらのクラスを生成します:
.has-small-font-size{
font-size: var(--wp--preset--font-size--small) !important;
}
.has-medium-font-size{
font-size: var(--wp--preset--font-size--medium) !important;
}
.has-large-font-size{
font-size: var(--wp--preset--font-size--large) !important;
}
.has-x-large-font-size{
font-size: var(--wp--preset--font-size--x-large) !important;
}
流動的なタイポグラフィの有効化
現代のウェブデザインでは、ほぼ常に流動的なタイポグラフィを利用します。これにより、フォントサイズがビューポートやコンテナに応じて拡大または縮小します。
WordPressは流動的なタイポグラフィのためにビューポートベースのシステムを使用します。しかし、異なるものを使用したい場合は、コンテナベースのシステムなどを使用することもでき、無効のままにすることができます。
デフォルトのコアサイズを使用したいが、すべてを静的値ではなく流動的にしたいとします。これを実現するには、settings.typography.fluid
をtrue
に設定します。theme.json
ファイルで:
{
"version": 2,
"settings": {
"typography": {
"fluid": true
}
}
}
WordPressは、登録されたフォントサイズの流動的なサイズを生成します:
body {
--wp--preset--font-size--small: 13px;
--wp--preset--font-size--medium: clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.852), 20px);
--wp--preset--font-size--large: clamp(22.041px, 1.378rem + ((1vw - 3.2px) * 1.983), 36px);
--wp--preset--font-size--x-large: clamp(25.014px, 1.563rem + ((1vw - 3.2px) * 2.413), 42px);
}
<a name="registering-custom-font-size-presets"></a>
### カスタムフォントサイズプリセットの登録
デフォルトに固執するのではなく、テーマのデザインに一致するフォントサイズを登録したいと思うでしょう。これを行うには、`````settings.typography.fontSizes`````プロパティにフォントサイズオブジェクトの配列を渡す必要があります。
これらのオブジェクトはそれぞれ、いくつかのプロパティを受け入れます:
- **`````name`````:** 翻訳可能なサイズの人間が読めるタイトル。
- **`````size`````:** 有効なCSSサイズ。これは数値と単位、`````clamp()`````を使用したカスタム流動サイズ、または他のカスタムCSSプロパティへの参照である可能性があります。
- **`````slug`````:** 生成されたCSSカスタムプロパティに追加されるサイズのスラッグ:`````--wp--preset--spacing--{slug}`````。
- **`````fluid`````:** この特定のサイズの流動的なタイポグラフィを有効または無効にするためのブール値で、グローバルプロパティを上書きします。代わりに、次の内容を含むオブジェクトである可能性があります:
- **`````min`````:** フォントサイズが縮小できる最小値。有効なCSSサイズでなければなりません。
- **`````max`````:** フォントサイズが拡大できる最大値。有効なCSSサイズでなければなりません。
まず、静的値を持つカスタムサイズの簡単なセットを登録しましょう。`````theme.json`````ファイルにこのコードを追加します:
``````bash
{
"$schema": "https://schemas.wp.org/trunk/theme.json",
"version": 2,
"settings": {
"typography": {
"fontSizes": [
{
"name": "Small",
"size": "1rem",
"slug": "sm"
},
{
"name": "Medium",
"size": "1.25rem",
"slug": "md"
},
{
"name": "Large",
"size": "1.5rem",
"slug": "lg"
}
]
}
}
}
`
デフォルトのサイズプリセットと同様に、WordPressはエディタとフロントエンドの両方で各サイズのCSSを自動的に生成します:
body {
--wp--preset--font-size--sm: 1rem;
--wp--preset--font-size--md: 1.25rem;
--wp--preset--font-size--lg: 1.5rem;
}
次に、これを一歩進めましょう。前の例では、Small、Medium、Largeサイズを登録しました。Smallサイズはブラウザのビューポート幅に関係なくその値を維持するようにしたいとします。しかし、MediumとLargeサイズはビューポートに合わせてスケールさせたいです。
``````bash
{
"$schema": "https://schemas.wp.org/trunk/theme.json",
"version": 2,
"settings": {
"typography": {
"fluid": true,
"fontSizes": [
{
"name": "Small",
"size": "1rem",
"slug": "sm",
"fluid": false
},
{
"name": "Medium",
"size": "1.25rem",
"slug": "md",
"fluid": {
"min": "1rem",
"max": "1.5rem"
}
},
{
"name": "Large",
"size": "1.5rem",
"slug": "lg",
"fluid": {
"min": "1.25rem",
"max": "2rem"
}
}
]
}
}
}
`
WordPressはこれらのCSSカスタムプロパティを生成します:
body {
--wp--preset--font-size--sm: 1rem;
--wp--preset--font-size--md: clamp(1rem, 1rem + ((1vw - 0.2rem) * 1.136), 1.5rem);
--wp--preset--font-size--lg: clamp(1.25rem, 1.25rem + ((1vw - 0.2rem) * 1.705), 2rem);
}
テーマに合わせてこれをカスタマイズする方法には多くの制限はありません。上記はカスタムフォントサイズを登録するためのイントロですが、テーマに対してどのように機能するかを完全に制御できます。
流動的なフォントサイズについてのより深い理解を得るには、Intrinsic design, theming, and rethinking how to design with WordPressをDeveloper Blogでお読みください。