HSLをCSS文字列に変換
色相、彩度、明度の個別の数値から、句読点を手作業で組み立てたり、丸め方がばらついたり、パーセント記号を付け忘れたりすることなく、明確なCSSのhsl()文字列を生成できます。各成分を検証し、色相を色相環の範囲に正規化して、指定した精度で丸めた予測可能な結果を返します。デザイントークンやテーマの生成処理から、自動テスト、テンプレート、開発用の小規模ツールまで、構造化された色情報をブラウザー向けCSSへ変換する場面でご利用いただけます。
無料で実行
HSLの各成分を数値で入力します
色相、彩度、明度は、途中まで整形したCSS式ではなくJSONの数値として送信してください。色相は度数で表す角度であり、正数、負数、または一周を超える値も指定できます。値は0以上360未満の標準範囲へ変換されるため、-30は330と同じ色相になり、390は30になります。彩度と明度はパーセント値ですが、入力に記号は付けません。65パーセントなら65を指定してください。どちらも0から100までである必要があります。必須値はすべて有限の数値に限られます。文字列の「50」、欠落したフィールド、null、Infinity、NaNは拒否されるため、データの誤りを早期に確認でき、API、ブラウザー、テストで同一の結果を維持できます。
一定の丸め精度を指定します
precisionでは、3成分に残す小数点以下の最大桁数を指定します。初期値は2で、0から6までの整数を使用できます。0なら整数になり、大きな値ほど計算結果の詳細を保持できます。色相を正規化した後に丸めるため、負の値や複数周分の値が出力へ残りません。不要な末尾のゼロは除かれ、負のゼロも通常のゼロになります。地域設定には依存せず、小数点には常にピリオド、引数の間にはコンマと空白を使い、彩度と明度には必ずパーセント記号を付けます。そのため、同じ有効な入力からは、実行環境にかかわらず完全に同じ文字列が得られます。
返されたCSSを安全に使用します
結果のcssフィールドにはhsl(h, s%, l%)形式の値が入ります。スタイル宣言、DOMのstyleプロパティ、デザイントークン、goldenテストなどへ使用できます。この機能は整形だけを行い、RGBや16進数からの変換、アルファ透明度の追加、コントラスト計算、文字色としての適否判定は行いません。テーマを一括生成する場合は、元データを検証し、色ごとに呼び出すとエラー箇所を特定しやすくなります。精度が公開仕様の一部なら明示的に指定してください。APIによる自動処理は1回につき$0.002です。返された文字列はCSSの色値が必要な場所だけに挿入してください。
活用例
デザイントークンを生成
計算済みHSLデータを統一されたCSS値に変換してから、テーマ変数やトークンファイルへ書き込めます。
フォーム出力を正規化
カラーピッカーの数値を検証し、プレビュー、保存、スタイル設定に使える安定した文字列を生成します。
安定したテストを作成
固定された丸めと空白により、同等の数値の表記差でスナップショットが変わることを防ぎます。
よくある質問
1回の料金はいくらですか?
APIの基本料金は1回あたり$0.002です。
入力にパーセント記号を含めますか?
いいえ。0から100までの数値を送信すると、必要な記号が自動的に追加されます。
0から360の範囲外の色相はどうなりますか?
色相環に沿って0以上360未満の範囲へ正規化されます。
小数点以下は何桁まで残せますか?
precisionに0から6までの整数を指定できます。初期値は2で、末尾のゼロは除かれます。
アルファ透明度に対応していますか?
いいえ。3成分からなる不透明なhsl()文字列を生成し、アルファ成分は受け付けません。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/color/hsl-to-css \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"hue":210.456,"saturation":64.444,"lightness":42.225}'const res = await fetch("https://api.kit.forhosting.com/color/hsl-to-css", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"hue": 210.456,
"saturation": 64.444,
"lightness": 42.225
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/hsl-to-css",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"hue": 210.456,
"saturation": 64.444,
"lightness": 42.225
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/hsl-to-css", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"hue":210.456,"saturation":64.444,"lightness":42.225}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"hue":210.456,"saturation":64.444,"lightness":42.225}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/hsl-to-css", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"hue": 210.456,
"saturation": 64.444,
"lightness": 42.225
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.hsl_to_css",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |