Myna: Monospace typeface designed for symbol-heavy programming languages

birdculture | 335 points

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

gorgoiler | a day ago

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.

MarsIronPI | a day ago

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 `Λ` which is full height.

o11c | 21 hours ago

Looks pretty nice. I could download and try it but one character I find missing, from the sample, is emdash. I wrote a lot of markdown and many programming typefaces get emdash wrong (it’s hard to tell from a regular dash).

Looks like I’ll have to install this to see if it’s the case here.

BTW, I find the screenshots for this font quite a bit more useful in evaluating it than any of the other fonts referenced in the HN comments here. These help you decide at a glance.

codazoda | 2 hours ago

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.

thetwentyone | 21 hours ago

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.

kstrauser | 21 hours ago

> Are you frustrated that -> looks nothing like an arrow

The proper solution is, of course, to allow ←arrows→ (and, naturally, not trying to fit a variable peg into a monowidth whole)... maybe in the next generation of languages when the bottom level of typesetting quality is raised a bit

eviks | 12 hours ago

I think one thing you are running into here in the HN comments is that ligatures as they relate to source code editing can be somewhat controversial among developers who are especially vocal about their preferences.

Some people believe that ligatures make source code more readable. Even, perhaps, beautiful or "comfy."

Others feel that past a certain point, programming font choice doesn't really matter much and that too much time spent sharpening the saw means you never get around to cutting the wood. Or that hiding two physical symbols behind a single logical one for the sake of aesthetics is somewhere between pointless and dishonest.

Still others are of the opinion that we wouldn't need ligatures at all if programming languages understood Unicode. The other problem of course being that most of us don't have Unicode keyboards.

Your project seems to have somehow managed to upset all three camps and for that, I salute you and have starred your project on GitHub.

bityard | 5 hours ago

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.

floppyd | a day ago

There is already a relatively well-known icon font called Myna UI: https://mynaui.com/icons

Just a heads-up.

wvbdmp | a day ago

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.

Pet_Ant | 21 hours ago

I love when people make their own fonts (I make one myself), but I wish they had more unique personalities. These days it’s hard to tell one programming font from another.

rbanffy | 8 hours ago

My gripe with lots of fonts have been insistence on making 1-l-I confusable

the problem there isn't only in making characters distinct - but it's about not confusing one for another "in a vacuum", by itself

this font succeeded in making `I` unique - but `l` still looks like "one"

I wish people copied discord's font in this instance - remove bottom serifs altogether and replace with a slanted end

NooneAtAll3 | 16 hours ago

The Latex example should include at least a math formula.

fph | a day ago

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.

jablanyu | a day ago

It’s got some of the feel of a 3270 font while still being really different.

PaulHoule | 5 hours ago

Meta, but I've personally switched to a proportional font for my coding. Heresy, I know, but it feels wrong to have to look at code as if I'm coding on an 80 column terminal in 1960.

Input Sans is great:

https://input.djr.com

nielsbot | 12 hours ago

My favorite monospace font is "Ubuntu Mono" for ages.

As an engineer, I like to see -- for the lack of better word -- some taste instead of characters being too formal and too symmetric. Ubuntu and Ubuntu-Mono satisfy this to a good extent without being too much, like in comic sans.

The closest font with similar taste, which I found recently is Mononoki

iambvk | 14 hours ago

Beautiful.

The site should be more explicit about which characters are covered. I understand it's only ASCII, right? Although the example shows some currency signs that are definitely out of the 0-127 plane.

It would also be appreciated if you could suggest a fallback font for those glyphs not present in Myna, so that if I ever need to include the word "naïve" in a string, for example, the "ï" won't look as an alien character.

teo_zero | 17 hours ago

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!

jug | a day ago

I don’t get why should programming fonts be necessarily monospaced.

kalterdev | 6 hours ago

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...

dannyfritz07 | 20 hours ago

I really appreciate that the symbols are clear and well-aligned but I do not find the font very attractive or legible unfortunately. I like the Go Mono font though so maybe it’s a “me” problem. :)

binary132 | 16 hours ago

> Do you ever feel like your font treats symbols as second-class glyphs?

No because this problem has been solved by other font designers working with pretty much exactly the same requirements.

kazinator | 17 hours ago

I despise this style of curly braces where the arms look more like “S” than like “ʃ”. Don’t go backwards! :)

layer8 | a day ago

Reminds me of the beautiful M+ fonts.

https://mplusfonts.github.io/

superfamicom | 20 hours ago

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!

olivia-banks | 21 hours ago

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.

tmtvl | 21 hours ago
[deleted]
| a day ago

After testing it for an hour I concluded that for me, Cascadia Code is a lot more legible.

daneel_w | 19 hours ago

It's perfect. Please don't change anything about it.

mouse_ | a day ago

I wouldn’t program with it but I find it extremely aesthetic.

lynguist | 21 hours ago

Looks great except for l looking like 1

jijojv | a day ago

It's gorgeous. Thank you.

silversides | a day ago

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.

imiric | a day ago

A rust example is conspicuously missing from the README.

adastra22 | a day ago