mcpField
A
accessible-contrast

accessible-contrast

github.com/basiclinesデザイン・UI1652 回インストール32 週間前に更新
リポジトリ

accessible-contrast について

accessible-contrastは、読みやすい画面を作るデザイナーや開発者向けの配色スキルです。11段階の色階調と対称的なインデックスの組み合わせで、WCAGのコントラスト基準に沿った配色を選べます。

主な機能

  1. 0111段階の色階調生成
  2. 02対称インデックスでのペア化
  3. 03WCAG AA・AAAの指針
  4. 04名前付きCSS変数の出力

活用シーン

  1. 01読みやすい文字色と背景色の生成
  2. 02ブランドカラーの色階調作成
  3. 03ボタンや大きな文字の配色選定

インストール

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

$npx skills add https://github.com/basiclines/rampa-studio --skill accessible-contrast

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

詳細

アクセシブルなコントラストの組み合わせ

アクセシブルなテキストと背景の組み合わせに特化したカラースケールを生成します。予測しやすい WCAG 準拠の組み合わせのために、11 段階のスケールを使用します。

使用する場面

  • 「アクセシブルな色の組み合わせを作成する」
  • 「WCAG 準拠の色が必要」
  • 「高コントラストの組み合わせを生成する」
  • 「テキストが読みやすいことを確認する」

インストール

npx @basiclines/rampa

11 段階の戦略

なぜ 11 段階なのでしょうか?組み合わせの計算を予測しやすくできるからです。

組み合わせインデックスコントラストレベル
最大0 + 10最高(ほぼ白 + ほぼ黒)
AAA 通常テキスト1 + 9, 2 + 87:1 以上の比率
AA 通常テキスト3 + 74.5:1 以上の比率
AA 大きなテキスト4 + 63:1 以上の比率

レシピ

rampa -C "<brand-color>" -L 98:5 --size=11 -O css --name=color
  • -L 98:5 により、ほぼ白からほぼ黒までの全範囲を確保します
  • --size=11 により、組み合わせに使いやすいインデックス 0~10 を作成します
  • 組み合わせは対称になります:0+10、1+9、2+8 など

完全な例

ブランドカラーが #3b82f6 の場合:

rampa -C "#3b82f6" -L 98:5 --size=11 -O css --name=blue

出力:

:root {
  --blue-0: #f8fafc;   /* Near white */
  --blue-1: #f1f5f9;
  --blue-2: #e2e8f0;
  --blue-3: #cbd5e1;
  --blue-4: #94a3b8;
  --blue-5: #64748b;   /* Middle gray */
  --blue-6: #475569;
  --blue-7: #334155;
  --blue-8: #1e293b;
  --blue-9: #0f172a;
  --blue-10: #020617;  /* Near black */
}

コントラストの組み合わせガイド

通常のテキストの場合(最小 4.5:1 - WCAG AA)
/* Light backgrounds with dark text */
.light-subtle {
  background: var(--blue-0);
  color: var(--blue-7);  /* 0+7 = AA */
}

.light-default {
  background: var(--blue-1);
  color: var(--blue-8);  /* 1+8 = AA */
}

.light-strong {
  background: var(--blue-2);
  color: var(--blue-9);  /* 2+9 = AAA */
}

/* Dark backgrounds with light text */
.dark-subtle {
  background: var(--blue-10);
  color: var(--blue-3);  /* 10+3 = AA */
}

.dark-default {
  background: var(--blue-9);
  color: var(--blue-2);  /* 9+2 = AA */
}

.dark-strong {
  background: var(--blue-8);
  color: var(--blue-1);  /* 8+1 = AAA */
}
大きなテキストの場合(最小 3:1 - WCAG AA)
.large-text {
  background: var(--blue-3);
  color: var(--blue-7);  /* 3+7 = AA Large */
}
最大コントラスト
.max-contrast {
  background: var(--blue-0);
  color: var(--blue-10);  /* 0+10 = Maximum */
}

クイックリファレンステーブル

背景AA 向けテキストAAA 向けテキスト
07, 8, 9, 108, 9, 10
17, 8, 9, 108, 9, 10
28, 9, 109, 10
38, 9, 109, 10
70, 1, 2, 30, 1, 2
80, 1, 2, 30, 1, 2
90, 1, 20, 1
100, 1, 20, 1

複数の色

複数のブランドカラーに対して、アクセシブルなカラースケールを生成します。

rampa -C "#3b82f6" -L 98:5 --size=11 -O css --name=blue
rampa -C "#22c55e" -L 98:5 --size=11 -O css --name=green
rampa -C "#ef4444" -L 98:5 --size=11 -O css --name=red

すべてのカラースケールで、同じインデックスの組み合わせロジックを使用します。

ヒント

  1. -L 98:5 の範囲が重要です。コントラストの全範囲を確保できます
  2. 中間値(4、5、6)は、無効状態や控えめな状態に適しています
  3. 実際に描画されたコントラストを必ずテストしてください。Stark や axe などのツールで検証できます
  4. インデックスの計算(0+10、1+9、2+8)により、テーマ設定を予測しやすくなります
  5. ボタンの場合:背景にはインデックス 5~6、テキストには 0~1 を使用します

コメント