🏗️ テーマ基盤中級
style タグ内の CSS フォーマット
Liquid の {% style %} タグ内に記述された CSS を自動的にフォーマットするスニペット。printWidth や useTabs などのフォーマット設定に対応し、Liquid 変数を含む CSS でも適切にインデント処理する。
用途
テーマに埋め込んだ CSS を整形して可読性を高めたいとき。特に Liquid 変数が混在する動的 CSS の整形に有効。
設置場所
theme.liquid の <head> 内または個別の section / snippet 内に記述する。{% style %} タグで囲んだ CSS ブロックとして Prettier などのフォーマッタが自動処理する。
注意点
Liquid 変数が CSS の値に含まれている場合(例: `background-color:{{setting.color}}`)、CSS パーサが失敗してインデント調整にフォールバックする動作が設計上の仕様。printWidth を 20 文字など極端に短くするとセレクタが分割されるため、実運用では 80〜100 文字程度が実用的。calc() 関数内に Liquid フィルタを含むとパーサが混乱する可能性があるため、複雑な計算値は CSS 変数(--variable)経由で定義するほうが安定する。
コード
30 行 / liquidIt should pretty print CSS inside style tags
printWidth: 20
{% style %}
.class,#id,html,body{background-color:green;width:100%}
.container{display:flex;}
{% endstyle %}
It should fallback to reindenting when it doesn't parse
printWidth: 20
{% style %}
.class,#id,html,body{background-color:{{setting.color}};width:100%}
.container{display:flex;}
{% endstyle %}
It should reindent with tabs when useTabs is true
useTabs: true
{% style %}
.class,#id,html,body{background-color:{{setting.color}};width:100%}
.container{display:flex;}
{% endstyle %}
It should fallback to reindenting when it contains liquid in calc. (somehow this parses!)
{%- style -%}
@media screen and (max-width: 749px) {
.collection-hero--with-image .collection-hero__inner {
padding-bottom: calc({{ settings.media_shadow_vertical_offset | at_least: 0 }}px + 2rem);
}
}
{%- endstyle -%}
出典・ライセンス
- Source:
- Shopify/theme-tools/packages/prettier-plugin-liquid/src/test/embed-liquid-style-tag/index.liquid
- Repository:
- https://github.com/Shopify/theme-tools
- License:
- MIT
このコードは Shopify 著作の MIT ライセンスソースです。 原本の著作権は Shopify が保有します。日本語訳は ALSEL によるものです。
関連項目
🏗️ テーマ基盤中級
セクションスキーマのカスタムブロック定義
セクションの schema ブロック内でカスタムブロックタイプを定義する方法を示すサンプル。@theme と _private というプレフィックスで異なるブロック種別を宣言する。
📁 theme-tools·MIT·7 行
🏗️ テーマ基盤初級
セクション呼び出しのフォーマット
Liquid の section タグを複数行に記述する際の正しいフォーマット例。タグ名を改行で分割しても正しく認識される書き方を示す。
📁 theme-tools·MIT·7 行
🏗️ テーマ基盤初級
レイアウトテンプレートの指定
Liquid の `layout` タグを使い、テーマのレイアウトファイルを指定する構文。複数のレイアウト候補と whitespace 制御(ダッシュ記号)の使い方を示す。
📁 theme-tools·MIT·8 行
🏗️ テーマ基盤上級
Liquid フォーマッター互換のセクション表記
Prettier Liquid プラグインのテストケースで、セクションタグの様々な書式を検証する。異なる間隔・改行・ホワイトスペーストリミングの組み合わせでもセクション名が崩れないことを確認する。
📁 theme-tools·MIT·9 行
🏗️ テーマ基盤初級
基本的なHTMLレイアウト
Prettier Liquid プラグインのテスト用に作られた最小限の HTML テンプレート。DOCTYPE から body タグまでの基本的なドキュメント構造を示す。
📁 theme-tools·MIT·10 行
🏗️ テーマ基盤上級
layout タグのフォーマット
Liquid の layout タグの書式をコード品質ツール(Prettier)でフォーマットするテストケース。スペースや改行位置の違いを正規化し、レイアウト名が壊れないことを検証する。
📁 theme-tools·MIT·10 行