グラデーションのカラーストップを等間隔で生成
両端の色のあいだにあるカラーストップをすべて求めます。#FF0000から#0000FFまでを5個にすると、25%に#BF0040、50%に#800080、75%に#4000BFが入り、両端も含まれます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
グラデーション用カラーストップ生成ツールは、2つの端点色から、CSS、デザイントークン、グラフ、canvas、プログラムによる描画に利用できる完全で予測可能な配列を作成します。開始色、終了色、ストップ総数をご指定ください。結果には両端とすべての中間色が含まれ、各色に割合の位置が付きます。厳密な検証により、不正な色や許容範囲外の件数を本番処理へ渡す前に検出します。
2つの端点から完全なストップ一覧を作成します
グラデーションは、多くの場合「ブランドカラーから別の色へ、指定した段階数で移行する」という簡潔なデザイン指示から始まります。しかし、すべての中間色と位置を一貫した方法で求め、再利用可能なデータへ変換する作業には手間がかかります。本ツールでは、開始の16進カラー、終了の16進カラー、必要なストップ総数を指定します。
開始点を0パーセント、終了点を100パーセントに配置し、その他のストップを等しい割合間隔で分布させます。各結果は大文字6桁の16進表記に正規化されるため、#f00のような短縮入力でも安定した#FF0000として出力されます。返される配列は、CSSグラデーション、SVG定義、canvasコード、グラフ設定、トークン生成処理へそのまま対応付けられます。
件数には両端が含まれるため、5個を指定した場合の位置は0、25、50、75、100パーセントです。この規則により応答サイズが明確になり、後続の配列インデックスを崩す暗黙の追加も発生しません。
決定的な補間方式をご確認ください
色は赤、緑、青の各チャンネルで個別に補間されます。各位置について、開始チャンネル値から終了チャンネル値までの比例距離を計算し、0から255までの最も近い有効な整数へ丸めます。この方式は一般に線形RGB補間と呼ばれます。
単純で再現可能であることを重視しており、乱数、カラープロファイルの参照、ブラウザー描画への依存、外部サービスは使用しません。割合位置はストップのインデックスを区間数で割って求め、循環小数は小数点以下6桁に丸めます。たとえば4個の場合、中間位置は33.333333パーセントと66.666667パーセントになり、不要な浮動小数点の誤差表示を避けられます。
線形RGBは知覚的に均等な色モデルではないため、数値上は等しい段階でも、人の目には同じ明るさの差に見えない場合があります。
入力を検証して返されたストップを組み込みます
値の前後にある空白は除去されますが、途中の空白、アルファチャンネル、色名、16進以外の文字は拒否されます。ストップ数には2以上256以下の整数を指定する必要があります。最小値を2とすることで両端に意味のある位置を保証し、上限によって出力サイズと実行時間を予測可能に保ちます。
端点レコードも中間レコードと同じ上限付きアルゴリズムで計算し、チャンネル分子の整数演算によって不要な浮動小数点のずれを抑えます。
活用例
CSSグラデーションを構築します
正規化された16進カラーと位置を生成し、再現可能なlinear-gradientまたはradial-gradient宣言へ連結できます。
デザイントークンの段階を作成します
承認済みの端点色を、テーマ、コンポーネント、データ可視化向けの固定長配列へ変換します。
SVGやcanvasの描画に利用します
生成したイラスト、グラフ、効果で、色と割合の各組を決定的なストップとして使用できます。
よくある質問
両端の色も含まれますか?
はい。 最初のストップは0パーセントの正規化済み開始色で、最後は100パーセントの正規化済み終了色です。
補間にはどの色空間を使用しますか?
赤、緑、青のチャンネル値を直接線形補間し、得られた各チャンネルを最も近い整数へ丸めます。
3桁の16進カラーも使用できますか?
はい。 #f00のような値は補間前に6桁へ展開され、返されるすべての色は大文字の#RRGGBB表記になります。
ストップは何個まで指定できますか?
2以上256以下の整数をご指定ください。この数は両端を含む結果全体の長さを表します。
赤から青への5段階のグラデーションはどう作りますか?
開始に#FF0000、終了に#0000FF、個数に5を入力します。0%に#FF0000、25%に#BF0040、50%に#800080、75%に#4000BF、100%に#0000FFが並びます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/color/gradient-stops \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start_color":"#FF0000","end_color":"#0000FF","count":5}'const res = await fetch("https://api.kit.forhosting.com/color/gradient-stops", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start_color": "#FF0000",
"end_color": "#0000FF",
"count": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/gradient-stops",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start_color": "#FF0000",
"end_color": "#0000FF",
"count": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/gradient-stops", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start_color":"#FF0000","end_color":"#0000FF","count":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start_color":"#FF0000","end_color":"#0000FF","count":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/gradient-stops", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"start_color": "#FF0000",
"end_color": "#0000FF",
"count": 5
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.gradient_stops",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_stops | 256 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
また、決定的なRGB補間を採用しているため、同じ入力からは常に同じJSONが得られます。
入力を検証して返されたストップを組み込みます
両端の色フィールドには3桁または6桁の16進数字を指定でき、先頭のハッシュ記号は任意です。成功時の応答は、正規化された両端色、検証済み件数、colorフィールドとpercentageフィールドを持つレコードのstops配列を返します。これらのレコードをCSSのlinear-gradient値へ連結したり、デザイントークンとして保存したり、SVGのストップ一覧へ渡したり、別のレンダラーで正規化された基準点として利用したりできます。自動処理でのAPI料金は1リクエストあたり$0.002で、手早い対話操作にはブラウザー実行が便利です。
技術的な質問
APIリクエストの料金はいくらですか?
API料金は1リクエストあたり$0.002です。同じ決定的な計算を、このページのブラウザー上では無料で実行できます。