[HN Gopher] Myna: Monospace typeface designed for symbol-heavy p...
       ___________________________________________________________________
        
       Myna: Monospace typeface designed for symbol-heavy programming
       languages
        
       Author : birdculture
       Score  : 144 points
       Date   : 2025-11-07 18:27 UTC (4 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | MarsIronPI wrote:
       | Not trying to be negative, just confused: I don't really see how
       | this font is "designed for symbol-heavy languages". The symbols
       | look normal to me. Maybe the letters are a little more spaced?
       | I'd love to be enlightened.
        
         | floppyd wrote:
         | >Near-Perfect Alignment: multi-character symbols like ->, >>=,
         | =~, :: align seamlessly
         | 
         | The GitHub page has a list with 5 items of what was the focus,
         | this is the first (and I think the most easily noticeable) area
        
           | layer8 wrote:
           | I wonder why only _near_ -perfect.
        
             | sayyadirfanali wrote:
             | there are bounds to be many many operators and glyph
             | combinations where things don't match properly. an example
             | is the variable declaration and initialisation symbol in Go
             | which combines colon and equal sign. if you use Myna and
             | come across any such examples, please raise a feature
             | request. i only focused on glyphs for languages i use
             | personally. but if there is interest i am open to adding
             | contextual alternates to give some alignment in cases where
             | changing one glyph would disturb other combinations. of
             | course you can always point out any rendering or design
             | issues with singular glyphs too.
        
         | sayyadirfanali wrote:
         | designer here. by symbol-heavy languages i mean languages like
         | Perl and Haskell which make heavy use of symbols (sigils in
         | Perl and operators in Haskell). Myna was designed after my
         | frustration with other monospace fonts combined with my (self-
         | imposed) inability to use ligatures.
        
           | Avshalom wrote:
           | Apl, BQN and Oiua would like to talk to you.
        
             | andrewl-hn wrote:
             | And some proof assistant languages and frameworks. For a
             | second I was really excited there, but this is another font
             | with "programming ligatures".
        
               | sayyadirfanali wrote:
               | i know the title can be a bit misleading but Myna is
               | primarily ASCII.
               | 
               | languages which insist on using full Unicode like APL and
               | Agda have bigger problems (availability of uniform glyphs
               | and inconsistency with monospace design) on their plates.
               | which imo is one reason why full Unicode editing hasn't
               | really caught up.
               | 
               | Myna doesn't use any ligatures though. it would run on
               | almost all terminals and editors.
        
               | andrewl-hn wrote:
               | Yeah, I realize that I was wrong about ligatures
               | afterwards. The two plusses next to each other looked as
               | if they are a single combined glyph, but they are in fact
               | separate. I think this is the effect you were trying to
               | reach, and it looks very slick.
        
               | agarttha wrote:
               | What about a J example?
               | https://code.jsoftware.com/wiki/NuVoc
        
       | floppyd wrote:
       | I appreciate the effort, but the result kind of shows why usually
       | symbols are aligned as they are. Dashes, colons, angle brackets
       | -- all look way too high next to lowercase letter. I assume this
       | stems from trying to align everything with brackets, and those
       | are aligned with uppercase letters kind of naturally. But I don't
       | think the tradeoff is worth it.
        
         | sayyadirfanali wrote:
         | i understand the point you raise. but i believe symbols are
         | generally aligned as they are because most fonts are designed
         | for text and many monospace fonts respect those typographic
         | traditions.
         | 
         | but i think code is not text and breaking some tradition
         | improves readability.
         | 
         | the dash (hyphen) is actually supposed to align with the
         | greater than symbol to resemble the arrow (extremely common
         | symbol in C and many functional languages).
        
           | layer8 wrote:
           | The greater/less-than symbols look too high to me as well,
           | also when used as angle brackets like in
           | HTML/XML/C++/Java/TypeScript/....
        
       | adastra22 wrote:
       | A rust example is conspicuously missing from the README.
        
         | sayyadirfanali wrote:
         | please check the illustrations below.
        
         | tacker2000 wrote:
         | And JS and PHP, etc... some people have other language
         | priorities and thats fine
        
       | layer8 wrote:
       | I despise this style of curly braces where the arms look more
       | like "S" than like "S". Don't go backwards! :)
        
         | sayyadirfanali wrote:
         | a few others have raised the same point. in my defense i can
         | only say that i adore that particular style because it looks
         | more like what i draw by hand.
        
           | layer8 wrote:
           | I guess it depends on what you are used to. I draw them like
           | "S" by hand, and find the more squiggly style unnecessarily
           | noisy visually. It makes the brace direction a little less
           | obvious to see at first glance.
        
             | sayyadirfanali wrote:
             | surprisingly enough for me, the exact same point was raised
             | by others too. meanwhile, i was totally unaware that many
             | would find it hard to read it as i never ever had any
             | difficulty telling them apart even with the (admittedly
             | baroque) design of the braces. if that is the only feature
             | stopping you from trying this, please make a feature
             | request. maybe i could issue a "disambiguous braces"
             | variant.
        
               | jumaruba wrote:
               | I'm gonna raise another point, however. I think Myna's
               | braces are easier to distinguish from each other: "(" and
               | "{". After spending all day coding, they start to look
               | very similar. I agree it might not be super beautiful,
               | but for me, Myna has this advantage.
        
       | mouse_ wrote:
       | It's perfect. Please don't change anything about it.
        
         | evanjrowley wrote:
         | How do you feel about 'l' and '1' looking so similar in Myna?
        
           | mouse_ wrote:
           | Don't care even a 1ittle
        
       | jug wrote:
       | I personally love Jetbrains Mono; it's been one of a kind for me
       | and my tastes. I like it over Consolas (although this is one is
       | pretty good on Windows), Fira Mono, Inconsolata, Plex Mono. But I
       | can see the effort here and I'm definitely going to give this one
       | a try! I've found that typefaces can change a lot depending on
       | pixel alignment and rendering engines (i.e. ClearType, GDI,
       | FreeType, Quartz... let pixel grid decide or not, or by how
       | much...). So it's hard to tell if this is going to win me over
       | without actually trying!
        
         | sayyadirfanali wrote:
         | if you try it please feel free to create an issue if you find
         | some rendering bug in your system. i have tested and used it
         | extensively on Linux but not Windows or MacOS as much as i
         | should.
        
       | silversides wrote:
       | It's gorgeous. Thank you.
        
       | wvbdmp wrote:
       | There is already a relatively well-known icon font called Myna
       | UI: https://mynaui.com/icons
       | 
       | Just a heads-up.
        
         | sayyadirfanali wrote:
         | thanks for pointing it out. shouldn't be that confusing, i
         | guess.
        
       | fph wrote:
       | The Latex example should include at least a math formula.
        
       | jablanyu wrote:
       | Genuine question: is everyone coding on such high resolution
       | displays and/or with font sizes so big nowadays? For me, the
       | example screenshots are useless to see how the font would
       | actually look like in my editor.
        
         | mholt wrote:
         | I definitely increase my font size, so I'm not straining my
         | eyes. Any monitor with a lower than about 120 PPI causes me
         | strain, unless I really boost the size. For example I read HN
         | at anywhere from 150-200%.
        
         | trenchpilgrim wrote:
         | Yes, the bigger fonts are easier to read.
        
         | robinhood wrote:
         | Hard to talk about "everyone" since I'm not aware of any large
         | polls around this point. On a personal note, yes, considering
         | that I'm 44, I tend to always increase font size everywhere:
         | the code editor, the terminal, the browser, the OS itself and
         | mobile phone.
         | 
         | It's unavoidable for me. I was making fun of those people with
         | huge font sizes on phones 10 years ago. I'm almost one of them
         | now.
        
         | 1718627440 wrote:
         | As a counter example, I always decrease the font-size
         | everywhere. The annoying trend of bloating everything with
         | whitespace, means that less and less stuff fits on the screen.
         | But even HN is on 80% right now.
        
       | jijojv wrote:
       | Looks great except for l looking like 1
        
       | imiric wrote:
       | I like it, it's very clean. Nice work!
       | 
       | I like that it's relatively compact horizontally. If I had to
       | nitpick, the curly braces look a bit too "wavy" for my taste,
       | which doesn't quite match the hard angles on some other glyphs.
       | 
       | My favorite monospace font for the past 10+ years has been
       | Iosevka Term ss08. I've tried many others over the years, and
       | Iosevka is just perfect IMO.
       | 
       | Out of curiosity: what are the tools and the process to create a
       | font today? It would be interesting to read a bit about that.
        
         | sayyadirfanali wrote:
         | thanks for the feedback. about the braces please see another
         | comment below. the issue of needlessly complicated braces has
         | been raised quite a few times now. a variant could be
         | considered if there is more interest.
         | 
         | this particular font is quite simple and doesn't contain any
         | ligatures, etc. so most of the design is in Fontforge. i didn't
         | start from scratch. it started out as a customised version of
         | Source Code Pro (released as Hera and currently archived in my
         | profile) but i borrowed many glyphs from other fonts and
         | modified many others to the point it became a different font.
         | you can open the .sfd file directly in Fontforge to edit and
         | modify it yourself.
        
       | gorgoiler wrote:
       | Very nice and condensed. The same reason I switched to Iosevka (
       | _Joseph_ ), recently:
       | 
       | https://github.com/be5invis/Iosevka
       | 
       | The fun thing with Iosevka is that one stands a reasonable chance
       | of reading the source code (as opposed to just random numbers in
       | SplineSets etc.)
        
         | java-man wrote:
         | My favorite monospaced font, on Windows and Mac.
        
       | thetwentyone wrote:
       | Also see the JuliaMono typeface: https://juliamono.netlify.app
       | 
       | It was designed to be a comprehensive monocode typeface to
       | support Julia's full Unicode support.
        
       | kstrauser wrote:
       | This is very pretty, but...
       | 
       | The kerning in the "Lorem" at the top drives me batty. It nearly
       | looks like 2 words _to my eye_. I know that 's super subjective
       | and it probably doesn't bother anyone else at all. It's kind of a
       | deal breaker for me, though.
        
         | sayyadirfanali wrote:
         | i use this font basically everywhere and have become kinda
         | blind to the defects. for me it looked best when glyphs are
         | mostly centered (which makes them "genuinely monospace" if you
         | catch my drift).
         | 
         | but you raise a valid point. it is not entirely subjective.
         | some obviously grotesque (no pun) kerning would need to be
         | changed in the next version. if you can point out some obvious
         | ones i would urge you to create an issue.
        
           | theultdev wrote:
           | Looks beautiful! Have you done any focus on Typescript by
           | chance?
           | 
           | I will test it out and report any abnormalities I see!
        
       | olivia-banks wrote:
       | It would be nice to see some comparison with other fonts on the
       | GitHub page; the symbols look normal to me, at least. It looks
       | very pretty regardless!
        
         | sayyadirfanali wrote:
         | thanks for pointing it out. i would need to consider that idea.
         | 
         | the symbols are all pure ASCII and are supposed to look normal.
         | it is not a ligature font and neither focusses on Unicode
         | symbols. the symbols are just more evenly adjusted with the
         | letters and with each other.
        
           | olivia-banks wrote:
           | That's something I actually really like about this. I'm not a
           | huge fan of ligatures and think they're counter productive.
           | Makes it a bit harder to see the differences though, even if
           | it does make a big difference subconsciously and whatnot, so
           | I think a comparison would be great.
        
       | tmtvl wrote:
       | Looks pretty good, but I often need to read Japanese characters
       | so I'm gonna stick to IBM Plex, which has both Monospace and CJK
       | variants.
        
         | justsomehnguy wrote:
         | > IBM Plex
         | 
         | I found what while it's not the best for me - it is suprisingly
         | good for a PowerPoint-like presentations, #specially the
         | condensced vars.
        
       | Pet_Ant wrote:
       | I don't know why "->" should render as an arrow when we could
       | just use an actual Unicode arrow. If need be, have macros for
       | your editors that allow you to convert the "->" into an actual
       | arrow.
        
         | gmueckl wrote:
         | Not all code editing sessions are created equal. I dare you to
         | deal with Unicode symbols in a vim session over SSH with a 1
         | second RTT, for example :).
        
         | sayyadirfanali wrote:
         | it is partially a matter of design and code philosophy. many
         | like the simplicity of ASCII and consider ligatures
         | distracting.
         | 
         | but more than preference there is matter of availability and
         | consistency. Unicode is not available for all possible glyph
         | combinations and many times what we see in Unicode looks quite
         | ugly in monospace because of the width constraint.
         | 
         | ligatures are also not supported everywhere. that is one of the
         | reason i designed this.
        
       | o11c wrote:
       | This, like many fonts, fails to handle vertical arrows:
       | |    ^       v    |
       | 
       | Note that the raised appearance of `^` exists for compatibility
       | with typewriters that use the backspace key to use it as a
       | circumflex accent over lowercase letters. This is doubly obsolete
       | today (we have real combined characters and can use them on
       | uppercase). This is one of those cases where the name originally
       | _used_ for the character in various standards is in conflict with
       | the way people actually have come to use it.
       | 
       | The bottom of the independent caret should be lower, roughly
       | symmetrical to the letter `v` (this is not traditionally a goal).
       | The top should still reach the height of a capital letter, but
       | the bottom should descend into the lowercase letter area - for
       | many fonts, perhaps to the level of the horizontal part of a
       | lowercase `e` (is there a typographical term for this?)? For
       | fonts where the x-height is half of the cap-height, there might
       | be no overlap with the lowercase letter, though it still doesn't
       | need to worry about leaving space.
       | 
       | The bottom of the caret _is_ , however, higher than the
       | mathematical "and" sign [?], which rests on the baseline (and
       | usually does not reach full height) or the Greek capital lambda
       | `L` which is full height.
        
         | munchler wrote:
         | Your point about the caret is interesting, but I'm a bit
         | dubious about using them for vertical arrows. I don't think it
         | would be practical to type this combination in one go, since
         | the two symbols would be on two separate lines. For the upward
         | arrow, are you suggesting caret-return-space-space-
         | space-...-vertical bar?
         | 
         | Are there any programming languages that use vertical arrows?
         | Do they appear on one line or two?
        
           | o11c wrote:
           | > Are there any programming languages that use vertical
           | arrows? Do they appear on one line or two?
           | 
           | Befunge (1993; many later languages were inspired by it) uses
           | just the ASCII arrowheads. The arrow tail is more likely to
           | exist in doc comments.
        
           | leephillips wrote:
           | APL
        
         | sayyadirfanali wrote:
         | thanks for pointing it out. as i mention below in a comment,
         | there are bound to be many combinations which don't align
         | (especially vertical ones). i would ideally tell you to invoke
         | a feature request but i am not sure this esoteric combination
         | could even be detected in a contextual alternate rule (which
         | Myna doesn't support anyways for now).
         | 
         | beside if i may say so in my defense, the comparison is a bit
         | unfair as a V (a full letter) is being compared to a caret
         | (almost a superscript symbol). i have broken many typographical
         | conventions but it won't make sense to break programmatic
         | convention of the caret operator just for the alignment of the
         | vertical arrows.
        
         | tln wrote:
         | Are you trying to get a ligature that crosses lines?
         | 
         | You could maybe try U+2303 (^) for the up arrowhead, but why
         | not just use U+2191 (|) for the standard arrow?
         | 
         | The crossbar height of lowercase letters is not a common
         | typographical reference point...
        
           | o11c wrote:
           | I don't care about ligatures, just symmetry.
        
         | imiric wrote:
         | I don't see such a niche use case as a design failure.
         | 
         | By your logic, the lowercase "v" should extend even higher to
         | meet the pipe. The caret has conventionally been higher for a
         | long time, and IMO would look out of place making it the
         | inverse "v".
         | 
         | If you want arrows, just use U+2191 and U+2193.
        
       | lynguist wrote:
       | I wouldn't program with it but I find it extremely aesthetic.
        
       | dannyfritz07 wrote:
       | Very similar to Intel One Mono which is a font I love to use.
       | 
       | - https://www.intel.com/content/www/us/en/company-overview/one...
        
       ___________________________________________________________________
       (page generated 2025-11-07 23:00 UTC)