ブロックテーマをいろいろと眺めていたら、「設定の名前(スラグ)が結構バラバラだなぁ」、ということは、スタイルコードに「–wp–preset–〇〇」を使っても、テーマ変えたら台無しになってしまうのでは?という疑問が湧きました。
どのテーマでも共通で使われている設定スラグって何?ということで調べるも、明快な回答は見つけられず、結構な時間を費やした結果、「global-styles」で吐き出されてることが発覚(遅い?)。
まあ結果的にデベロッパーツールで見れば一目瞭然ではあるものの、WordPress 6.3時点でのデフォルト?スラグをメモとして公開しておきます。
なお、クラシックテーマなどでGlobal Styleの出力を無効にしている場合には出力されないのでご注意ください。
プリセット値?という方は文末の「CSSでのプリセット値の使い方」をご覧ください。
WordPressのデフォルトスタイルって?
「デフォルト」とあえて書きましたが、用語としては「グローバルスタイル」と呼びます。これは前述したような無効にする措置をしていない限り、全ページのヘッダーに「global-styles-inline-css」というIDで出力されます。
余談ですが、「global-styles-inline-css」は「global-styles」というスタイルシートの読み込みに追加するインラインでのスタイルコード出力です
有効化しているブロックテーマの「theme.json」で特に上書きするよう指定していない、または、追加の記述がない場合には、WordPress 6.3では以下のようなデフォルトスタイルが出力されます。
※以下共通して、〇〇が「theme.json」でいう「slug」の値、△△が適用される値として表示しています
色に関するもの
単色
--wp--preset--color--〇〇: △△;
slug(〇〇) | 値(△△) |
---|---|
black | #000000 |
cyan-bluish-gray | #abb8c3 |
white | #ffffff |
pale-pink | #f78da7 |
vivid-red | #cf2e2e |
luminous-vivid-orange | #ff6900 |
luminous-vivid-amber | #fcb900 |
light-green-cyan | #7bdcb5 |
vivid-green-cyan | #00d084 |
pale-cyan-blue | #8ed1fc |
vivid-cyan-blue | #0693e3 |
vivid-purple | #9b51e0 |
base | #ffffff |
contrast | #000000 |
primary | #9DFF20 |
secondary | #345C00 |
tertiary | #F6F6F6 |
グラデーション
--wp--preset--gradient--〇〇: △△;
slug(〇〇) | 値(△△) |
---|---|
vivid-cyan-blue-to-vivid-purple | linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%) |
light-green-cyan-to-vivid-green-cyan | linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%) |
luminous-vivid-amber-to-luminous-vivid-orange | linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%) |
luminous-vivid-orange-to-vivid-red | linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%) |
very-light-gray-to-cyan-bluish-gray | linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%) |
cool-to-warm-spectrum | linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%) |
blush-light-purple | linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%); |
blush-bordeaux | linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%) |
luminous-dusk | linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%) |
pale-ocean | linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%) |
electric-grass | linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%) |
midnight | linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%) |
vertical-secondary-to-tertiary | linear-gradient(to bottom,var(–wp–preset–color–secondary) 0%,var(–wp–preset–color–tertiary) 100%) |
vertical-secondary-to-background | linear-gradient(to bottom,var(–wp–preset–color–secondary) 0%,var(–wp–preset–color–background) 100%) |
vertical-tertiary-to-background | linear-gradient(to bottom,var(–wp–preset–color–tertiary) 0%,var(–wp–preset–color–background) 100%) |
diagonal-primary-to-foreground | linear-gradient(to bottom right,var(–wp–preset–color–primary) 0%,var(–wp–preset–color–foreground) 100%) |
diagonal-secondary-to-background | linear-gradient(to bottom right,var(–wp–preset–color–secondary) 50%,var(–wp–preset–color–background) 50%) |
diagonal-background-to-secondary | linear-gradient(to bottom right,var(–wp–preset–color–background) 50%,var(–wp–preset–color–secondary) 50%) |
diagonal-tertiary-to-background | linear-gradient(to bottom right,var(–wp–preset–color–tertiary) 50%,var(–wp–preset–color–background) 50%) |
diagonal-background-to-tertiary | linear-gradient(to bottom right,var(–wp–preset–color–background) 50%,var(–wp–preset–color–tertiary) 50%) |
文字に関するもの
文字サイズ
--wp--preset--font-size--〇〇: △△;
slug(〇〇) | 値(△△) |
---|---|
small | clamp(0.875rem, 0.875rem + ((1vw – 0.2rem) * 0.227), 1rem) |
medium | clamp(1rem, 1rem + ((1vw – 0.2rem) * 0.227), 1.125rem) |
large | clamp(1.75rem, 1.75rem + ((1vw – 0.2rem) * 0.227), 1.875rem) |
x-large | 2.25rem |
xx-large | clamp(4rem, 4rem + ((1vw – 0.2rem) * 10.909), 10rem) |
--wp--custom--typography--font-size--〇〇: △△;
slug(〇〇) | 値(△△) |
---|---|
huge | clamp(2.25rem, 4vw, 2.75rem) |
gigantic | clamp(2.75rem, 6vw, 3.25rem) |
colossal | clamp(3.25rem, 8vw, 6.25rem) |
文字種
--wp--preset--font-family--〇〇: △△;
slug(〇〇) | 値(△△) |
---|---|
dm-sans | “DM Sans”, sans-serif |
ibm-plex-mono | ‘IBM Plex Mono’, monospace |
inter | “Inter”, sans-serif |
system-font | -apple-system,BlinkMacSystemFont,”Segoe UI”,Roboto,Oxygen-Sans,Ubuntu,Cantarell,”Helvetica Neue”,sans-serif |
source-serif-pro | “Source Serif Pro”, serif |
その他装飾に関するもの
空白行
--wp--preset--spacing--〇〇: △△;
slug(〇〇) | 値(△△) |
---|---|
30 | clamp(1.5rem, 5vw, 2rem) |
40 | clamp(1.8rem, 1.8rem + ((1vw – 0.48rem) * 2.885), 3rem) |
50 | clamp(2.5rem, 8vw, 4.5rem) |
60 | clamp(3.75rem, 10vw, 7rem) |
70 | clamp(5rem, 5.25rem + ((1vw – 0.48rem) * 9.096), 8rem) |
80 | clamp(7rem, 14vw, 11rem) |
--wp--custom--spacing--〇〇: △△;
slug(〇〇) | 値(△△) |
---|---|
small | max(1.25rem, 5vw) |
medium | clamp(2rem, 8vw, calc(4 * var(–wp–style–block-gap))) |
large | clamp(4rem, 10vw, 8rem) |
outer | var(–wp–custom–spacing–small, 1.25rem) |
影
--wp--preset--shadow--〇〇: △△;
slug(〇〇) | 値(△△) |
---|---|
natural | 6px 6px 9px rgba(0, 0, 0, 0.2) |
deep | 12px 12px 50px rgba(0, 0, 0, 0.4) |
sharp | 6px 6px 0px rgba(0, 0, 0, 0.2) |
outlined | 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1) |
crisp | 6px 6px 0px rgba(0, 0, 0, 1) |
行の高さ
--wp--custom--typography--line-height--〇〇: △△
slug(〇〇) | 値(△△) |
---|---|
tiny | 1.15 |
small | 1.2 |
medium | 1.4 |
normal | 1.6 |
基本として指定されているのはたったこれだけで、あとはそれぞれのテーマの「theme.json」で定義されているということなんですね。
原則スタイルコードでプリセット指定されていても、訪ね当たる値がなければ無視されるわけですが、自作テーマやプラグインでプリセット値を指定する場合は、上記の値を使用するのが、テーマ変更やプラグイン変更などで影響を与えない配慮として必要でしょう。
CSSでのプリセットの使い方
CSSに記述するスタイルコードでは、文字の大きさや種類、色などいろいろなことを書きますね。
例えば段落タグに文字種、文字サイズ、文字色を指定する場合はこんな感じ。
p{
font-family:〇〇;
font-size:〇〇;
color:〇〇;
}
この中の文字サイズを示す「font-size」を例に挙げると、〇〇の値には「〇〇px」とか「〇〇em」とか「〇〇rem」などを指定すると思います。
スタイルコードは全体に作用させたり、特定のクラスを持つ要素に作用させたりできるので便利な反面、指定を細かくするほど改修時に苦労します。知らずに指定されている値に対して別のスタイルコードで上書きを繰り返していたりして、だんだん分からなくなっていくこともあります。
でも、グローバルスタイルのプリセット値を使うと、これが一機に解消されるんです。
例えば前述の「font-size」に対しては、WordPressのグローバルスタイルでは以下の値(スラグ)が定義されています。
- 「–wp–preset–font-size–small」
- 「–wp–preset–font-size–medium」
- 「–wp–preset–font-size–large」
- 「–wp–preset–font-size--x-large」
- 「–wp–preset–font-size–xx-large」
これが、ブロックエディターの段落ブロックなどを挿入した時に出てくる「タイポグラフィ」というところに反映され、ボタンをクリックするとそれに応じたサイズに文字が拡縮するという仕組みになっています。
これを使って特定の要素の文字サイズを指定する場合は以下のように記述します。
font-size:var(--wp--preset--font-size--medium) !important;
最後の「!important」は適用されないときに優先させるためのものなので、必要な場合と不要な場合があるものの、上のコードであれば、「medium」に指定している文字サイズで表示されるようになります。
どんなプリセット値があるのかは前項の一覧をご覧ください
この文字サイズの指定は、一応前述のグローバルスタイルとして基礎定義されているのですが、ブロックテーマにある(クラシックテーマに挿入して「ハイブリッドテーマ」と呼ばれることもある)、「theme.json」というファイルから、上書きしたり追加したりすることが可能なので、プリセット値で指定しておけば、「theme.json」の値を変えたらすべての同じ要素が一括で変更できるんです。
つまり、予めプリセット値のあるものはプリセット値で指定しておくことで、後々いろいろなコードを修正する必要がない、便利な機能なんですね。
ちなみに、ブロックテーマでは、この値を「theme.json」で変更しなくても、サイトエディターの半月マークをクリックしてGUI上で編集することで上書きすることもできるので、「theme.json」なんて知らんし..という方にも配慮されています。本当にWordPressっていろいろと考えられてるんですね。
補足として、サイトエディターのグローバルスタイルで編集した場合、そのサイトでのスタイルということになり、別のサイトを作った時に流用というのがしにくくなる(厳密にはテーマのエクスポートで継承できるがちょっとややこしい)ので、「theme.json」の扱い方は覚えておいた方がいいかも知れません。
以下のページで「theme.json」の編集をちょっとしやすくするプラグインを配布してますので、よかったらどうぞ。
コメントを残す