block image

WordPress 6.5 box shadow 追加予定

WordPress 6.5では、シャドーをメニューから追加できるのは、画像ブロック、カラムブロック、ボタンブロックに限定されます。

他のブロックでもシャドーを使いたい

シャドーが有効で、Theme.jsonで settings.shadow.presetをセットしていない場合には、コアは、以下の5種類のCSS変数を作成します。

--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);
--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);
--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);
--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);
--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);

なので、この変数を使用したクラスを準備しておくと、「高度な設定」「追加CSSクラス」から、シャドーを何時でも追加できるようになります。

因みに、emulsion テーマでは、以下のクラスを用意しています。

.is-style-shadow-natural{
    filter: drop-shadow(var(--wp--preset--shadow--natural));
}
.is-style-shadow-deep{
    filter: drop-shadow(var(--wp--preset--shadow--deep));
}
.is-style-shadow-sharp{
    filter: drop-shadow(var(--wp--preset--shadow--sharp));
}
.is-style-shadow-outlined{
    filter: drop-shadow(var(--wp--preset--shadow--outlined));
}
.is-style-shadow-crisp{
    filter: drop-shadow(var(--wp--preset--shadow--crisp));
}

theme.jsonでシャドーのカスタムプリセット

例えば、テーマでのカスタムプリセットを記述した場合、上記の5つの変数に加えて、以下の3つの変数が追加されます。

{
	"version": 2,
	"settings": {
		"shadow": {
			"presets": [
				{
					"name": "Small",
					"slug": "sm",
					"shadow": "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)"
				},
				{
					"name": "Medium",
					"slug": "md",
					"shadow": "0 4px  10px 0 rgba( 0, 0, 0, 0.3 )"
				},
				{
					"name": "Large",
					"slug": "lg",
					"shadow": "0 8px  15px 0 rgba( 0, 0, 0, 0.3 )"
				}
			]
		}
	}
}

{
    "version": 2,
    "styles": {
        "blocks": {
            "core/image": {
                "shadow": "var( --wp--preset--shadow--lg )"
            }
        }
    }
}