Voltar para o blog
Open SourceFerramentasProdutividade

Iosevka: a fonte monospace open source que cabe mais código

25 de outubro de 2026·6 min de leitura·Diego Horvatti

Você abre dois arquivos lado a lado no editor e a linha 47 quebra no meio de um useCallback. Monitor de 24 polegadas, fonte em 14px, e mesmo assim falta espaço. A Iosevka, uma fonte monospace open source mantida há mais de dez anos, existe por causa desse problema. Ela é estreita de propósito. E é uma das poucas fontes que você pode montar do zero, glifo por glifo, como quem escreve um arquivo de configuração.

O projeto fica em typeof.net/Iosevka, com código no GitHub e licença SIL Open Font License. Não teve lançamento bombástico nem anúncio essa semana. A fonte simplesmente continua lá, recebendo release atrás de release, enquanto muita fonte paga de programação cobra caro por bem menos.

O que é a Iosevka, afinal?

A Iosevka é uma família de fontes para código e terminal. Ela vem nas versões sans-serif e slab-serif, as duas monoespaçadas. A ideia central é simples: cada caractere ocupa metade de um quadratim. Na prática, ela é bem mais estreita que Fira Code, JetBrains Mono ou Consolas.

O criador é Belleve Invis, e o detalhe que mais me chamou atenção é como a fonte é feita. Ela não é desenhada à mão num editor de fontes tradicional. Ela é gerada por código. Os glifos são descritos de forma paramétrica e um build system em JavaScript monta os arquivos finais. É uma fonte que se compila.

Isso explica por que ela tem tantas variações:

  • Iosevka e Iosevka Slab: as versões principais, sem serifa e com serifa.
  • Iosevka Term: sem os glifos largos, ideal para terminal.
  • Iosevka Fixed: sem ligaduras, monospace estrita.
  • Iosevka Aile e Iosevka Etoile: quase proporcionais, pensadas para texto corrido e documentação.

Ou seja, dá para usar a mesma família no editor, no terminal e no README. Fica tudo com a mesma cara.

Por que uma fonte estreita muda o seu dia

Vamos aos números de um jeito bem prático. Numa tela onde a JetBrains Mono mostra uns 100 caracteres por linha, a Iosevka no mesmo tamanho mostra algo perto de 120. São uns 20% a mais de largura útil. Parece pouco até você trabalhar com split view.

Com dois painéis de código e um terminal, cada coluna ganha respiro. O eslint com max-len: 100 para de virar uma briga. O diff do Git lado a lado deixa de cortar a linha. E o painel de testes do Bun cabe sem esconder o nome do arquivo.

Tem um custo, claro. A fonte estreita parece apertada nos primeiros dias. A altura do x é generosa, o que ajuda na leitura, mas o olho estranha. Eu levei uns três dias para parar de achar que o código estava "espremido". Depois disso, voltar para uma fonte larga pareceu um desperdício de pixel.

A melhor fonte de programação é a que some depois de uma semana.

Como instalar e configurar a Iosevka no seu editor

O caminho mais curto é pegar os arquivos prontos na página de releases do GitHub. No macOS dá para usar o Homebrew:

brew install --cask font-iosevka
brew install --cask font-iosevka-term

No Linux, a maioria das distros tem pacote. Se não tiver, baixe o .zip da release e jogue os arquivos em ~/.local/share/fonts, depois rode fc-cache -f.

No VS Code (ou Cursor, que usa o mesmo formato), o settings.json fica assim:

{
  "editor.fontFamily": "'Iosevka', monospace",
  "editor.fontSize": 15,
  "editor.lineHeight": 1.5,
  "editor.fontLigatures": true,
  "terminal.integrated.fontFamily": "'Iosevka Term'"
}

Uma dica: suba o tamanho em 1px em relação à fonte que você usava antes. Como ela é estreita, 15px na Iosevka ocupa mais ou menos a mesma largura de 13px em outras fontes, e fica bem mais legível.

No terminal, a lógica é a mesma. No Ghostty, por exemplo:

font-family = Iosevka Term
font-size = 14

Se você usa ícones no prompt (Starship, oh-my-zsh com tema bonitinho), procure a versão patcheada no projeto Nerd Fonts. A Iosevka está lá também.

Dá para montar a sua própria versão da fonte

Aqui está o motivo de a Iosevka ter fãs quase religiosos. Não gostou do formato do 0? Troca. Quer o l com cauda para não confundir com 1? Troca. Prefere o @ mais redondo, o * mais alto, o { com outro desenho? Tudo isso é configurável.

Existem stylistic sets prontos que imitam a cara de outras fontes conhecidas. Então você pode ter algo parecido com Pragmata Pro ou Fira Mono, mantendo a métrica estreita da Iosevka. E se quiser ir além, escreve um build plan em TOML:

[buildPlans.IosevkaDiego]
family = "Iosevka Diego"
spacing = "normal"
serifs = "sans"
noCvSs = true
exportGlyphNames = false

[buildPlans.IosevkaDiego.variants]
inherits = "ss08"

[buildPlans.IosevkaDiego.variants.design]
zero = "slashed"
asterisk = "hex-high"

[buildPlans.IosevkaDiego.ligations]
inherits = "dlig"

Depois é clonar o repositório, instalar as dependências e mandar buildar:

npm install
npm run build -- ttf::IosevkaDiego

Um aviso honesto: esse build é pesado. Ele gera centenas de glifos em vários pesos e pode deixar a CPU no talo por um bom tempo. Se a sua máquina esquenta fácil como a minha, limite o build a um ou dois pesos no TOML, ou rode isso numa máquina de CI. Outra opção é usar o customizador no próprio site, que gera o arquivo de configuração clicando nas opções. Você vê o preview antes de compilar qualquer coisa.

É a parte que eu mais gosto como dev. A fonte é tratada como software: tem config versionada, tem build reproduzível, tem release. Você pode guardar o seu private-build-plans.toml no repositório de dotfiles e ter exatamente a mesma fonte em qualquer máquina.

Ligaduras: ligar ou não ligar?

A Iosevka suporta ligaduras, aquelas que transformam => numa seta e !== num símbolo só. Tem gente que ama. Tem gente que acha isso um crime contra a programação.

Minha opinião: em TypeScript, ligadura ajuda pouco e às vezes atrapalha. Quando você está revisando um !== contra um !=, quer ver exatamente quantos caracteres tem ali. Em code review ao vivo, explicando código para alguém, a seta bonita pode confundir quem está chegando agora.

O lado bom é que a Iosevka deixa você escolher conjuntos de ligaduras por linguagem, em vez do "tudo ou nada". Dá para manter as setas e desligar o resto. E se você quiser zero ligadura, a Iosevka Fixed resolve sem precisar mexer em config.

Vale a pena trocar a sua fonte por causa disso?

Se você programa em notebook ou trabalha muito com painéis lado a lado, eu diria que sim, vale testar por uma semana. A diferença em densidade é real e dá para medir. Se você usa um monitor ultrawide e uma janela só, o ganho é menor e talvez a sua fonte atual já sirva.

O que me convence mesmo é o projeto em si. Uma fonte livre, mantida há uma década, com qualidade de produto pago e um modelo de customização que nenhuma fonte comercial oferece. Pagar centenas de dólares numa fonte de programação faz cada vez menos sentido quando existe isso de graça. E, sinceramente, poucas coisas são tão nerd quanto compilar a própria fonte. Esse é o tipo de hobby que a sua família nunca vai entender.

Troquei faz um tempo e não voltei. Hoje todo o código que você vê nos meus projetos foi escrito olhando para uma Iosevka com zero cortado e asterisco alto. Detalhe pequeno, mas é a ferramenta que eu encaro oito horas por dia.

Resumo para o LinkedIn

Minha linha 47 quebrava no meio de um `useCallback` num monitor de 24 polegadas. O problema não era a tela, era a fonte.

Troquei para a Iosevka, uma fonte monospace open source mantida há mais de dez anos. Ela é estreita de propósito e cabe uns 20% a mais de código por linha.

Nos primeiros três dias achei tudo espremido. Depois, voltar para uma fonte larga pareceu desperdício de pixel.

O que mais me conquistou: ela é gerada por código. Você escreve um TOML, escolhe o zero cortado e o asterisco alto e compila a sua própria versão.

Uma fonte com config versionada, build reproduzível e qualidade de produto pago, de graça.

Se você vive com split view, testa por uma semana e me conta se volta atrás.

#Programação #OpenSource #DevTools #Produtividade #VSCode