Minifique código CSS e meça a redução de tamanho
Folhas de estilo legíveis costumam conter recuos, quebras de linha, comentários explicativos e pontos e vírgulas finais de que os navegadores não precisam.
Executar grátis
Este minificador remove esse peso de entrega e preserva textos entre aspas, a ordem dos seletores, as declarações e a estrutura das regras. Ele retorna o CSS compacto, as contagens de bytes UTF-8 original e final e a redução percentual. A operação é determinística, funciona sem acesso à rede e rejeita entradas cujas chaves não estejam equilibradas.
O que o minificador remove
O minificador se concentra na formatação desnecessária quando uma folha de estilo chega ao navegador. Ele remove comentários de bloco, compacta sequências de espaços e quebras de linha, elimina espaços ao redor da pontuação estrutural e retira o último ponto e vírgula imediatamente antes de uma chave de fechamento. Ele não reordena regras, combina seletores, renomeia propriedades personalizadas, encurta cores nem reescreve cálculos. Esse limite conservador é importante porque o comportamento do CSS depende da ordem do código, da especificidade e do conteúdo exato de determinados valores. As strings entre aspas são analisadas separadamente, portanto espaços, chaves, pontuação e trechos semelhantes a comentários dentro de uma URL ou de conteúdo gerado permanecem intactos. Aspas escapadas também são respeitadas. Os espaços que separam tokens são mantidos quando sua remoção poderia unir duas palavras ou valores. Use o resultado como um recurso gerado e mantenha o original legível no controle de versão.
Como funcionam a validação e a medição
Antes de retornar o resultado, o analisador acompanha cada chave de abertura e fechamento que aparece fora de comentários e strings entre aspas. Uma chave de fechamento sem abertura anterior, ou uma abertura ainda pendente no fim, produz um erro de entrada inválida em vez de CSS parcial. Essa verificação detecta cedo erros comuns de copiar e colar e folhas truncadas. A capacidade também rejeita CSS ausente ou vazio, comentários inacabados e strings não fechadas, pois essas entradas não podem ser minificadas de maneira previsível. Os tamanhos são medidos em bytes UTF-8, e não em quantidade de caracteres JavaScript. A diferença é importante em folhas com nomes de fontes não ASCII, conteúdo gerado localizado ou seletores Unicode, nas quais um caractere visível pode ocupar vários bytes na transferência. A redução é calculada com as duas contagens e arredondada para duas casas decimais. Como o mesmo analisador determinístico atende cada solicitação sem rede, aleatoriedade, relógio ou estado externo, entradas idênticas sempre geram o mesmo CSS e as mesmas métricas.
Como usar o resultado no fluxo de entrega
Um fluxo comum mantém o CSS formatado como fonte editável e minifica apenas a cópia destinada a um site, pacote de aplicativo, modelo de e-mail ou hospedagem de recursos estáticos. Envie a folha completa, leia o valor compacto no campo css e grave-o no artefato de implantação. Os campos original_bytes e minified_bytes podem ser registrados nos relatórios de compilação, enquanto reduction_percent fornece uma medida imediata e legível da economia. Um trabalho de integração contínua pode comparar essas métricas entre versões para detectar crescimento acidental, embora orçamentos de tamanho devam usar os bytes exatos, não a porcentagem arredondada. O analisador é um minificador, não um compilador CSS completo: ele não resolve importações, adiciona prefixos, valida todas as propriedades, transpila sintaxe nova nem combina arquivos. Execute primeiro essas transformações e minifique a saída CSS final. Se a validação de chaves falhar, corrija ou gere novamente a fonte. A automação pela API custa US$ 0,002 por solicitação.
Casos de uso
Preparar uma folha para produção
Transforme uma folha legível e comentada em um recurso compacto de implantação, mantendo a fonte original para manutenção.
Medir a otimização do CSS
Registre as contagens exatas de bytes UTF-8 e a redução percentual em um relatório de compilação ou desempenho.
Validar a estrutura de CSS gerado
Rejeite uma saída truncada do gerador quando as chaves das regras não estiverem equilibradas antes da implantação.
Perguntas frequentes
O que o minificador de CSS remove?
Ele remove comentários de bloco, espaços desnecessários na estrutura CSS e o ponto e vírgula anterior a cada chave de fechamento.
Quanto custa uma solicitação API?
Cada solicitação API custa US$ 0,002.
Como a redução percentual é calculada?
Ela compara as contagens de bytes UTF-8 original e minificada e arredonda o percentual para duas casas decimais.
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 incompleto ou potencialmente enganoso.
Comentários ou chaves dentro de strings são removidos ou contados?
Não. O conteúdo entre aspas é preservado, e suas chaves não interferem na validação estrutural.
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/minify-css \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"css":"/* Theme */\n.card {\n color: red;\n padding: 1rem;\n}\n"}'const res = await fetch("https://api.kit.forhosting.com/dev2/minify-css", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"css": "/* Theme */\n.card {\n color: red;\n padding: 1rem;\n}\n"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/minify-css",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"css": "/* Theme */\n.card {\n color: red;\n padding: 1rem;\n}\n"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/minify-css", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"css":"/* Theme */\\n.card {\\n color: red;\\n padding: 1rem;\\n}\\n"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"css":"/* Theme */\n.card {\n color: red;\n padding: 1rem;\n}\n"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/minify-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": "/* Theme */\n.card {\n color: red;\n padding: 1rem;\n}\n"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.minify_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. |