暖色と寒色のカラーバリエーション生成ツール
暖色・寒色のバリエーションパレットを使うと、元の色らしさを保ちながら視覚的な温度感を検討できます。有彩色の16進カラーを入力すると、暖かい色を2つ、正規化した基準色を1つ、冷たい色を2つ、合計5つの調和した値を返します。各バリエーションは元の彩度と明度を維持し、色相だけを所定のオレンジまたはブルーへ近づけます。同じ入力からは、常に同じ小規模で説明しやすいパレットが得られます。
無料で実行
暖色と寒色のバリエーションを作る仕組み
最初に、16進カラーをRGBからHSLへ変換します。HSLでは、彩度と明度をそのままにして色相を独立して調整できます。暖色側の目標はオレンジに当たる30度、寒色側の目標はブルーに当たる220度です。それぞれの側で、弱いバリエーションは目標までの最短円弧距離の35パーセント、強いバリエーションは70パーセントだけ移動します。色相は直線上の数値ではなく円を形成するため、特に0度の境界付近では最短経路を選ぶことが重要です。元の彩度と明度は変更しません。そのため、明るさや鮮やかさを無作為に変えた色の寄せ集めではなく、互いに関連した5色になります。出力順は、強い暖色、弱い暖色、基準色、弱い寒色、強い寒色です。各レコードには温度区分と強度に加え、16進値と計算後の色相角度が含まれます。目標値、移動割合、丸め規則、出力順が固定されているので、対応するどの実行環境でも同じ有効な入力からまったく同じパレットを再現できます。
基準色の選び方と結果の読み方
先頭のハッシュ記号の有無を問わず、3桁または6桁のCSS用16進カラーを入力してください。3桁表記は計算前に展開され、応答には正規化された6桁の値も含まれます。色温度の変化には意味のある色相が必要なので、有彩色を基準にするのが適切です。ニュートラルグレー、純粋な黒、純粋な白はHSL彩度が0であり、オレンジやブルーへ正しく移動できる色相を持ちません。このツールは彩度を勝手に加えて色相だけの変換という約束を外れるのではなく、そのような入力を明確に拒否します。弱いバリエーションは、近接する画面状態、補助的なグラフィック、第二のアクセントなどに適した控えめな候補として扱えます。強いバリエーションは、元の彩度と明度を保ちながら、より明確な温度差を示します。このパレットは創作上の調整を支援するものであり、コントラストを保証するものではありません。文字、操作部品、状態表示などアクセシビリティが重要な要素に使う前に、実際の前景色と背景色の組み合わせを専用のコントラスト確認ツールで検証してください。周囲の色によって暖かさや冷たさの見え方も変わるため、最終的な利用環境での確認も必要です。
決定論的なパレットを制作工程で活用する方法
固定された変換は、コードで色を再生成するとき、デザインシステムへ記録するとき、複数のチームでレビューするときに特に役立ちます。承認済みの基準色を1つ保存しておけば、テーマ、グラフ、イラスト、キャンペーン素材を作るたびに、同じ暖色・寒色の候補を導出できます。手作業による選択のぶれを抑え、各スウォッチの根拠も明確になります。つまり、文書化されていない感覚的な選択ではなく、測定可能な色相移動による違いだと説明できます。5色という小規模な出力は、一覧で素早く比較できるよう意図されています。製品チームでは弱い色をホバー状態や背景、強い色を強調に割り当てられます。データチームでは視覚的な強さをそろえたまま、暖かい状況と冷たい状況を区別できます。イラスト制作では、状況に応じた調整を加える前の統制された出発点として使えます。APIの料金は1回$0.002で、ブラウザーでは同じ決定論的ロジックをローカルに実行できます。外部検索、乱数、時刻、利用履歴、環境依存のカラープロファイルは一切使用しないため、保存した入力をいつでも再現できます。
活用例
テーマの代替色を作成
承認済みのブランドカラーから、彩度と明度を変えずに、控えめまたは明確な暖色・寒色アクセントを導出します。
均衡の取れたグラフ配色を構築
元の色と同じ視覚的な強さを保つ調和した色相で、暖かい状態と冷たい状態を表現します。
デザイントークンを文書化
基準トークンを保存し、コード、デザインファイル、レビューノートで同じ4つの温度バリエーションを再現します。
よくある質問
生成される色はいくつですか?
強い暖色、弱い暖色、基準色、弱い寒色、強い寒色の固定順で、5色を返します。
暖色と寒色の目標はどこですか?
暖色は30度のオレンジへ、寒色は220度のブルーへ、色相環上の最短経路で移動します。
彩度や明度も変更されますか?
いいえ。基準色の彩度と明度は維持し、色相だけを変更します。
グレー、黒、白を使えないのはなぜですか?
無彩色には意味のあるHSL色相がありません。彩度を加えると、約束した色相移動ではなく、新しい色を作る処理になるためです。
アクセシブルな文字色として使えますか?
このパレットはコントラストを保証しません。前景色と背景色の組み合わせごとに、専用のアクセシビリティ確認ツールで検証してください。
APIリクエストの料金はいくらですか?
APIは1回$0.002です。同じ決定論的な計算をブラウザーでも実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/color/temperature-palette \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color":"#6f4bb8"}'const res = await fetch("https://api.kit.forhosting.com/color/temperature-palette", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color": "#6f4bb8"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/temperature-palette",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color": "#6f4bb8"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/temperature-palette", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color":"#6f4bb8"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color":"#6f4bb8"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/temperature-palette", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"color": "#6f4bb8"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.temperature_palette",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |