カラースキーマ(color_scheme)の使い方

公開
カラースキーマ(color_scheme)の使い方


DawnのVersion10.0.0からカラースキーマ(color_scheme)が使えるようになりました!

カラースキーマの設定方法、使い方について解説します。

Dawn10.0.0リソースノート

リリースノート

カラースキーマの使い方

カラースキーマを使うにあたって編集するファイルは以下の3つになります。(test.liquidはオリジナルセクションです)

セクションだけではなくsettings_schema.json, settings_data.jsonも編集しないとエラーになるので注意してください

ファイル構造
config(設定)
L settings_schema.json
L settings_data.json

sections(セクション)
L test.liquid

settings_schema.json

([]のなかに追記する)

settings_data.json

("current": {}のなかに追記する)

test.liquid

セクションのスキーマに設定するだけだと使えない

test.liquidのスキーマを設定するだけだと画像のようなエラーになります。

スキーマエラー

エラー内容

配色を表示できません。配色は、settings_dataおよびsettings_schemaで定義する必要があります。 変更内容をプレビューするには、settings_dataとsettings_schemaファイルで配色を定義する必要があります。

要はsettings_data.jsonとsettings_schema.jsonにコードを追記する必要があります。

各ファイルの解説

settings_schema.json

settings_schema.jsonの解説

“type” : “color_scheme_group”はsettings_schema.json のみ設定できます。

①のdefinitionで設定した部分はここに反映されます↓↓

definitionで設定した部分

schemaのtypeは[header, color, color_background]の3つが使えます。

②のroleの部分はここに反映されます↓↓

roleで設定した部分

roleは①で設定した色を配色してプレビューしてくれます。

roleで設定した部分

オレンジの部分に①のdefinitionで設定したidを入れることで下記画像のように配色されます

配色プレビューの参考

※roleの設定は必須なので必ず設定しましょう
roleについて詳しくはこちら

settings_data.json

配色したものがjson形式で保存されるファイルになります。
あらかじめ1つ以上設定しておかないとエラーになります。

1つ定義しておけば編集や追加ができるのでコードを"current": {}の中に記述しましょう!

settings_data.jsonに記載するコード

test.liquid

color_schemeを設定した際の管理画面での見え方↓↓

color_schemeを設定した際の管理画面での見え方

出力方法

color_schemeを出力する

カラーコードを出力したい場合は
{{ section.settings.color_scheme.settings.〇〇 }}
〇〇の部分はsettings_data.jsonで設定したdefinitionのなかのidを指定してあげればいいです!!

id探すの面倒な場合は
{{ section.settings.color_scheme.settings }}
で一覧が表示されるのでそれでidを確認するのもいいかと思います!

color_schemesオブジェクト

color_scheme_groupオブジェクト

Dawnだとこんなふうに使われている

theme.liquidにこんな記述があります

何これ??はてな?って感じですが。

css変数を使っているみたいで(:root使っている)
各「color-カラースキーマのid」のクラスに対して色を入れているみたいです。

css変数とカラースキーマを使って動的に色が変わるようにしているイメージですかね!

まとめ

正直あまり使うことはなさそうな気がします。(Dawnのようにcss変数見たいな使い方はできそうですが)
うまく使いこなせれば色の管理がしやすくなりそうですが(色の 実装でいい使用例がありましたら改めて共有しまーす! color_scheme単体じゃ使えないsettings_schema.json 、settings_data.jsonも設定しないといけない!と覚えていただければと思います。

Back to blog