Embellecedor CSS
El embellecedor de CSS convierte hojas de estilo comprimidas o con espaciado irregular en código más fácil de leer, revisar y mantener.
Ejecutar — gratis
Pegue CSS procedente de un archivo de producción, un bloque de estilos en línea o un proyecto antiguo y obtenga una versión con sangría uniforme y declaraciones separadas. El formateador respeta cadenas entre comillas, comentarios, corchetes y paréntesis durante el análisis. También comprueba la estructura de los bloques y devuelve un error de entrada cuando las llaves de apertura y cierre no están equilibradas.
Convierta hojas comprimidas en código legible
El CSS de producción suele minificarse para reducir el tamaño de transferencia. Esto beneficia al navegador, pero dificulta el trabajo humano. Selectores, declaraciones, consultas de medios y bloques anidados pueden quedar en una sola línea, por lo que incluso un cambio pequeño resulta difícil de inspeccionar. Este embellecedor recupera una estructura visual predecible: cada llave de apertura inicia un bloque con sangría, cada punto y coma que termina una declaración inicia una línea y cada llave de cierre vuelve al nivel anterior. El espacio entre elementos normales se uniformiza sin alterar el texto incluido en cadenas o comentarios. El resultado resulta útil cuando el inspector del navegador, una carpeta de compilación, una plantilla de correo o un tema de terceros son la única fuente disponible. En vez de insertar saltos manualmente y contar bloques anidados, usted recibe una representación estable que puede leer o copiar en un editor. La herramienta no pretende validar todas las funciones de CSS ni modificar decisiones de estilo; se concentra en mostrar con claridad la estructura enviada.
Cómo protege el formateador los valores CSS
Un formateador seguro debe reconocer que la puntuación no siempre controla la estructura de una hoja de estilo. Un punto y coma dentro de un valor entre comillas forma parte del contenido y no termina una declaración. Las llaves de una cadena son caracteres, y la puntuación de una función, como una URL de datos, no debe interpretarse como separación entre propiedades. Por ello, el formateador recorre el texto carácter por carácter y controla cadenas, secuencias de escape, comentarios, paréntesis y corchetes. Solo añade saltos estructurales cuando la puntuación aparece fuera de esos contextos protegidos. Así conserva etiquetas, URL incrustadas, selectores de atributos y funciones complejas mientras organiza los bloques habituales. Los comentarios permanecen junto al código en vez de eliminarse. La operación es determinista: una misma entrada produce siempre la misma salida, sin solicitudes de red, valores de reloj, elecciones aleatorias ni comportamiento dependiente del entorno.
Detecte bloques incompletos antes del siguiente paso
El embellecimiento también sirve como comprobación estructural cuando el CSS se ha copiado desde una respuesta parcial, un panel del navegador o un archivo generado. El analizador cuenta todas las llaves estructurales de apertura y cierre, pero ignora las que aparecen dentro de cadenas, comentarios, paréntesis o corchetes. Si encuentra una llave de cierre sin una apertura correspondiente, la solicitud falla e indica la posición del carácter. Si llega al final y quedan bloques abiertos, informa de cuántos faltan por cerrar. Esta validación es deliberadamente limitada: unas llaves equilibradas no garantizan que cada propiedad, valor, selector o regla sea válida para un navegador concreto. Sí garantizan que el formateador no presentará silenciosamente un bloque truncado como resultado correcto. Utilice la salida para revisión, comparación en control de versiones, documentación u otra validación. El uso en el navegador es gratuito; el formato automatizado mediante API aplica el precio base publicado de $0.002 por solicitud.
Qué puede hacer con ella
Inspeccionar un recurso minificado
Expanda una hoja de una sola línea antes de rastrear un selector o revisar una declaración inesperada.
Preparar CSS para una revisión
Aplique sangría estable y saltos entre declaraciones para que la revisión se centre en el comportamiento.
Comprobar un fragmento copiado
Detecte llaves estructurales ausentes o sobrantes tras copiar estilos de un inspector, plantilla o respuesta generada.
Preguntas frecuentes
¿Qué modifica el embellecedor de CSS?
Uniformiza el espacio estructural, aplica una sangría de dos espacios y separa las declaraciones terminadas en punto y coma.
¿Cambiará el texto de cadenas o comentarios?
No. Las cadenas entre comillas, los caracteres escapados y el contenido de los comentarios se conservan durante el análisis.
¿Valida toda la sintaxis CSS?
No. Comprueba llaves estructurales y límites de formato, pero no verifica todos los selectores, propiedades, valores o reglas del navegador.
¿Qué ocurre si las llaves no están equilibradas?
La solicitud falla con un error de entrada no válida en lugar de devolver CSS formateado parcialmente.
¿Cuánto cuesta una solicitud de API?
Cada solicitud de API utiliza el precio base publicado de $0.002. La versión del navegador puede ejecutarse localmente sin solicitar la API.
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/dev2/beautify-css \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"css":"body{margin:0;color:#222}@media (max-width:600px){body{margin:1rem}}"}'const res = await fetch("https://api.kit.forhosting.com/dev2/beautify-css", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"css": "body{margin:0;color:#222}@media (max-width:600px){body{margin:1rem}}"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/beautify-css",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"css": "body{margin:0;color:#222}@media (max-width:600px){body{margin:1rem}}"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/beautify-css", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"css":"body{margin:0;color:#222}@media (max-width:600px){body{margin:1rem}}"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"css":"body{margin:0;color:#222}@media (max-width:600px){body{margin:1rem}}"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/beautify-css", 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
{
"css": "body{margin:0;color:#222}@media (max-width:600px){body{margin:1rem}}"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.beautify_css",
"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.
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. |