テーマのCSSでビルダーコンテンツをスタイルする.
DXPR Builderコンテンツはテーマがレンダリングするページの一部であり、テーマのCSSがエディターと公開ページの両方にスタイルします。多くのエレメントやページで繰り返す見た目や、エレメント設定では実現できない見た目に使います。最終的にテーマ内のスタイルシートと、編集者が適用できるクラスができます。1つのエレメントには設定ダイアログを使います。
始める前に
- テーマのファイルへのアクセスとデプロイ方法が必要です。
- カスタムテーマまたはサブテーマを使います。コントリビュートテーマのアップデートはそのファイルを置換し、CSSも一緒に置換されます。
セットアップ
-
テーマのフォルダーに
css/custom.cssを作成します(例:themes/custom/mytheme/css/custom.css)。 -
ファイルを
mytheme.libraries.ymlに宣言します。global-styling: css: theme: css/custom.css: {} -
ライブラリーを
mytheme.info.ymlからすべてのページに読み込みます。libraries: - mytheme/global-styling -
独自のクラス名のルールを書きます。
.brand-hero { background: linear-gradient(135deg, #1a4d8f, #0f2a4d); color: #ffffff; } -
キャッシュはConfiguration > Development > Performance (
/admin/config/development/performance)でClear all cachesを使ってクリアするか、drush crを実行します。 -
ビルダーでSectionの設定を開き、
brand-heroをHTML classes配下に追加します。独自のクラスの入力方法はHTML IDとクラスをご覧ください。
テーマが一覧に掲載すれば、編集者はHTML classes一覧からクラスを選ぶこともできます。詳しくはユーティリティクラスをご覧ください。
表示内容
クラスを追加するとすぐにセクションにグラデーションと白テキストが適用されます。エディターはテーマがレンダリングするページ上で動作するためです。ページ保存後、訪問者にも同じ表示になります。クラスはページのHTMLに保存されるため、後からルールを変更するとそのクラスのすべてのエレメントが更新されます。
DXPR Builderが書き込むクラス
独自のクラスが最も安全な対象です。保存されるHTMLには次のクラスもあります。
| セレクター | 一致対象 |
|---|---|
.az-container |
各DXPR Builderフィールドのラッパー。編集中は.dxpr-editorも付きます |
.az-section |
すべてのSection。内側には.containerまたは.container-fluid(Full widthオン時) |
.row |
すべてのRow。DXPR BuilderはBootstrap独自のクラスを使い、追加対象外:az-row |
.col-* |
すべてのカラム(例: .col-12.col-md-6)。該当なし:az-column |
.az-text, .az-image, .az-button, .az-card |
1つのエレメントタイプ。az-とエレメント名の組み合わせです(例: Divider用の.az-separator) |
.az-element |
ほとんどのコンテンツエレメント。Image、Icon、Buttonは除きます |
書き込むのはStyleパネルで、インラインstyle属性です。同じプロパティのクラスルールより優先されます。Bootstrapユーティリティクラスは!important付きで、両方より優先されます。
スタイルが表示されない場合
- クラスはエレメントにあるのに何も変わりません。ライブラリーが読み込まれていないか、キャッシュが古いCSSを保持しています。
mytheme.info.ymlにライブラリーが記載されているか確認し、/admin/config/development/performanceでキャッシュをクリアします。 - 一部のプロパティのみ適用されます。同じプロパティのStyleパネルの値が優先されます。エレメントのStyleパネルでその値をクリアするか、見た目全体をクラスに移します。
- エディターでは表示されるが訪問者には表示されません。 Apply text format filters to frontend contentがオンで、フィールドのテキストフォーマットが
class属性を除去しています。Text Filters配下(/admin/dxpr_studio/dxpr_builder/settings)でオフにするか、フォーマットでクラスを許可します。 - ルールが一致しないのは
.az-rowや.az-columnへの指定です。DXPR Builderはこれらのクラスを書き込みません。.row、.col-*クラス、独自のクラスを対象にします。
次のステップ
- ユーティリティクラス:HTML classes配下にクラスを一覧して編集者が選べるようにする。
- カスタムフォント:同じ方法でブランドフォントを読み込む。
- テキストエディター:Styles一覧で段落・単語用のクラスを提供する。