100 % local — seus dados nunca saem do seu navegador

Minificador HTML — página mais leve, mesmo visual

Tire os espaços de um HTML. Os valores de atributos e os espaços entre elementos em linha ficam: a página fica menor e continua igual na tela.

Instantâneo Privado Zero cookies

Entrada HTML

Saída HTML

O que esta ferramenta faz

HTML legível vira o menor HTML que renderiza igual.

<div>
  <p>  Olá  </p>
</div>
<div><p> Olá </p></div>

As sequências de espaços viram um espaço, os espaços entre elementos de bloco somem, e os comentários somem — menos os condicionais, que são instruções a um navegador antigo, não recados a um leitor.

O espaço entre dois elementos em linha é conteúdo

<span>a</span> <span>b</span>
<span>a</span> <span>b</span>

Ali não há o que tirar: esse espaço é renderizado, e apagá-lo transforma “a b” em “ab”. Ele era apagado, o que deixava a página diferente em vez de menor — um defeito real, encontrado ao escrever esta página e corrigido. Em volta de um elemento de bloco, o mesmo espaço não renderiza nada, então sai:

<div>a</div>   <div>b</div>
<div>a</div><div>b</div>

O valor de um atributo não é diagramação

<input value="a  b">
<input value="a  b">

Os dois espaços ficam. Eles eram achatados num só porque a passada sobre os espaços atravessava os atributos — e o valor que um formulário envia, o texto de um title, o conteúdo de um alt são dados, não indentação. Os valores entre aspas são postos de lado antes do achatamento e recolocados intactos.

Onde ela nunca entra

  • <pre> e <textarea>. Exibidos ou enviados exatamente como escritos.
  • <script> e <style>. O conteúdo deles é JavaScript e CSS; os minificadores deles são ferramentas à parte neste site, e rodá-los é decisão sua, não efeito colateral desta.
  • Os comentários condicionais. <!--[if IE]>…<![endif]--> é lido por um navegador, então fica.

Um limite que vale conhecer: uma região protegida acaba na tag de fechamento dela, achada por padrão. Um </script> literal dentro de uma string JavaScript, portanto, a termina cedo demais. Tratar esse caso direito exige um analisador HTML completo, que é outra ferramenta, diferente de um minificador de espaços.

Privado por padrão

Tudo é executado localmente no seu navegador com JavaScript. Os seus dados nunca são enviados para um servidor, o que torna a ferramenta segura para conteúdo sensível e funciona offline.

Perguntas frequentes

Isso muda a aparência da minha página?
Não, e valeu a correção. O espaço entre dois elementos em linha é renderizado: `<span>a</span> <span>b</span>` se lê “a b”, e tirá-lo dava “ab”. Agora ele fica quando os dois lados são em linha, e sai em volta dos elementos de bloco, onde não renderiza nada. Menor, não diferente.
Os valores dos meus atributos são mexidos?
Não mais. O achatamento dos espaços passava por dentro deles: `<input value="a b">` voltava com um espaço só — e o valor que um formulário envia não é questão de diagramação. `title`, `alt`, `data-*` e os demais tinham o mesmo problema. Os valores entre aspas agora são postos de lado antes do achatamento e recolocados exatamente como estavam.
O que fica totalmente em paz?
`<pre>` e `<textarea>`, cujos espaços são exibidos ou enviados como escritos; `<script>` e `<style>`, cujo conteúdo não é HTML; e os comentários condicionais (`<!--[if IE]>`), que são instruções e não recados. Os comentários comuns são removidos. Um limite conhecido: um `</script>` literal dentro de uma string JavaScript fecha a região protegida cedo demais — detectá-lo de verdade exige um analisador HTML completo.
` literal dentro de uma string JavaScript fecha a região protegida cedo demais — detectá-lo de verdade exige um analisador HTML completo."}}]}

Conversores relacionados