Genere una etiqueta meta color-scheme y su propiedad CSS
Este generador convierte una elección de compatibilidad en dos declaraciones listas para copiar: el elemento meta HTML del encabezado y la propiedad CSS color-scheme correspondiente.
Ejecutar — gratis
Elija claro si la página solo admite una interfaz clara, oscuro si solo admite una interfaz oscura o ambos si todos los componentes funcionan correctamente en las dos apariencias. Obtendrá un resultado determinista y normalizado para plantillas, hojas de estilo, sitios estáticos, bibliotecas de componentes o procesos de compilación.
Declare los esquemas que su interfaz admite realmente
La declaración color-scheme es una promesa sobre la página, no un conversor automático de temas. Seleccione claro únicamente cuando controles, fondos, texto, bordes, imágenes y estados de foco funcionen en una presentación clara. Seleccione oscuro cuando esos elementos estén preparados para una presentación oscura. Elija ambos cuando toda la interfaz funcione en cualquiera de los dos esquemas. El generador convierte esta opción en <code>light dark</code>, con el claro como preferido. La precisión importa porque el navegador puede usar la información para controles nativos, barras de desplazamiento y el lienzo del documento. Una declaración exagerada puede causar controles incoherentes o destellos ilegibles. Revise entradas desactivadas, autocompletado, mensajes de validación, selección de texto, bloques de código, widgets e iconos. El mejor valor es la descripción más limitada y veraz de la compatibilidad publicada. La herramienta da un formato coherente; el diseño y las pruebas determinan si la declaración es cierta.
Coloque el HTML y el CSS generados donde corresponde
Inserte el elemento meta en el <code><head></code> del documento, preferiblemente antes de que el navegador pinte una parte importante de la interfaz. La etiqueta devuelta está completa y puede pegarse en HTML estático, un diseño renderizado en servidor o la configuración de cabecera de un generador de sitios. Coloque la declaración CSS en una regla que represente el ámbito deseado. Para todo el documento suele ser <code>:root</code>; un componente puede aplicarla a su propia raíz. El resultado contiene la declaración sin selector para que funcione con CSS normal, preprocesadores, módulos CSS y objetos de estilo. Ambos resultados usan el mismo valor normalizado y evitan discrepancias entre metadatos y estilos. Puede usarlos juntos como indicación temprana y valor explícito de la cascada, o integrar solo el que requiera su arquitectura. Después, inspeccione el código final y el CSS compilado, ya que los frameworks, gestores de cabecera, minificadores o declaraciones duplicadas pueden alterar el valor que recibe el navegador.
Separe la compatibilidad de la selección del tema
Admitir dos esquemas y elegir el tema activo son tareas relacionadas, pero distintas. <code>light dark</code> afirma que ambas presentaciones son compatibles; no crea variables de color, un selector de tema, preferencias persistentes ni consultas de medios. Una implementación sólida define variables semánticas para superficies, texto, bordes y acentos, y las modifica con la estrategia elegida. Esta puede seguir la preferencia del sistema, respetar una opción de cuenta, responder a un atributo del documento o combinar métodos. Genere la declaración después de completar los estados visuales. Pruebe la página con configuraciones claras y oscuras, navegación por teclado, zoom y modos de contraste alto o colores forzados. Compruebe imágenes, iframes, formularios externos, resaltado de sintaxis y diálogos nativos. En automatización, guarde la entrada elegida junto a las cadenas generadas. Si deja de admitir un tema, regenere ambas declaraciones desde la nueva opción en vez de editar una manualmente. Una fuente única evita divergencias entre plantillas, paquetes y despliegues.
Qué puede hacer con ella
Prepare la cabecera de una página
Cree un elemento meta correcto para una página estática o un diseño de servidor sin memorizar la sintaxis.
Mantenga alineados CSS y metadatos
Genere ambas declaraciones desde una opción para que la hoja de estilo y la cabecera no anuncien esquemas distintos.
Automatice la base de temas
Use el resultado determinista en generadores de proyectos, documentación, componentes o compilaciones configurables.
Preguntas frecuentes
¿Qué genera la opción ambos?
Genera el valor light dark, una etiqueta meta con ese contenido y la declaración CSS color-scheme correspondiente.
¿Esta herramienta crea un tema oscuro?
No. Declara los esquemas compatibles; usted debe preparar colores, recursos, estados y la selección del tema.
¿Debo usar la etiqueta meta, la propiedad CSS o ambas?
Use lo que requiera su arquitectura. Ambas ofrecen una indicación temprana del documento y un valor explícito en la cascada.
¿Puedo omitir el esquema y usar un valor predeterminado?
No. Es obligatorio porque una elección silenciosa podría describir falsamente la compatibilidad de su página.
¿Cuánto cuesta la llamada a la API?
Cada solicitud a la API cuesta $0.002. La experiencia web puede ejecutar localmente la misma lógica determinista.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
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)Ejemplo de solicitud
{
"scheme": "both"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.color_scheme_meta_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
timeout_sec | 30 |
max_crawl_pages | 25 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |