mcpField
T
typography

typography

github.com/petekpデザイン・UI10522 回インストール21 週間前に更新
リポジトリ

typography について

インターフェイスデザイン向けのタイポグラフィガイドスキルです。フォント選び、階層、余白、アクセシビリティ、CSS の実践を扱い、デザイナーやフロントエンド開発者向けに監査とタイプシステムの提案形式を備えています。

主な機能

  1. 01文字サイズのスケールと階層の提案
  2. 02フォント選択と組み合わせの原則
  3. 03行間、字間、段落間隔の解説
  4. 04流動的タイポグラフィとモダン CSS の紹介
  5. 05ダークモードとアクセシビリティへの配慮
  6. 06タイポグラフィ監査とタイプシステム提案の形式

活用シーン

  1. 01新しいインターフェイスのタイプシステム構築
  2. 02既存ページのタイポグラフィ問題の点検
  3. 03見出しと本文のレスポンシブ調整
  4. 04ダークモードでの文字の読みやすさ改善

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/petekp/agent-skills --skill typography

インストール後、Claude Code で/typographyを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
fluid-typography.md
font-loading.md
internationalization.md
masters.md
opentype-features.md
tailwind-integration.md
variable-fonts.md

詳細

タイポグラフィ

優れた先人たちの原則に基づく、ユーザーインターフェースのためのプロフェッショナルなタイポグラフィです。

「タイポグラフィはコンテンツに敬意を払うためにあります。」 — Robert Bringhurst

参考ファイル

特定のトピックについて詳しく知りたい場合は、次の参考資料をご覧ください。

トピック読むタイミング
masters.md権威ある根拠を確認したいとき、細かな判断を行うとき、「なぜか」を理解したいとき
variable-fonts.mdバリアブルフォント、可変ウェイト、パフォーマンス最適化を利用するとき
font-loading.mdFOIT/FOUT の問題、プリロード、Core Web Vitals、セルフホスティングについて
opentype-features.md合字、等幅数字、スタイルセット、スラッシュ付きゼロについて
fluid-typography.mdclamp()、text-wrap、テキストの省略、垂直リズム、フォントのスムージングについて
tailwind-integration.mdTailwind のタイポグラフィユーティリティ、prose プラグイン、カスタマイズについて
internationalization.mdRTL 言語、アラビア語/ヘブライ語、CJK、双方向テキストについて

出力形式

タイプシステムの推奨事項
## Type System

### Scale
- Base: [size, e.g., 16px]
- Ratio: [e.g., Minor Third 1.200]
- Rationale: [why this ratio]

### Hierarchy
| Level | Size | Weight | Line Height | Letter Spacing | Use |
|-------|------|--------|-------------|----------------|-----|
| Display | ... | ... | ... | ... | Hero, marketing |
| H1 | ... | ... | ... | ... | Page titles |
| H2 | ... | ... | ... | ... | Section heads |
| Body | ... | ... | ... | ... | Paragraphs |
| Small | ... | ... | ... | ... | Captions, labels |

### Fonts
- Primary: [font] — [rationale]
- Secondary: [font, if applicable]
- Mono: [font, if applicable]

### Implementation
[Ready-to-use CSS/Tailwind]
タイポグラフィの監査
## Typography Audit

### Issues
| Element | Problem | Recommendation |
|---------|---------|----------------|
| ... | ... | ... |

### Quick Wins
- [Immediate improvement 1]
- [Immediate improvement 2]

基本原則

4つの基本要素(Bringhurst)

本文で最も重要なタイポグラフィ上の考慮事項:

  1. ポイントサイズ — 本文は最低 16px、補足テキストも絶対に 14px 未満にしない
  2. 行間 — 本文は 1.5~1.7、見出しは 1.1~1.3
  3. 行の長さ — 45~75 文字(理想は 66 文字)。max-w-prose(約 65ch)を使用
  4. フォントの選択 — 書体をコンテンツと文脈に合わせる
コントラストによる階層

複数の要素を使って階層を確立します。

要素低コントラスト高コントラスト
サイズ14px → 16px16px → 48px
ウェイト400 → 500400 → 700
色Gray-600 → Gray-900Gray-400 → Black
大文字・小文字通常すべて大文字

