Color mode

Search notes

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

タイポグラフィ(Typography)

フォントファミリ、サイズ、行間といったサイトの組版設定です。テーマルートの data-typography 属性を通じて、テーマのプリセット(system、serif、sans)で適用します。

プリセット

system、serif、sans の3つのタイポグラフィプリセットがあります。プリセットはセマンティックなフォントトークン(--rb-font-body、--rb-font-heading、--rb-font-mono)に反映されます。プリセットを変えると、:root[data-typography=...] のCSSルールでフォントファミリが変わります。

記事レイアウト

タイポグラフィと記事レイアウトは連携してテキストの見せ方を決めます。data-typography 属性はテーマルート([data-theme-root] または <html>)に適用します。data-article-layout と組み合わせると、記事全体の見せ方が決まります。

タイポグラフィプリセットの種類

system、serif、sans の3つのプリセットがあります。プリセットはセマンティックなフォントトークン(--rb-font-body、--rb-font-heading、--rb-font-mono)に反映されます。フォントファミリの選択は、テーマ設定のプリセット(packages/core/src/types/theme_config.ts の ThemeTypographyPreset 型)で定義されます。

  • system — OS/システムの既定フォントを使う
  • serif — セリフフォントファミリを使う(例:Georgia、Libre Baskerville)
  • sans — サンセリフフォントファミリを使う(例:system-ui、Inter)

プリセットはテーマルートの :root[data-typography=...] CSSルールでフォントファミリを変えます。

テーマ設定からCSSへのトークンの流れ

タイポグラフィのトークンは、テーマ設定からテーマルートの data-typography 属性を通じてCSSへ流れます。プリセットが選ばれると、CSSルール [data-typography="serif"](または system/sans)がテーマルートを対象にし、フォントファミリの値を入れ替えます。コンポーネントのCSSを変えずに表示を変更でき、トークン名(--rb-font-body など)はそのままで、変わるのはフォントのマッピングだけです。

css
/* Example: serif preset applies */
:root[data-typography="serif"] {
  --rb-font-body: Georgia, serif;
  --rb-font-heading: "Libre Baskerville", serif;
  --rb-font-mono: "Source Code Pro", monospace;
}

data-article-layout と組み合わせると、記事全体の見せ方が決まります。

ThemeTypographyPreset型

packages/core/src/types/theme_config.ts の ThemeTypographyPreset 型は "system" | "serif" | "sans" のユニオン型です。この型は ThemeConfig で使い、テーマルートでのフォントファミリのマッピングを決めるタイポグラフィプリセットを選びます。

テーマルートのタイポグラフィCSS

プリセットは、テーマルートの data-typography 属性を使ったCSSルールに反映されます。:is(:root, .rb-theme-root)[data-typography="serif"] が、セマンティックトークン --rb-font-body、--rb-font-heading、--rb-font-mono のフォントファミリを入れ替えます。プリセットの変更は表示だけにとどまり、トークン名はそのままで、変わるのはフォントのマッピングだけです。

css
:is(:root, .rb-theme-root)[data-typography="serif"] {
  --rb-font-body: Georgia, serif;
  --rb-font-heading: "Libre Baskerville", serif;
  --rb-font-mono: "Source Code Pro", monospace;
}

関連用語

さらに詳しく

Local Graph

Nearby Notes

Open in Explorer →
タイポグラフィ(Typography)テーマ(Theme)デザイントークン(Design Token)セマンティックトークン(Semantic Token)記事レイアウト(Article Layout)CSSの取り決め(CSS Contract)テーマルート(Theme Root)
CurrentOutgoingBacklink