2 pontos por GN⁺ 2025-11-09 | 2 comentários | Compartilhar no WhatsApp
  • Uma fonte monoespaçada que trata símbolos usados com frequência em linguagens de programação no mesmo nível que letras, com o objetivo de trazer harmonia visual ao editor de código
  • Com um design centrado em símbolos ASCII, melhora o alinhamento de símbolos com múltiplos caracteres como ->, :: e =~, oferecendo espessura equilibrada e distinção clara
  • Considera a legibilidade por linguagem, representando com clareza símbolos e operadores em Perl, Haskell, C e outras
  • Atualmente é oferecida em peso único e sem ligaturas, com suporte a negrito sintético em ambientes Linux com fontconfig e pango
  • Distribuída sob a SIL Open Font License 1.1, permitindo uso e modificação livre

Visão geral do Myna

  • Myna é uma fonte monoespaçada que trata símbolos como glifos de primeira classe, com foco em aumentar a consistência visual dos símbolos em linguagens de programação
    • Resolve problemas em que símbolos como ->, $, @ e % parecem estranhos em fontes existentes
    • Mantém a simplicidade do ASCII enquanto imita o efeito estético das ligaturas

Principais características

  • Symbol-First Design: projetada com foco nos símbolos ASCII usados em várias linguagens de programação
  • Precisão de alinhamento: aumenta a precisão no alinhamento de símbolos com múltiplos caracteres como ->, >>= e ::, melhorando a legibilidade do código
  • Espessura equilibrada (Weight): mantém um contraste harmonioso entre símbolos e letras
  • Formas minimalistas: aspas, vírgulas e outros elementos são simplificados em formas geométricas
  • Distinção clara: reforça a diferenciação entre caracteres facilmente confundidos como 1, l, I, |, 0, O e o
  • Design sensível à linguagem: exibe com clareza os sigils do Perl, os operadores do Haskell e a notação simbólica do C

Contexto de desenvolvimento e situação atual

  • Fonte criada diretamente pelo autor por não estar satisfeito com os detalhes dos glifos em fontes monoespaçadas existentes
  • Foi publicada após ser usada por longo tempo pelo próprio desenvolvedor em projetos profissionais e pessoais
  • Atualmente é oferecida em peso único, sem ligaturas, com possibilidade de expansão conforme a demanda
    • Suporte a negrito sintético por meio de fontconfig e pango em ambientes Linux
  • Aplicação da SIL Open Font License 1.1
  • A versão inicial partiu da Hera (uma customização baseada na Source Code Pro)
  • Evoluiu com referência a qualidades de várias fontes, como Fira Mono, Inconsolata, Plex Mono, Office Code Pro e Anonymous Pro

Planos futuros

  • Objetivo de uso geral em terminais e editores
  • Inclusão de alguns glifos não ASCII, como símbolos geométricos e matemáticos
  • Expansão de glifos e adição de recursos previstas com base no feedback da comunidade

2 comentários

 
bobross0 2025-11-11