「1つのデザインにつき書体は1種類にしてください。イタリック体や太字は避け、代わりにサイズの段階的な変化に頼りましょう。」 — Massimo Vignelli

節度
  • フォントファミリーは最大1~2種類 — 組み合わせる場合は、セリフ体を1種類、サンセリフ体を1種類
  • 見出しレベルは実際には3~4段階 — それ以上の入れ子は、たいてい構造上の問題を示しています
  • タイプスケールを守る — 場当たり的なサイズは避けましょう
  • 余白を活用する — すべての隙間を埋めないようにしましょう

「コンピューター時代の到来により、書体の氾濫は新たなレベルの視覚的汚染をもたらしています。」 — Massimo Vignelli


タイプスケール

モジュラースケールの比率
名前比率特徴
マイナーセカンド1.067控えめで保守的
メジャーセカンド1.125穏やかでプロフェッショナル
マイナースリー1.200バランスがよく汎用的
メジャースリー1.250大胆でインパクトがある
完全四度1.333明確な階層
黄金比1.618劇的でエディトリアル
実用的なスケール(16px のマイナースリー)
--text-xs:   12px;  /* 0.75rem */
--text-sm:   14px;  /* 0.875rem */
--text-base: 16px;  /* 1rem */
--text-lg:   18px;  /* 1.125rem — not in pure scale */
--text-xl:   20px;  /* 1.25rem */
--text-2xl:  24px;  /* 1.5rem */
--text-3xl:  30px;  /* 1.875rem */
--text-4xl:  36px;  /* 2.25rem */
--text-5xl:  48px;  /* 3rem */
変更してもよい場合
  • マーケティング/ヒーロー領域: サイズ差を大きくしてもかまいません
  • データが密集したインターフェース: スケールを小さくします
  • モバイル: 基準サイズを少し大きくします(17~18px)

スペーシングのガイドライン

文脈に応じた行の高さ
文脈行の高さ理由
本文1.5~1.7読みやすさを高めるゆとり
見出し1.1~1.3特に大きなサイズでは狭めに
UI ラベル1.2~1.4コンパクトながら読みやすい
ボタン1.0~1.251行表示で、詰まった印象

「目は文字を読むのではなく、文字の間の空間を読みます。」 — Adrian Frutiger

字間
文脈トラッキングCSS
本文デフォルト、または +0.01emtracking-normal
すべて大文字+0.05em~+0.1emtracking-wide / tracking-wider
大きな見出し-0.01em~-0.02emtracking-tight
小さなテキスト(14px 未満)+0.01em~+0.02emtracking-wide

すべて大文字にする場合のルール: 必ず字間を広げます。短く(1~3語)保ちます。

段落の間隔
  • 段落間: 1em~1.5em(行の高さと同じか、少し広め)
  • 見出しの後: 最初の段落の上部マージンを小さくする
  • セクション間: 段落間隔の2~3倍

フォントの選択

システムフォントスタック
/* Sans-serif (modern) */
font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";

/* Serif */
font-family: ui-serif, Georgia, Cambria, "Times New Roman", serif;

/* Monospace */
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
安全に使えるウェブフォントの推奨
カテゴリフォント用途
サンセリフInter, Source Sans 3, Work Sans, DM SansUI、本文
セリフSource Serif 4, Lora, Merriweather, Literataエディトリアル、長文
等幅JetBrains Mono, Fira Code, Source Code Proコード、データ
ディスプレイFraunces, Epilogue, Outfit見出し
フォントの組み合わせの原則
  • コントラストで組み合わせる — セリフ+サンセリフ
  • xハイトを合わせる — 混在させる場合は視覚的な調和のため
  • 必要なウェイトが揃っていることを確認する — どちらも必要なウェイト/スタイルを備えていること

「父親は娘たちの中にお気に入りを作ってはいけない。」— Hermann Zapf(書体について)


モダンなCSSタイポグラフィ

テキストの折り返し
/* Balanced line lengths for headings (≤6 lines) */
h1, h2, h3, blockquote, figcaption {
  text-wrap: balance;
}

/* Prevent orphans in body text */
p, li {
  text-wrap: pretty;
}

注意: 枠線付きコンテナー内では balance を使わないでください。視覚的なバランスが崩れます。

