Minificador de CSS e JavaScript
Reduza o tamanho do seu CSS e JS removendo comentários e espaços desnecessários, com a economia em %.
Processamento local: nada do que você digita sai do seu navegador.
Como usar
Escolha CSS ou JavaScript, cole o código e veja o resultado na hora, com o tamanho antes e depois e a economia percentual.
O que cada modo faz
- CSS: remove comentários, colapsa espaços e quebras de linha, tira espaços em volta de
{ } ; , >e o último ponto e vírgula de cada bloco. Textos entre aspas são preservados. - JavaScript: remove apenas comentários de linha inteira (
//e/* */numa única linha), linhas em branco e espaços no início e fim de cada linha. Strings, templates e regex não são alterados, e as quebras de linha ficam, então não há risco com ponto e vírgula automático.
Limitações
Não é um minificador completo: não renomeia variáveis nem remove código morto, então a economia em JS é menor que a de Terser ou esbuild. Use essas ferramentas no build de produção.
Como implementar em código
Exemplos prontos para usar no seu projeto.
// Minificador de CSS simples (não protege textos entre aspas)
function minificarCss(css) {
return css
.replace(/\/\*[\s\S]*?\*\//g, '') // remove comentários
.replace(/\s+/g, ' ') // colapsa espaços
.replace(/\s*([{};,>])\s*/g, '$1') // espaços ao redor de símbolos
.replace(/:\s+/g, ':')
.replace(/;}/g, '}') // último ; é desnecessário
.trim();
}
console.log(minificarCss('a { color: red; }')); // a{color:red}Para JS de produção use Terser ou esbuild, que renomeiam variáveis com segurança.
import re
def minificar_css(css: str) -> str:
css = re.sub(r"/\*.*?\*/", "", css, flags=re.S) # remove comentários
css = re.sub(r"\s+", " ", css) # colapsa espaços
css = re.sub(r"\s*([{};,>])\s*", r"\1", css)
css = re.sub(r":\s+", ":", css)
return css.replace(";}", "}").strip()
print(minificar_css("a { color: red; }")) # a{color:red}Não protege textos entre aspas. Em produção use rcssmin/csscompressor.
package main
import (
"regexp"
"strings"
)
var (
reComentario = regexp.MustCompile(`(?s)/\*.*?\*/`)
reEspacos = regexp.MustCompile(`\s+`)
reSimbolos = regexp.MustCompile(`\s*([{};,>])\s*`)
reDoisPontos = regexp.MustCompile(`:\s+`)
)
func minificarCss(css string) string {
css = reComentario.ReplaceAllString(css, "")
css = reEspacos.ReplaceAllString(css, " ")
css = reSimbolos.ReplaceAllString(css, "$1")
css = reDoisPontos.ReplaceAllString(css, ":")
return strings.TrimSpace(strings.ReplaceAll(css, ";}", "}"))
}Não protege textos entre aspas.
String minificarCss(String css) {
return css
.replaceAll(RegExp(r'/\*.*?\*/', dotAll: true), '') // comentários
.replaceAll(RegExp(r'\s+'), ' ')
.replaceAllMapped(RegExp(r'\s*([{};,>])\s*'), (m) => m[1]!)
.replaceAll(RegExp(r':\s+'), ':')
.replaceAll(';}', '}')
.trim();
}Não protege textos entre aspas.
public class Minificador {
static String minificarCss(String css) {
return css
.replaceAll("(?s)/\\*.*?\\*/", "") // remove comentários
.replaceAll("\\s+", " ") // colapsa espaços
.replaceAll("\\s*([{};,>])\\s*", "$1")
.replaceAll(":\\s+", ":")
.replace(";}", "}")
.trim();
}
}Não protege textos entre aspas.
<?php
function minificarCss(string $css): string {
$css = preg_replace('#/\*.*?\*/#s', '', $css); // remove comentários
$css = preg_replace('/\s+/', ' ', $css); // colapsa espaços
$css = preg_replace('/\s*([{};,>])\s*/', '$1', $css);
$css = preg_replace('/:\s+/', ':', $css);
return trim(str_replace(';}', '}', $css));
}Não protege textos entre aspas.
using System.Text.RegularExpressions;
static string MinificarCss(string css)
{
css = Regex.Replace(css, @"/\*.*?\*/", "", RegexOptions.Singleline); // comentários
css = Regex.Replace(css, @"\s+", " ");
css = Regex.Replace(css, @"\s*([{};,>])\s*", "$1");
css = Regex.Replace(css, @":\s+", ":");
return css.Replace(";}", "}").Trim();
}Não protege textos entre aspas.
Perguntas frequentes
A minificação pode quebrar meu código?
No CSS e no JS o risco é baixo, pois só removemos o que não tem efeito. Mesmo assim, teste o resultado antes de publicar.
Por que a economia em JavaScript é pequena?
Porque este modo é conservador: não renomeia variáveis nem junta linhas. Ferramentas como Terser e esbuild economizam bem mais.
Meu código é enviado para algum servidor?
Não. Tudo roda no seu navegador.
Veja também
Precisa de um sistema ou app sob medida?
A VcInova desenvolve software, aplicativos e integrações para empresas de todo o Brasil.
Fale com a VcInova