Voltar para o blog
Open SourceFontesFerramentas

Iosevka: a fonte monoespaçada que você compila

02 de novembro de 2026·6 min de leitura·Diego Horvatti

Você abre dois arquivos lado a lado, e o editor começa a quebrar linha em tudo que passa de 100 caracteres. Antes de comprar um monitor maior, vale testar uma solução grátis: a Iosevka, uma fonte monoespaçada open source, estreita e tão configurável que você pode compilar a sua própria versão. Ela tem variantes sans e slab, e o site oficial inclui até um configurador para gerar uma build personalizada.

A Iosevka não é novidade. O projeto existe há cerca de uma década, é mantido por Belleve Invis e usa a licença SIL Open Font License. Ela volta e meia reaparece em discussões de dev porque resolve um problema que a maioria das fontes ignora: cada pessoa quer um detalhe diferente, e a Iosevka deixa você escolher.

O que a fonte Iosevka tem de diferente?

A primeira diferença é a largura. Cada caractere da Iosevka ocupa 0,5 em, enquanto a JetBrains Mono e a Fira Code ocupam 0,6 em. Parece pouco, mas a conta muda bastante:

  • Em 14px, cada caractere da Iosevka tem 7px de largura.
  • Na JetBrains Mono, tem 8,4px.
  • Num painel de 960px, isso dá 137 colunas contra 114.

São 23 colunas a mais no mesmo espaço, sem reduzir o tamanho da letra. Em um split de editor com terminal do lado, faz diferença.

A segunda diferença é o jeito como ela é feita. A maioria das fontes sai pronta de um editor de tipos. A Iosevka é gerada por código: os glifos são descritos de forma paramétrica, e um build monta as famílias. Por isso ela consegue oferecer tantas combinações de peso, largura, serifa e formato de cada letra.

A terceira é o catálogo de estilos prontos. Os stylistic sets imitam a sensação de outras fontes conhecidas. O ss14 lembra a JetBrains Mono, o ss05 lembra a Fira Mono e o ss09 lembra a Source Code Pro. Dá para trocar a personalidade da fonte sem trocar de fonte.

Fonte de código é ferramenta. Se você passa oito horas por dia olhando para ela, pode ajustar como ajusta o linter.

Iosevka, Term ou Fixed: qual variante usar?

Essa é a dúvida que mais trava quem chega agora. A diferença está em como cada variante lida com largura e ligaduras:

  • Iosevka: a versão padrão. Tem ligaduras, e alguns símbolos, como setas, ocupam mais espaço.
  • Iosevka Term: símbolos e setas ficam dentro de uma célula. É a escolha mais segura para terminal e, na minha opinião, para editor também.
  • Iosevka Fixed: sem ligaduras. Serve para terminais e programas que quebram o alinhamento quando encontram uma ligadura.

Existem ainda duas famílias quase proporcionais, a Aile (sans) e a Etoile (slab). Elas não servem para código, mas funcionam bem em documentação, notas e interfaces. Se o seu blog usa Iosevka nos blocos de código, a Aile pode acompanhar no texto sem criar contraste estranho.

Se ficou com preguiça de decidir, instale a Term. Ela evita a maior parte das surpresas.

Como instalar e testar no VS Code

No macOS, o Homebrew resolve:

brew install --cask font-iosevka

No Linux, confira o repositório da sua distro ou baixe o pacote na página de releases do GitHub. Eu prefiro baixar só a família que vou usar. O pacote com tudo é grande, e você não vai precisar de todas as variações.

Depois, ajuste o editor. Aqui vai um exemplo para o VS Code com a Term e o estilo inspirado na JetBrains Mono:

{
  "editor.fontFamily": "Iosevka Term",
  "editor.fontSize": 15,
  "editor.lineHeight": 1.5,
  "editor.fontLigatures": "'calt', 'ss14'"
}

Repare no fontSize 15. Como a Iosevka é estreita, ela parece menor do que a fonte anterior no mesmo tamanho. Subir um ponto costuma compensar, e você ainda sai com mais colunas do que tinha. Um lineHeight mais generoso também ajuda, porque letra estreita com linha apertada cansa rápido.

No terminal, a lógica é a mesma. Se o seu usa um arquivo de configuração, como o Kitty, basta apontar para a família:

font_family Iosevka Term
font_size 12.0

Compilar a sua própria Iosevka compensa?

Na maioria dos casos, não. Só que é aqui que a fonte fica divertida.

Você pode descrever a sua versão em um arquivo private-build-plans.toml. Ele define espaçamento, serifa, estilo base e detalhes de glifos específicos. Por exemplo:

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

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

