Embelezador CSS
O embelezador de CSS transforma folhas de estilo compactadas ou mal espaçadas em código mais fácil de ler, revisar e manter.
Executar grátis
Cole CSS de um artefato de build, bloco de estilo inline ou projeto antigo e receba uma versão com recuo uniforme e declarações separadas. Durante a leitura, o formatador respeita strings entre aspas, comentários, colchetes e parênteses. Ele também verifica a estrutura dos blocos e retorna um erro de entrada quando as chaves de abertura e fechamento não estão equilibradas.
Transforme folhas compactadas em código legível
O CSS de produção costuma ser minificado para reduzir o tamanho da transferência. Isso ajuda o navegador, mas dificulta o trabalho de quem precisa entender o código. Seletores, declarações, media queries e blocos aninhados podem virar uma única linha, tornando até uma pequena alteração difícil de examinar. Este embelezador recupera uma estrutura visual previsível: cada chave de abertura inicia um bloco recuado, cada ponto e vírgula que encerra uma declaração abre uma nova linha e cada chave de fechamento retorna ao nível anterior. O espaço entre tokens comuns é uniformizado sem modificar texto dentro de strings ou comentários. O resultado é útil quando o inspetor do navegador, uma pasta de build, um template de e-mail ou um tema de terceiros é a única fonte disponível. Em vez de inserir quebras manualmente e contar blocos aninhados, você recebe uma representação estável para ler ou copiar em um editor. A ferramenta não tenta validar todo recurso de CSS, ordenar declarações ou alterar decisões de estilo; ela se concentra em revelar a estrutura enviada.
Como o formatador protege os valores CSS
Um formatador seguro precisa entender que a pontuação nem sempre controla a estrutura da folha. Um ponto e vírgula dentro de um valor entre aspas faz parte do conteúdo, não encerra uma declaração. Chaves em uma string são caracteres, e a pontuação dentro de uma função, como uma URL de dados, não deve ser interpretada como separador de propriedades. Por isso, o formatador percorre o texto caractere por caractere e acompanha strings, escapes, comentários, parênteses e colchetes. As quebras estruturais só são adicionadas quando a pontuação aparece fora desses contextos protegidos. Dessa forma, rótulos, URLs incorporadas, seletores de atributos e funções complexas permanecem intactos, enquanto os blocos comuns ficam legíveis. Os comentários continuam junto ao código, em vez de serem removidos. A operação é determinística: entradas idênticas sempre geram saídas idênticas, sem rede, relógio, escolhas aleatórias ou variações do ambiente.
Detecte blocos incompletos antes da próxima etapa
O embelezamento também funciona como verificação estrutural quando o CSS foi copiado de uma resposta parcial, painel do navegador ou arquivo gerado. O analisador conta todas as chaves estruturais de abertura e fechamento, ignorando caracteres de chave dentro de strings, comentários, parênteses ou colchetes. Se uma chave de fechamento aparecer sem uma abertura correspondente, a solicitação falha e informa a posição do caractere. Se a leitura terminar com blocos abertos, o erro informa quantos ainda não foram fechados. Essa validação é intencionalmente específica: chaves equilibradas não garantem que toda propriedade, valor, seletor ou regra seja válida em determinado navegador. Elas garantem que o formatador não apresentará silenciosamente um bloco truncado como resultado correto. Use a saída limpa em revisões, comparações no controle de versão, documentação ou validações posteriores. O uso no navegador é gratuito; a formatação automatizada pela API aplica o preço-base publicado de US$ 0,002 por solicitação.
Casos de uso
Inspecionar um recurso minificado
Expanda uma folha de uma linha antes de rastrear um seletor ou revisar uma declaração inesperada.
Preparar CSS para revisão
Aplique recuo estável e quebras entre declarações para que a equipe se concentre no comportamento.
Conferir um trecho copiado
Detecte chaves estruturais ausentes ou excedentes após copiar estilos de um inspetor, template ou resposta gerada.
Perguntas frequentes
O que o embelezador de CSS altera?
Ele uniformiza o espaço estrutural, recua blocos com dois espaços e coloca declarações terminadas por ponto e vírgula em linhas separadas.
O texto em strings ou comentários será alterado?
Não. Strings entre aspas, caracteres escapados e conteúdo de comentários são preservados durante a leitura.
A ferramenta valida toda a sintaxe CSS?
Não. Ela verifica chaves estruturais e limites de formatação, mas não valida todo seletor, propriedade, valor ou regra específica de navegador.
O que acontece quando as chaves estão desequilibradas?
A solicitação falha com um erro de entrada inválida, em vez de retornar CSS parcialmente formatado.
Quanto custa uma solicitação de API?
Cada solicitação de API usa o preço-base publicado de US$ 0,002. A versão no navegador pode ser executada localmente sem chamar a API.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
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)Exemplo de requisição
{
"css": "body{margin:0;color:#222}@media (max-width:600px){body{margin:1rem}}"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.beautify_css",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |