Otimizando a Symbols Nerd Font

󰃭 15 Nov 2025 (updated: 15 Nov 2025 )

Eu estava com um problema no Blog da Toca do Rapoelho: O Blog estava pesando demais, muito mais do que deveria para um Blog, com um tamanho que chegava a 1,1 MB, de acordo com o teste no Pingdom:

Tamanho do Site antes de Otimizar as Fontes

Isso pra mim, era inadmissível, afinal, eu queria um site bem mais leve. Mas, decidi dar uma olhada no que estava dando esse tamanho todo, e vi que o maior responsável eram as fontes. 931 KB em fontes.

Tamanho dos Conteúdos antes de Otimizar as Fontes

Mas, qual era a fonte que estava consumindo isso tudo de espaço? Bingo. Era a symbols-nerd-font. Que é basicamente uma fonte de ícones, e nada mais.

A Symbols Nerd Font com 870 KB de tamanho

E com isso em mente, pensei: Como otimizar essa fonte e reduzir o tamanho dela?

Como Otimizar a Fonte?

Claramente, eu precisava remover caracteres dessa fonte. Mas como fazer isso? Afinal, essa é uma fonte que tem mais de dez mil caracteres! Não é a toa que ele pesa tanto no site.

A Symbols Nerd Font com mais de dez mil caracteres

E assim, comecei a pesquisar na Internet. Até que cheguei num utilitário chamado glyphhanger, e que ele tinha uma opção para fazer “subsetting1”. Isso seria uma excelente solução pra mim. Primeiramente, instalei as dependências:

sudo pacman -Syu python-zopfli python-brotli python-fonttools

E depois, usando o npm, instalei o glyphhanger.

sudo npm install -g glyphhanger

Glyphhanger instalado, comecei a selecionar quais caracteres eu iria manter. E acabei chegando a esses aqui:

      󰇮                    󰃭      󱀈      

Como fazer isso? Criei um novo arquivo .md, para o Hugo gerar uma página com os ícones que eu queria manter, peguei o index.html com os ícones gerados e usando o glyphhanger, gerei um subconjunto da symbols-nerd-font. E foi com esse comando que eu fiz isso:

glyphhanger ./index.html --subset=*.woff2

E assim, foi gerado o subconjunto, muito menor do que a fonte original. De mais de dez mil caracteres para vinte. Somente aqueles que são necessários.

A Symbols Nerd Font com apenas vinte caracteres

Movi os arquivos gerados para a pasta /themes/ficurinia/static/fonts/symbols-nerd-font/ e modifiquei o symbols-nerd-font.css, que estava assim:

/* symbols-nerd-font */
@font-face {
	font-family: Symbols Nerd Font;
	font-style: normal;
	font-weight: 400;
	src: local("Symbols Nerd Font"), local("SymbolsNF"), url(symbols-nerd-font.woff2) format("woff2");
}

Para isso:

/* symbols-nerd-font */
@font-face {
	font-display: swap;
	font-family: Symbols Nerd Font;
	font-style: normal;
	font-weight: 400;
	src: local("Symbols Nerd Font"), local("SymbolsNF"), url(symbols-nerd-font-subset.woff2) format("woff2");
}

E assim, estava sendo usado o Subconjunto ao invés de ser usada a fonte completa.

Resultados da Otimização

Depois de otimizar a fonte, atualizei o site e refiz o teste no Pingdom. E o resultado foi esse aqui:

Tamanho do Site depois de Otimizar as Fontes

De 1,1 MB para 240 KB. Uma redução de 79% no tamanho da página, o que foi uma diferença enorme. As fontes reduziram de 931 KB para 65 KB. Uma redução de mais de 90%.

Tamanho dos Conteúdos depois de Otimizar as Fontes

E a fonte que era responsável pelo site passar de 1 MB de tamanho, reduziu de 870 KB para 3,9 KB. Uma redução de mais de 99%, apenas por selecionar aqueles caracteres que estão sendo usados no site.

A Symbols Nerd Font com apenas 3,9 KB de tamanho

Palavras Finais

Agora, eu posso realmente migrar o Cantinho do Romeo para o Hugo sem a preocupação com as fontes e tenho um site realmente mais rápido e muito mais leve. Quero garantir que os meus Blogs carreguem o mais rápido possível, seja num WiFi de alta velocidade ou num 4G mais limitado.


  1. Subsetting é a prática de criar um “subconjunto” de uma fonte, que contém uma coleção personalizada (e geralmente limitada) de fontes. Via Google Fonts, em Inglês ↩︎


Mais publicações como esta

Começando a Migrar o Cantinho do Romeo para o Hugo

󰃭 08 Nov 2025 (updated: 08 Nov 2025 ) | #blog #cantinho-do-romeo #hugo #migracao

E já que migrei a Toca do Rapoelho do Wordpress.com para o Hugo, por que não fazer o mesmo com o Cantinho do Romeo?

Okay, sei que isso é um desafio homérico, já que o Cantinho do Romeo é um Blog com cinco anos de existência e que tem mais de novecentas postagens e que terão que ser arrumadas para que elas se adequem ao Hugo.

Mas por que migrar o Cantinho do Romeo para o Hugo? Para mim, o motivo é simples: Pela simplicidade e flexibilidade do Hugo.

Continuar a ler 