mcpField
O
oklch-skill

oklch-skill

github.com/jakubkrehelデザイン・UI2724.7k 回インストール4 週間前に更新
リポジトリ

oklch-skill について

oklch-skillは、CSSの設計や開発に携わる人向けのOKLCHカラーリファレンススキルです。色変換、パレット作成、コントラスト、色域処理に加え、色変更を報告する形式も扱います。

主な機能

  1. 01色形式の変換ガイド
  2. 02パレットとダークモードの生成
  3. 03APCAとWCAGのコントラスト確認
  4. 04色域とTailwindのガイド
  5. 05色変更レビューの表形式

活用シーン

  1. 01Hex、RGB、HSLをOKLCHに変換
  2. 02色相の安定したパレットを作成
  3. 03基準未達のテキストコントラストを修正
  4. 04P3カラーにフォールバックを追加

インストール

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

$npx skills add https://github.com/jakubkrehel/oklch-skill --skill oklch-skill

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

同梱ファイル

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

accessibility-contrast.md
color-conversion.md
gamut-and-tailwind.md
palette-generation.md

詳細

OKLCHカラー

OKLCHは、数値が直感どおりの意味を持つ、知覚的に均一な色空間です。CSSで起きる色に関する問題の多く(パレットの崩れ、コントラスト不足、色相のずれ)は、私たちの見え方に合わない色空間を使うことに起因します。OKLCHはモデルを修正し、ツールが正しく機能するようにします。インタラクティブに試すには、oklch.fyiをご覧ください。

クイックリファレンス

カテゴリー用途リファレンス
変換Hex/rgb/hslからoklchへの変換color-conversion.md
パレットスケール、複数色相、ダークモードの生成palette-generation.md
コントラストAPCA/WCAGのチェック、コントラスト不足の修正accessibility-contrast.md
色域とTailwindP3フォールバック、@themeスケール、色域のクランプgamut-and-tailwind.md

OKLCHを使う理由

  • 知覚的な均一性。 Lの変化量が同じなら、明るさの変化量も同じです。oklch(0.5 ...)は視覚的に中間の明るさです。HSLのlightness: 50%は色相によって大きく異なります。
  • 安定した色相。 HSLの青は明るさが変わると紫寄りになります。OKLCHの色相は、明るさの全範囲で一定です。
  • 独立した彩度。 彩度は明るさに依存しない、色鮮やかさの絶対的な尺度です。HSLの彩度は明るさに依存します。
  • 有限の色域。 すべてのoklch値が、表示可能なsRGB色に対応するわけではありません。特定の色相における彩度の高い値はクリップされるため、色域への配慮が必要です。

OKLCHの構文

oklch(L C H)
oklch(L C H / alpha)
チャンネル範囲説明
L(明るさ)0–10 = 黒、1 = 白。知覚的に均一です。
C(彩度)0–~0.4色鮮やかさです。0 = グレー。最大値はLとHによって異なります。
H(色相)0–360度数で表す色相角です。
alpha0–1省略可能な透明度です。スラッシュ構文を使います。
oklch(0.637 0.237 25.331)
oklch(0.8 0.05 200 / 0.5)

書式: LとCは小数点以下3桁、Hは最大3桁を使います。末尾のゼロは省略します。-0は0として書式設定します。ブラウザーの対応状況:Baseline 2023、世界全体で96%超のカバー率です。

主な閾値

ルール値
明暗の境界L > 0.6 = 明るい背景 → 暗いテキストを使用
明るい背景での明るさの差背景のL > 0.85の場合、前景のL < 0.45
暗い背景での明るさの差背景のL < 0.25の場合、前景のL > 0.75
色相のずれの閾値パレットの各段階での差が> 10°なら、目に見えるずれ
APCAの通常テキスト合格には|Lc| >= 60、合格+には>= 75
WCAG 2の通常テキスト4.5:1 AA、7:1 AAA
コントラストの修正Lだけを調整 — 彩度の影響はわずかです

レビュー結果の書式

色の変更は必ず、BeforeとAfterの列を含むMarkdownテーブルで示してください。変更した色をすべて記載してください。一部だけを記載してはいけません。「Before:」/「After:」の行をテーブルの外に分けて、調査結果を記載しないでください。

BeforeAfter
color: #3b82f6color: oklch(0.623 0.188 259.815)
色相をまたいで同じ絶対値のC各色相の最大彩度に対する同じC%
P3色にsRGBフォールバックがない@media (color-gamut: p3)ラッパー

これにより、フィードバックを確認しやすく、差分も把握しやすくなります。各行は変更ごとに独立しているため、開発者は個別に対応できます。

よくある間違い

問題修正
新しいコードでHex/rgb/hslの色を使うoklch()に変換する
色相がずれるHSLパレットランプOKLCHの色相を一定にして作り直す
コントラスト不足(APCAで前景と背景のコントラストを確認)OKLCHのLチャンネルを調整し、CとHは維持する
色域を確認せずに彩度を高くするsRGBにおけるL/Hの最大彩度にクランプする
異なる色相で同じ絶対値のCを使う一貫した鮮やかさを保つため、同じC%(最大値に対する割合)を使う
sRGBフォールバックのないP3色@media (color-gamut: p3)パターンを追加する
手作業で色を選ぶダークモードLの対応関係を反転させ、ライトパレットから導出する
Tailwind v4の@themeでHexを使うOKLCH値に変換する
カンマ構文でalphaを指定するスラッシュを使う:oklch(L C H / alpha)

参照ファイル

  • color-conversion.md — 対応形式、変換例、一括変換のルール、そのままにするもの
  • palette-generation.md — スケールの規則、生成アルゴリズム、複数の色相を使ったパレット、ダークモード、HSLを使わない理由
  • accessibility-contrast.md — APCAとWCAG 2のしきい値、Lによるコントラストの修正、明度差のガイド、色相のずれの検出
  • gamut-and-tailwind.md — sRGBとP3、色域のクランプ、CSSのフォールバックパターン、Tailwind v4の@themeと移行

コメント