Contrastly — Tailwind CSS対応・OSSコントラストチェッカー
Tailwind CSSのカラーパレット、カスタムHEX、前景色と背景色の組み合わせについて、WCAG AA / AAAのコントラスト結果をすばやく確認できるオープンソースツール。日常的なフロントエンド作業に合わせた軽量なインターフェースに、色の確認とコントラスト判定をまとめている。
期間:2025年7月〜現在
この実績が活きるご相談
アクセシビリティ要件を、日常的なUI設計とフロントエンド実装のワークフローに組み込みやすい形へ落とし込んだオープンソースツールです。
- UI実装中のコントラスト確認を効率化する
- Tailwind CSSの色を使いながらWCAGの判定結果を確認する
- アクセシビリティへの配慮をフロントエンド実装に組み込む
概要
Contrastlyは、Tailwind CSSのカラーパレット、カスタムHEX、前景色と背景色の組み合わせについて、WCAG AA / AAAのコントラスト結果を確認できる軽量なWebツールです。企画と要件整理から、UI・アクセシビリティ設計、フロントエンド実装、公開、継続的な保守まで一貫して担当しました。2025年7月にツールを公開し、2026年7月にはコードベースを整理して、Sola StudioのOSSとしてソースコードを公開しました。
背景
別のフラッシュカードアプリを実装していた際、Tailwind CSSの色を確認するために、クラス名を調べてHEX値へ変換し、さらに別のツールへ移動してコントラストを確認する作業が繰り返し発生していました。そこで、Tailwind CSSの色選択、カスタムHEXの入力、WCAGのコントラスト判定を、一つのインターフェースで扱えるツールとしてContrastlyを制作しました。
設計・実装上のポイント
分断されていた作業を一つのインターフェースに集約
Tailwind CSSの色選択、カスタムHEXの入力、WCAGの判定結果を一つにまとめ、色の参照、変換ツール、コントラストチェッカーの間を移動せずに組み合わせを確認できるようにしました。
UIの色とセマンティックカラーの判断を支援
Tailwind CSSのカラーパレットとカスタムHEXを前景色・背景色として比較できるようにし、インターフェースの配色やセマンティックカラートークンに関する実践的な判断を支援する構成にしました。
ツール自体のアクセシビリティ
インターフェースにはセマンティックHTMLを使用し、キーボード操作とReduced Motionに対応しています。また、VoiceOverを使用した動作確認も行っています。公開後も継続的に改善を続けており、その一環として、ソースコードの静的検査にeslint-plugin-jsx-a11yを導入し、デスクトップとモバイルの主要画面・操作状態を対象としたPlaywrightテストにaxe-coreの検査を組み込みました。検出結果に基づく修正に加え、キーボード操作、フォーカス、ライブリージョンの更新、入力値の検証、WCAG判定結果の正確性についてもE2Eテストを実装しました。
公開から1年後にOSS化
2025年7月の公開後も継続してツールを保守し、2026年7月にコードベースを整理して、Sola StudioのOSSプロジェクトとして公開しました。IssueやPull Requestを通じて、ほかの開発者も改善に参加できる形にしています。
結果
E2Eテスト
25 / 25 成功
計測時点の実行結果
- Tailwind CSSの色の確認、カスタムHEXの入力、コントラスト判定を一つの軽量なツールに集約
- ソースコード、ブラウザ上の表示、実際の操作を継続的に確認できる検査を導入し、レビューで検出した問題を修正
- フロントエンド開発者、デザイナー、アクセシビリティレビュー担当者が利用できるOSSとして公開