Color mode

Search notes

Filter with tag:, lang:, or path:.

CSSの取り決め(CSS Contract)

コンポーネントが依存してよい、安定したCSSのフックとカスケードの順序です。テーマは文書化されたフック(rb-*とrr-*)を公開するため、コンポーネントは特定のテーマを前提にせずにスタイルを当てられます。

安定したフック

クラス名の名前空間は2つあります。

  • rb-* — フレームワークが提供する構造のフックとセマンティックデザイントークン(.rb-theme-root、.rb-site、.rb-article、.rb-article-bodyなど)
  • rr-<feature> — プラグインが描画する最も外側の要素に付くルートフック(.rr-search、.rr-calloutなど)

カスケード順

読み込み順は、テーマのCSSがプラグインの既定スタイルに勝ち、userCssが最後の上書きになることを保証します。

フレームワークの構造CSS → base/appの構造CSS → プラグインの既定CSS → テーマのCSS → 設定のトークンによるインラインスタイル → userCss

Diagram source
text
flowchart TD
  Base[base/appの構造CSS]
  Plugin[プラグインの既定CSS]
  Theme[テーマのCSS]
  Token[設定トークンのインラインスタイル]
  User[userCss]
  Base --> Plugin
  Plugin --> Theme
  Theme --> Token
  Token --> User

カスケード順の検証

保証されるカスケード順は、フレームワークの構造CSS → base/appの構造CSS → プラグインの既定CSS → テーマのCSS → 設定のトークンによるインラインスタイル → userCssです。この順序は@riebeckite/honoxが強制し、レイヤーごとに別々のスタイルシートを生成して、ヘッダーのコメントでカスケード上の位置を示します。userCssは最後の上書きで、サイト固有の小さな調整に適しています。

テーマCSSの書き方

テーマは安定したフックと、文書化された子孫要素にだけスタイルを当ててください。新しいrb-*/rr-*のクラス名を考案しないでください。対象にするのは.rb-site、.rb-article、.rb-article-layout、.rb-article-header、.rb-article-body、.rb-article-content、.rb-article-meta、.rb-article-footer、.rb-sidebar、および各プラグインが文書化したrr-*のルートフックだけです。BEMの要素(__…)と修飾子(--…)は内部実装の詳細です。

関連用語

さらに詳しく

Local Graph

Nearby Notes

Open in Explorer →
CSSの取り決め(CSS Contract)テーマ(Theme)デザイントークン(Design Token)タイポグラフィ(Typography)カラーモード(Color Mode)
CurrentOutgoingBacklink