[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)