•11 min read

Tailwindのデフォルトの代わりに実際に使っているカラーパレット

Tailwindのデフォルトの代わりに実際に使っているカラーパレット

私はデザインツールとしてのTailwindのカラーシステムが好きです。50種類の青色に名前が付けられ、すぐに使えるのは本当に便利です。しかし、欠点もあります。すべてのTailwindサイトが同じ50種類の青色を使っているのです。個人プロジェクトをバニラCSSに移行したとき、ユーティリティクラスだけでなく、事前に構築されたパレットという頼みの綱も失いました。

以下に、私がたどり着いた代替案を実際のコードとともに紹介します。

Audio Briefing
0:00 / 0:00

Uchu: いつも立ち戻るパレット

Uchuは、コンテンツ中心のサイトによく合う、暖かく落ち着いた色合いを厳選したパレットです。CSSファイルとして提供されており、どんなプロジェクトにも組み込むことができます。

:root {
  --uchu-blue: #3b82f6;
  --uchu-indigo: #6366f1;
  --uchu-amber: #f59e0b;
  --uchu-rose: #f43f5e;
  --uchu-slate: #64748b;
}

私が気に入っている点:色が個性的で、ありきたりに見えないのに、コンテンツとぶつからない程度に落ち着いています。ちょうど良いバランスです。

Advertisement

Flexoki: ミニマリストなプロジェクト向け

Flexokiは、長文読解のためにデザインされた、インクのような低コントラストのパレットです。純粋な#000や#fffの代わりに、温かみのある黒とオフホワイトを使用することで、目の疲れを軽減します。

:root {
  --flexoki-black: #100f0f;
  --flexoki-paper: #fffcf0;
  --flexoki-muted: #6f6e69;
  --flexoki-accent: #205ea6;
}

私はこれを自分の個人ブログで使っています。オフホワイトの背景(#fffcf0)は、特にダークモードでは、純粋な白よりも明らかに読みやすいです。

Reasonable Colors: アクセシビリティ第一

Reasonable Colorsは、WCAG(Web Content Accessibility Guidelines)準拠を念頭に置いてゼロから構築されています。パレット内のすべての色は、推奨される背景にテキストとして使用された場合、少なくともAAコントラスト比を満たしています。

:root {
  --rc-primary: #0057b3;
  --rc-primary-bg: #e8f1fa;
  --rc-success: #1e7a1e;
  --rc-warning: #9e5d00;
  --rc-error: #c41e1e;
}

これは、アクセシビリティ要件が明確なクライアントプロジェクトで私が頼りにしているものです。ドキュメントには、すべての組み合わせのコントラスト比が含まれています。

OKLCH: 最新の選択肢

事前に構築されたパレットから選択するのではなく、プログラムで色を生成したい場合は、OKLCHを検討してください。これは知覚的に均一性を保つカラーモデルです。つまり、HSLでは同じ数値の変化でも色相によって劇的に異なって見えるのに対し、OKLCHでは10%の明度ステップが人間の目には10%のステップに見えます。culoriやoklab.tsのようなライブラリが、これを実際に機能させます。

ワンラインアプローチ

完全なパレットにコミットしたくない場合でも、単一のプライマリカラーに基づいたCSSカスタムプロパティだけで驚くほど多くのことができます。

:root {
  --primary: #2563eb;
  --primary-light: oklch(from var(--primary) 0.7 0.15 h);
  --primary-dark: oklch(from var(--primary) 0.3 0.2 h);
  --surface: #fafafa;
  --text: #171717;
}

oklch(from ...)構文は、現在(2026年)すべてのモダンブラウザでサポートされており、手動で選択することなく、1つの色値からパレット全体を導き出すことができます。

Advertisement

こちらもおすすめ

詳細解説: コアメカニズム

表面の下を覗くと、根底にあるメカニズムはシステムの複雑な相互作用を明らかにします。現代の開発において、これらのメカニズムを理解することが、初心者とエキスパートを分けるものです。

この実用的な例を考えてみましょう。

// A comprehensive example demonstrating advanced patterns
class ServiceManager {
  constructor() {
    this.services = new Map();
    this.initialized = false;
  }

  register(name, service) {
    if (this.services.has(name)) {
      throw new Error(`Service ${name} already registered`);
    }
    this.services.set(name, service);
  }

  async initializeAll() {
    this.initialized = true;
    for (const [name, service] of this.services) {
      if (typeof service.init === 'function') {
        await service.init();
      }
    }
  }

  get(name) {
    if (!this.initialized) {
      console.warn('Accessing services before initialization');
    }
    return this.services.get(name);
  }
}

このパターンにより、ビジネス要件が変化しても、アーキテクチャのスケーラビリティと堅牢性が維持されます。これは、大規模なアプリケーションで大きな利益をもたらす基本的なアプローチです。

実世界での応用とスケーリング

これを本番環境に実装すると、新たな課題が生じます。並行処理、状態管理、メモリリークを考慮する必要があります。

例えば、高スループットシステムを扱う場合、あらゆるマイクロ最適化が重要になります。ローカル開発では明らかにならないボトルネックを特定するために、プロファイリングツールに頼ることがよくあります。

上記の図は、アプリケーションが水平にスケールする典型的なデプロイ戦略を示しています。

理解度チェック

よくある質問

Tailwindのデフォルトパレットは数学的に一貫していますが、何千ものモダンなWebアプリケーションが同じジンク、スレート、インディゴのテーマを共有しており、Web全体で視覚的な均一性が生じています。Uchu、Flexoki、Radix Colorsのような厳選された代替パレットを使用したり、ブランド固有のOKLCHカラースケールを構築したりすることで、コントラストのアクセシビリティを犠牲にすることなく、UIに明確な視覚的特徴を与えることができます。
HSL(明度50%の黄色はまぶしく明るく見えますが、明度50%の青は暗く見えます)とは異なり、OKLCHは知覚的に均一です。OKLCHの明度を10%シフトすると、色相に関係なく、人間の目には一貫した知覚的変化として認識されます。これにより、プログラムによるダークモードの反転や、アクセシブルなWCAGコントラスト計算が予測可能で数学的に信頼できるものになります。
主要な選択肢としては、Radix Colors(コンポーネントの状態(背景、ボーダー、ソリッド、ホバー、アクセシブルなテキスト)のために特別に設計されており、12段階で提供)、Reasonable Colors(ステップ間の違いがWCAG AAおよびAAA準拠を保証するオープンソースのアクセシブルパレット)、およびIBM Carbon Design Systemのカラーがあります。
Tailwind CSS v4では、@themeディレクティブ(例:--color-brand-500: oklch(0.65 0.22 260);)を使用して、CSSエントリーポイントでカスタムテーマを直接定義できます。Tailwindは、JavaScriptの設定ファイルを必要とせずに、bg-brand-500、text-brand-500、border-brand-500などの対応するユーティリティクラスを自動的に生成します。
FlexokiとNordはどちらも、ハレーションや視覚疲労を引き起こすような、純粋な黒(#000000)と純粋な白(#ffffff)の厳しい組み合わせを避けています。Flexokiは、温かみのある紙のような黒とクリーミーなオフホワイトを使用し、Nordは、クールで落ち着いた極地の青とスレートを使用することで、長時間の読書セッションでも快適な、低い輝度コントラストを生み出します。
Share this article:

Stay Updated

Get the latest posts delivered straight to your inbox.

Free Developer Utilities

Free In-Browser Developer Tools

Clean AI CLI logs, build cron expressions, decode JWTs, and calculate chmod permissions offline.

Explore Tools
Advertisement