Uso a fonte da JetBrains, então isso parece interessante.

 
GN⁺ 2025-11-09
Comentários no Hacker News
  • Mudei recentemente para Iosevka (pronuncia-se Joseph) exatamente por causa dessa concisão
    Link do GitHub do Iosevka
    O curioso é que a estrutura é tão clara que dá até para ler o código-fonte da fonte de verdade

    • Iosevka é realmente uma fonte linda. O visual condensado da Myna também foi inspirado nela
      A versão anterior, Hera, era uma versão não condensada customizada da Source Code Pro
    • O Iosevka oferece builds personalizadas por conta própria, então dá para escolher várias variantes de glifos e ligaturas. É algo bem impressionante
    • Só agora descobri que Iosevka é uma variação de Joseph. Usei por anos e nem sabia a pronúncia. Mesmo estando no README
    • Vale testar também o Pragmasevka. Migrei do Iosevka e sinto que a legibilidade é um pouco melhor
    • Eu uso Iosevka Orw. Tem uma largura ideal, no meio-termo entre o Iosevka padrão e um monospace comum
  • Sinceramente, não entendo muito bem a descrição “fonte para linguagens carregadas de símbolos”. Os símbolos parecem normais. Talvez o espaçamento seja um pouco mais amplo?

    • O primeiro item de destaque na página do GitHub é “Near-Perfect Alignment”. Ou seja, símbolos com vários caracteres como ->, >>= e :: ficam perfeitamente alinhados
    • Sou designer. Aqui, linguagens carregadas de símbolos significa linguagens com muito uso de símbolos, como Perl ou Haskell. Eu queria criar uma fonte com alinhamento limpo sem usar ligaturas
    • Ao explicar diferenças de design, é preciso mostrar exemplos reais de comparação. Sem imagens comparativas, a confusão é inevitável
  • A fonte é bem bonita. Só que parece que o caractere emdash (—) está faltando na amostra. Eu uso muito Markdown, e muitas fontes de programação representam esse caractere de forma ruim
    A captura de tela ajuda muito mais na avaliação do que nas outras fontes

    • Sim, o em-dash é mais do que um simples caractere. Eu o considero um elemento central de uma boa escrita (meio brincando, meio falando sério)
    • Obrigado pelo feedback. Nesta fonte, o en-dash foi desenhado mais largo, então fica difícil distingui-lo do em-dash. Eu quase nunca uso em-dash, então não senti necessidade dessa distinção
      Ainda assim, posso avaliar uma melhoria se houver pedido
  • Como acontece com muitas fontes, o alinhamento das setas verticais (↑↓) também parece estranho nesta
    O caractere ^ originalmente existia para o acento circunflexo na era das máquinas de escrever. Por isso sua altura é assimétrica. Acho que seria bom se a base do caret fosse simétrica ao v

    • Nunca vi o caret ser usado como seta para cima e para baixo. Não acho que simetria seja realmente necessária
    • Usar caret como seta vertical não é realista. Teria que digitar em duas linhas. Fico até curioso se existe alguma linguagem que realmente use isso
    • Você está tentando criar uma ligatura que atravesse linhas? Não seria melhor simplesmente usar o do Unicode?
    • Sou designer. É difícil detectar esse tipo de combinação, e o caret é originalmente um símbolo de operador, então não se deve quebrar seu significado programático. Compará-lo com v não é justo
    • O motivo histórico do caret não importa muito. Hoje todo mundo já está acostumado com esse formato. Mudar a fonte por causa de um caso tão específico só geraria confusão
      A fonte precisa manter formas previsíveis
  • Sobre a reclamação de que “-> não parece uma seta”, a solução real é usar setas de verdade como ←→. Espero que, algum dia, as linguagens ofereçam melhor qualidade tipográfica

    • Sou designer. É impossível ter elegância e consistência ao mesmo tempo. Estamos tentando fazer código baseado em ASCII ficar bonito sem ligaturas
    • Ligaturas existem
  • JuliaMono é uma fonte projetada para o suporte completo a Unicode na linguagem Julia

    • Obrigado pelo link. Os glifos parecem muito ricos. Também é interessante usar um sistema de fallback como JuliaMono2, 3 e 4 para contornar limites da fonte
    • Sou designer. Trabalho principalmente na faixa ASCII, mas definir JuliaMono como fonte auxiliar da Myna pode ampliar a cobertura Unicode
  • A fonte é bonita, mas o espaçamento entre as letras de “Lorem” no topo parece aberto demais, então o kerning soa estranho. Pessoalmente, isso me incomoda

    • Sou designer. Depois de usar todo dia, fiquei insensível aos defeitos. Ainda assim, a observação faz sentido. Vou considerar um ajuste de kerning na próxima versão. Se tiver exemplos concretos, por favor abra uma issue
  • Ligaturas são um tema bastante controverso entre desenvolvedores
    Algumas pessoas acham que o código fica mais bonito e fácil de ler, enquanto outras veem isso como “esconder símbolos de forma desnecessária ou desonesta”
    Outras ainda dizem que, se as linguagens oferecessem suporte adequado a Unicode, ligaturas nem seriam necessárias
    No fim, este projeto provocou os três grupos ao mesmo tempo, e isso o torna ainda mais interessante. Dei uma estrela no GitHub

    • Na maioria dos editores, ligaturas podem ser ativadas ou desativadas como opção. Então ninguém fica de fora
  • Parece que os símbolos estão posicionados altos demais ao lado das letras minúsculas. Isso parece ter surgido da tentativa de alinhar com os parênteses. Falta um pouco de equilíbrio visual

    • Sou designer. Fontes comuns são centradas em texto e seguem alinhamento tradicional, mas código não é texto
      Romper com a tradição pode até melhorar a legibilidade. O hífen foi desenhado para se alinhar com > e formar um formato de seta
  • Já existe uma fonte de ícones chamada Myna UI. Pode causar confusão

    • Sou designer. Obrigado por avisar. Ainda assim, acho que não vai haver grande confusão