可変タイポグラフィ
/* Font scales smoothly between breakpoints */
h1 {
  font-size: clamp(2rem, 1rem + 4vw, 4rem);
  line-height: clamp(1.1, 1.3 - 0.1vw, 1.3);
}

body {
  font-size: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
}

スケールの全容については、fluid-typography.md を参照してください。

テキストの省略表示
/* Single line */
.truncate {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Multi-line (2 lines) */
.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

ダークモードのタイポグラフィ

ウェイトの調整

暗い背景では文字が太く見えます。ウェイトを少し下げてください。

@media (prefers-color-scheme: dark) {
  body {
    font-weight: 350; /* Instead of 400 */
  }
  h1, h2, h3 {
    font-weight: 600; /* Instead of 700 */
  }
}
フォントのスムージング

暗い背景では、太く見える印象を抑えるためにアンチエイリアスを適用してください。

.dark-bg {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
色のコントラスト
  • 真っ黒(#000)に純白(#fff)を使うのは避けてください。コントラストが強すぎます
  • オフホワイト(#f5f5f5)と黒に近い色(#1a1a1a)を使用してください
  • ダークモードでは、コントラスト比を10:1~15:1にすることを目指してください

タイポグラフィの詳細

引用符

まっすぐな引用符ではなく、曲線型の引用符を使用してください。

  • 正: “Hello” と ‘world’
  • 誤: "Hello" と 'world'
ダッシュ
種類文字用途
ハイフン-単語の分割、複合語
エンダッシュ–範囲(2020–2024)、関係性
エムダッシュ—挿入句
数字
種類用途CSS
等幅数字表、価格、位置合わせfont-variant-numeric: tabular-nums
プロポーショナル数字本文font-variant-numeric: proportional-nums
オールドスタイル数字エディトリアルコンテンツfont-variant-numeric: oldstyle-nums
スラッシュ付きゼロコード、データfont-feature-settings: "zero" 1

詳細については、opentype-features.md を参照してください。


アクセシビリティ

最小値
要素最小推奨
本文16px16-18px
補助テキスト14px14-16px
法的表記/キャプション12px12px+トラッキングを広げる
コントラスト比4.5:17:1
ユーザー設定
/* Use relative units so users can scale */
body {
  font-size: 1rem; /* Not 16px */
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  * {
    transition: none !important;
  }
}
ディスレクシアへの配慮
  • 両端揃えのテキストは避ける
  • 字形が明確に異なるサンセリフ体(aとα、lと1とI)を優先する
  • 行の高さと段落間隔にゆとりを持たせる
  • オプションとしてOpenDyslexicを提供することを検討する

よくある間違い

避けること
  • 本文や長い見出しをすべて大文字にする
  • 本文の段落を中央揃えにする
  • 1行を80文字より長くする
  • 「見た目」を理由にコントラストを不十分にする
  • フォントファミリーを使いすぎる(2種類超)
  • UIテキストに装飾フォントを使う
  • ウェブ上で両端揃えにする
  • 白い背景に小さな灰色のテキストを使う
  • アラビア語のテキストに文字間隔を設定する
注意点
  • 目立つテキストでの孤立行や孤立語
  • 見出し階層の不統一
  • フォントのフォールバック指定の欠落
  • ウェブフォントの読み込みによるレイアウトシフト
  • リンクではないテキストへの下線

すぐに使える実装

最小限のプロフェッショナルな設定
:root {
  --font-sans: Inter, ui-sans-serif, system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
}

body {
  font-family: var(--font-sans);
  font-size: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  line-height: 1.6;
  font-feature-settings: "kern" 1, "liga" 1, "calt" 1;
}

h1, h2, h3 {
  line-height: 1.2;
  text-wrap: balance;
  letter-spacing: -0.02em;
}

p {
  text-wrap: pretty;
  max-width: 65ch;
}

code {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums slashed-zero;
}

@media (prefers-color-scheme: dark) {
  body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
}
Tailwindクイックスタート
<article class="
  prose prose-gray lg:prose-lg
  prose-headings:text-balance
  prose-p:text-pretty
  dark:prose-invert
  max-w-prose mx-auto
">
  
</article>

パターンの全容については、tailwind-integration.md を参照してください。

コメント