メインコンテンツへスキップ

カラーシステム

最終更新日:

Frutjam のカラー システムは、すぐに WCAG AA コントラスト比を満たすように設計されたセマンティック CSS トークンを使用します。 JavaScript なし、ダークモード対応、Tailwind CSS v4 と互換性あり。 Django、HTMX、Laravel、および CSS のみのスタックで動作します。

Frutjam は、すべての色のデザイン トークンとして CSS カスタム プロパティを使用します。すべての色はテーマごとに定義され、Tailwind CSS ユーティリティ クラスと自動的に連携します。追加の構成は必要ありません。 CSS のみ。JavaScript は必要ありません。 WCAG AA コントラストはすべての色のペアで保証されており、Django、HTMX、Laravel、React、およびあらゆる Tailwind CSS v4 プロジェクトで動作します。

色の名前

Frutjam は、次のセマンティックな色の役割を定義します。各色には、アクセス可能な前景テキストに対応する on-{color} トークンがあります。

WCAG AA コントラスト保証。 すべての on-{color} ペアは、WCAG AA コントラスト要件を満たすために OKLCH で手動で調整されます。前景色を自動的に計算するライブラリとは異なり、Frutjam では明示的で検証済みのペアが提供されるため、コンポーネントは偶然ではなく設計によってアクセス可能になります。
トークン 目的
base--color-baseページの背景
neutral--color-neutralサーフェス、サイドバー、オーバーレイ
primary--color-primaryブランドのメインカラー
secondary--color-secondary二次ブランドカラー
accent--color-accentアクセント/ハイライトカラー
info--color-info情報メッセージ
success--color-success成功状態
warning--color-warning警告状態
error--color-errorエラー状態と破壊状態

カラーユーティリティクラス

Frutjam のすべてのカラーは、Tailwind CSS カラー ユーティリティで機能します。 {color} を上の表の任意の色の名前に置き換えます。

クラス 説明
bg-{color}背景色
text-{color}文字の色
border-{color}枠線の色
ring-{color}リングカラー
outline-{color}輪郭の色
shadow-{color}影の色
fill-{color}SVGの塗りつぶし色
stroke-{color}SVG ストロークの色
decoration-{color}文字装飾色
caret-{color}入力キャレットの色
placeholder-{color}プレースホルダーのテキストの色
divide-{color}区切り線の境界線の色
Primary background
Secondary background
Primary border and text
html
1
2
3
<div class="bg-primary text-on-primary p-4 rounded">Primary background</div>
<div class="bg-secondary text-on-secondary p-4 rounded">Secondary background</div>
<div class="border border-primary text-primary p-4 rounded">Primary border and text</div>

不透明度修飾子

Tailwind カラーと同様に、/{value} 修飾子を使用して色の不透明度を制御します。

10% primary background
20% primary background
60% opacity text
html
1
2
3
<div class="bg-primary/10 text-primary p-4 rounded">10% primary background</div>
<div class="bg-primary/20 text-primary p-4 rounded">20% primary background</div>
<div class="text-on-base/60 p-4">60% opacity text</div>

テーマの CSS 変数

これらは、カスタム テーマの作成時に定義するルート トークンです。他のすべてのカラー トークンはこれらから自動的に計算されます。

CSS変数 説明
--scheme-color配色: 明るいまたは暗い
--border-radiusコンポーネントの基本境界半径
--color-baseページの背景色
--color-on-baseベースの背景のデフォルトのテキストの色
--color-neutralニュートラルな表面色
--color-on-neutralニュートラルな表面上のテキストの色
--color-primaryブランドのメインカラー
--color-on-primaryプライマリ背景のテキストの色
--color-secondary二次ブランドカラー
--color-on-secondary二次背景のテキストの色
--color-accentアクセントカラー
--color-on-accentアクセント背景の文字色
--color-info情報の色
--color-on-info情報背景のテキストの色
--color-success成功の色
--color-on-success成功の背景のテキストの色
--color-warning警告色
--color-on-warning警告背景の文字の色
--color-errorエラーの色
--color-on-errorエラー背景のテキストの色

計算されたカラートークン

Frutjam はルート テーマ変数からこれらのトークンを自動的に計算します。手動で設定する必要はありません。これらはカスタム CSS で使用できます。

スケール (50 ~ 950)

すべての色は、完全な 11 段階の色合い/陰影スケールを生成します。 {color} を任意の色の名前に置き換えます。

CSS変数 説明
--color-{color}-50最も明るい色合い (4% カラーミックス)
--color-{color}-100とても明るい色合い
--color-{color}-200明るい色合い
--color-{color}-300中程度の明るい色合い
--color-{color}-400わずかな色合い
--color-{color}-500基本色 (--color-{color} と同じ)
--color-{color}-600わずかな日陰
--color-{color}-700中程度の色合い
--color-{color}-800暗い色合い
--color-{color}-900非常に暗い色合い
--color-{color}-950最も暗い色合い

ソフト&アクティブ

インタラクティブ要素の状態を認識するバリアント。明るいテーマと暗いテーマに自動的に適応します。

CSS変数 説明
--color-{color}-softソフトなバリエーションの微妙な色合いの背景
--color-on-{color}-soft柔らかい背景で使用するためのテキストの色
--color-{color}-activeホバー状態およびアクティブ状態の暗く/明るくされたシェード
--color-body計算された本文テキストの色 (on-base からわずかに柔らかくなります)

カスタムテーマの例

ルート トークンをオーバーライドしてカスタム テーマを作成します。 Frutjam はすべてのスケールと状態を自動的に計算します。

css
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
@import "tailwindcss";
@plugin "frutjam";

[data-theme="mytheme"] {
  --scheme-color: light;
  --border-radius: 0.5rem;

  --color-base: oklch(98% 0 0);
  --color-on-base: oklch(15% 0 0);

  --color-neutral: oklch(20% 0 0);
  --color-on-neutral: oklch(98% 0 0);

  --color-primary: oklch(55% 0.25 260);
  --color-on-primary: oklch(98% 0 0);

  --color-secondary: oklch(60% 0.20 320);
  --color-on-secondary: oklch(98% 0 0);

  --color-accent: oklch(65% 0.22 180);
  --color-on-accent: oklch(15% 0 0);

  --color-info: oklch(68% 0.17 237);
  --color-on-info: oklch(15% 0 0);

  --color-success: oklch(75% 0.20 150);
  --color-on-success: oklch(15% 0 0);

  --color-warning: oklch(82% 0.19 90);
  --color-on-warning: oklch(15% 0 0);

  --color-error: oklch(58% 0.24 27);
  --color-on-error: oklch(98% 0 0);
}