[buildPlans.IosevkaDiego.variants.design]
zero = "dotted"

[buildPlans.IosevkaDiego.weights.Regular]
shape = 400
menuName = "Regular"
css = 400

[buildPlans.IosevkaDiego.weights.Bold]
shape = 700
menuName = "Bold"
css = 700

Depois, com Node e ttfautohint instalados, clone o repositório e rode o build:

npm install
npm run build -- ttf::IosevkaDiego

Os nomes das opções mudam com o tempo. Em vez de confiar no meu exemplo, gere o TOML no configurador oficial e cole no projeto. É mais rápido e você vê o resultado antes de compilar.

Um aviso: o build usa bastante CPU. Se você pedir muitos pesos e larguras, o notebook vira aquecedor por um bom tempo. Limite o plano aos pesos que realmente usa, como no exemplo acima. Quem quer fugir disso pode rodar a build no GitHub Actions e baixar o artefato pronto.

Vale a pena quando você tem uma implicância específica: não gosta do 0, quer outro l, ou trabalha com um conjunto pequeno de pesos e quer arquivos menores. Se a fonte padrão já agrada, compilar é só um hobby. Um hobby inofensivo, mas ainda hobby. Ninguém nunca entregou uma feature mais rápido porque o asterisco ficou três pixels mais alto.

Dá para usar a Iosevka na web?

Dá, mas com cuidado. A cobertura de caracteres é enorme, e carregar o arquivo inteiro em um site é desperdício. Se você só mostra código em português e inglês, faça um subset com o pyftsubset, do fontTools:

pyftsubset Iosevka-Regular.ttf \
  --unicodes="U+0020-007E,U+00A0-00FF" \
  --layout-features='*' \
  --flavor=woff2

Esse comando mantém os caracteres latinos básicos e os acentos, e preserva os recursos de OpenType, incluindo ligaduras. Para o --flavor=woff2 funcionar, o pacote brotli do Python precisa estar instalado.

No Next.js, depois disso, o caminho é o next/font/local, que hospeda a fonte junto com o site:

import localFont from 'next/font/local'

export const iosevka = localFont({
  src: './Iosevka-Regular.subset.woff2',
  variable: '--font-mono',
  display: 'swap',
})

Em site de produto, eu pensaria duas vezes antes de usar uma fonte tão estreita em texto corrido. Em blocos de código e tabelas densas, ela funciona bem. Em parágrafos, a Aile ou uma sans comum dão menos trabalho aos olhos.

O que muda no seu dia a dia

Vamos ser honestos: trocar de fonte não vai deixar você programar melhor. O ganho é pequeno, físico e diário. Você enxerga mais colunas, faz menos scroll horizontal e consegue manter dois arquivos abertos em uma tela menor.

Há também um custo real. Uma fonte estreita exige alguns dias de adaptação, e nem todo mundo se acostuma. Se você tem dificuldade para ler texto denso, ou usa fonte pequena, talvez a JetBrains Mono continue sendo a escolha melhor. Ela tem mais respiro, e respiro também é produtividade.

O que eu admiro na Iosevka é o projeto em si. Uma fonte gerada por código, com licença aberta e um sistema de build que qualquer dev entende, trata tipografia como software. Você abre um arquivo de configuração, altera uma linha e compila.

Minha recomendação é simples: instale a Iosevka Term, use por uma semana com tamanho um ponto acima do atual e depois decida. Se não gostar, a desinstalação custa um comando. Se gostar, cuidado: daqui a pouco você está comparando variantes do número zero às duas da manhã. Se curte esse tipo de obsessão por detalhe, dá uma olhada nos projetos que eu tenho feito por aqui.

Resumo para o LinkedIn

Troquei a fonte do editor e ganhei 23 colunas sem comprar monitor nem diminuir a letra.

A Iosevka é open source e mais estreita: 137 colunas contra 114 da JetBrains Mono, no mesmo painel de 960px.

O que mais me pegou foi outra coisa: ela é gerada por código. Você edita um arquivo de configuração, altera uma linha e compila a sua própria fonte.

Não vai deixar ninguém programar melhor. O ganho é pequeno, físico e diário.

Se quiser testar, instale a Iosevka Term e use por uma semana, com a fonte um ponto acima da atual.

Escrevi o passo a passo completo no blog. Só cuidado para não acabar comparando variantes do número zero às duas da manhã.

#Iosevka #OpenSource #DesenvolvimentoDeSoftware #VSCode #Produtividade