color-schemeメタタグとCSSプロパティを生成
このジェネレーターは、対応する配色の選択から、コピーして使える2つの宣言を作成します。文書のheadに置くHTMLメタ要素と、それに対応するCSSのcolor-schemeプロパティです。ライト表示だけに対応するページではライト、ダーク表示だけならダーク、すべての部品が両方に対応している場合は両方を選択してください。結果は常に一定かつ正規化され、テンプレート、スタイルシート、静的サイト、コンポーネントライブラリ、ビルド工程で利用できます。
無料で実行
実際に対応している配色だけを宣言します
color-scheme宣言はページの対応状況を示すものであり、テーマを自動変換する機能ではありません。コントロール、背景、文字、境界線、画像、フォーカス状態のすべてが明るい表示で利用できる場合だけライトを選択します。同じ要素が暗い表示向けに設計されている場合はダークを選び、画面全体がどちらでも正しく動作する場合は両方を選択してください。最後の選択は、ライトを優先順の先頭に置いた<code>light dark</code>に変換されます。ブラウザーはこの情報を標準フォーム部品、スクロールバー、文書の背景などに利用できるため、正確さが重要です。実際より広い対応を宣言すると、部品の外観が合わなかったり、読みにくい一瞬の表示が生じたりします。無効な入力欄、自動入力、検証メッセージ、文字選択、コードブロック、ウィジェット、固定色のアイコンも確認してください。このツールは宣言を正しく整形しますが、その内容が正しいかどうかは設計とテストによって確かめる必要があります。
生成したHTMLとCSSを適切な場所に配置します
生成されたメタ要素は文書の<code><head></code>内に置き、可能であればブラウザーが主要な画面を描画する前に読み取れる位置へ配置します。返されるタグは完全な形なので、静的HTML、サーバー側で描画するレイアウト、サイトジェネレーターのhead設定へそのまま追加できます。CSS宣言は、意図する範囲を表すルールに置いてください。文書全体なら通常は<code>:root</code>を使い、独立したコンポーネントならそのルートに適用できます。セレクターを含まない宣言だけを返すため、通常のCSS、プリプロセッサー、CSSモジュール、スタイルオブジェクトで利用できます。HTMLとCSSは同じ正規化済みの値を使うので、メタデータとスタイルの不一致を防げます。早い段階の文書ヒントと明示的なカスケード値として両方を使うことも、構成に必要な一方だけを使うこともできます。導入後は、フレームワーク、head管理機能、圧縮処理、重複宣言によって値が変わっていないか、最終的なソースとCSSを確認してください。
対応宣言とテーマ選択を分けて考えます
2つの配色に対応することと、現在のテーマを選ぶことは関連していますが別の作業です。<code>light dark</code>は両方の表示に対応することを示すだけで、色の変数、切り替えボタン、保存される設定、メディアクエリーを作成しません。堅牢な実装では、背景、文字、境界線、アクセントに意味のある変数を定義し、製品の方針に従って切り替えます。OSの設定、アカウント設定、文書属性、またはそれらの組み合わせを利用できます。すべての視覚状態が完成してから宣言を生成してください。ライトとダークのシステム設定、キーボード操作、拡大表示、高コントラスト、強制色モードでテストします。画像、iframe、外部フォーム、構文強調、標準ダイアログも確認が必要です。自動化では、生成文字列と一緒に選択した入力を保存すると意図を追跡できます。対応テーマを減らす場合は、一方だけを手作業で直さず、新しい選択から両方を再生成してください。単一の情報源により、テンプレート、パッケージ、配備先のずれを防止できます。
活用例
ページのheadを準備します
正確な構文を暗記せずに、静的ページやサーバーレイアウト用の正しいメタ要素を作成できます。
CSSとメタデータを一致させます
1つの選択から両方を生成し、スタイルシートと文書headが異なる配色を宣言する事態を防ぎます。
テーマのひな型を自動化します
一定の出力を、プロジェクト生成、文書化、コンポーネントのひな型、設定駆動のビルドに利用できます。
よくある質問
両方を選ぶと何が生成されますか?
light darkという値、その内容を持つメタタグ、対応するcolor-schemeのCSS宣言が生成されます。
このツールはダークテーマを作成しますか?
いいえ。対応する配色を宣言するだけです。色、素材、状態、テーマの選択方法は別途ご用意ください。
メタタグ、CSSプロパティ、それとも両方を使いますか?
構成に必要なものをご利用ください。両方なら、早期の文書ヒントと明示的なカスケード値を提供できます。
配色を省略して既定値を使えますか?
いいえ。暗黙の選択がページの対応状況を誤って示すおそれがあるため、配色は必須です。
API呼び出しの料金はいくらですか?
APIリクエスト1回につき$0.002です。Web画面では同じ決定的な処理をローカルで実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/web/color-scheme-meta-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"scheme":"both"}'const res = await fetch("https://api.kit.forhosting.com/web/color-scheme-meta-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"scheme": "both"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/color-scheme-meta-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"scheme": "both"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/color-scheme-meta-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"scheme":"both"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"scheme":"both"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/color-scheme-meta-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"scheme": "both"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.color_scheme_meta_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
timeout_sec | 30 |
max_crawl_pages | 25 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |