
Iosevka – A Typeface for Code, from Code - justinjlynn
https://be5invis.github.io/Iosevka/
======
indemnity
This font has been my daily driver for at least a year.

It has some similarities with Pragmata Pro (my previous font), but has evolved
to have its own personality now.

I build a custom version of the font with this command-line:

    
    
      $ make custom-config design='v-tilde-low v-asterisk-low v-underscore-low v-at-short v-zero-dotted term' && make custom
    

This gives me:

\- Disabled ligatures (I don't like them for my coding font)

\- Underscore below the baseline (it is called _under_ score, after all)

\- Tilde and asterisk centered vertically

\- Zero with dots through it

\- Fira Sans style @ symbol.

Sample: [http://i.imgur.com/Hq4X7oV.png](http://i.imgur.com/Hq4X7oV.png)

~~~
IgorPartola
Why do you dislike ligatures in your coding font? Just curious.

~~~
gkya
Not the commenter you're asking to, but ligatures, to me, are a print thing.
They are not nice on the computer screen. I'm kind-of fine with _fi_ and _ffi_
with variable-width fonts, but the rest is geekery (which is fine in itself,
but not practical).

With print, you have to think about kerning and the flow of the ink, and the
DPI of the printer, and many other variables, and some ligatures help with
that (fi). Then there are some letter strings that appear consequently very
often (e.g. st), in which case if you're cutting your fonts out of metal
cubes, it's practical to have a single character for those strings. They are
not, basically, of help to the reader, but instead to the typesetter / the
machine. But you don't spend ink or metal on a computer screen, so the
ligatures are just there for the sake of it.

With monospace fonts, well, because there's no kerning (each character takes
up equal space), there's no way that normally any bits of the letters could
coincide, so all the ligatures are forced and artificial there.

~~~
speleo_engr
Monospaced fonts simply mean that the horizontal width is constant. While this
also means there aren't any kerning pairs, it is a different concept. Simply
disabling kerning does not mean a font is monospaced.

Kerning is a table of pairs that allows them to have more aggressive advance
values. For example, with a sequential 'V' and 'A', the 'A' could be moved
closer to the 'V'. But kerning doesn't have anything to do with the fact that
in a variable width font that 'I' is narrower than 'X'.

~~~
gkya
And did I say otherwise?

~~~
planteen
I guess I took your statement, "because there's no kerning (each character
takes up equal space)" to mean "no kerning means each character takes up equal
space". Maybe that's not what you meant with those parenthesis.

~~~
gkya
Oh, I meant each character's taking up equal space did not allow for kerning.
I see that I've not phrased that well, sorry.

------
skolos
I like trying new fonts for coding. So far I went back to my favorite DejaVu
Sans Mono as I can legibly use it for coding at size 8. On my screen I can see
65 lines of code. When I tried Iosevka it does look good, but at size 8 it's
legibility is not as good as DejaVu, it is about 20% more narrow (which is not
too important to me), but it can fit just 60 lines of code on my screen. Less
code and less legibility than DejaVu, so I'll pass. But I do love that there
is a selection of high quality fonts for coding nowadays.

~~~
be5invis
Leading and width is configurable, actually :)

~~~
skolos
I might not be very advanced user. Configurable how? When generating fonts? Or
in an editor? Most editors that I use do not have these configuration options.

~~~
cyphunk
I'm sure if you can do it with a `make custon-config` command, but here are
the changes one makes to the parameters file:

[https://github.com/glebd/Iosevka/commit/b72d75c07543b204c22a...](https://github.com/glebd/Iosevka/commit/b72d75c07543b204c22a5d01b2b6c70cae5d31ee)

------
ungzd
I found it too tall, like many other similar fonts. Usually source code is not
too wide horizontally and limited to 80 characters so making characters more
wide and less tall allows to fit more to screen.

However it looks good and may be useful for those who prefer to open more that
2 columns of code in editor, or users of tiling window managers.

Liberation mono is my favorite, however Menlo from Mac Os looks good too.

------
obstinate
I doubt this is going to replace Ubuntu Mono for me (so many fonts have tried,
and so many have failed). But it's my duty, and my obsession, to give it a
shot for a few days. So I'll spend some quality time with this on Monday.
Whether it does or doesn't succeed in dislodging UM from my bosom, thank you
very much for the effort you've put in. This is how progress gets made.

~~~
joshschreuder
I'm also stuck on Ubuntu Mono. Tried a few 'coding' fonts and ones with
ligatures but it's hard for me to adjust.

------
netgusto
Very nice; I find Input Mono from Front Bureau to be a bit more readable,
though:
[http://input.fontbureau.com/preview/?size=20&language=python...](http://input.fontbureau.com/preview/?size=20&language=python&theme=base16-dark&family=InputMono&width=300&weight=300&line-
height=1.2&a=0&g=0&i=serif&l=serif&zero=slash&asterisk=height&braces=straight&preset=default&customize=please)

~~~
wst_
I love how you can choose your flavor by web app and just download resulting
font. No need for building it by yourself.

~~~
justinjlynn
You're right, that's nice. However, Input is proprietary and requires agreeing
to a _rather restrictive_ licence to download and use...

[http://input.fontbureau.com/license/](http://input.fontbureau.com/license/)

~~~
Illniyar
I don't find this license very restrictive. You can use it for personal use as
much as you want.

You can't put it on websites or use it in software you give out.

Seems fair to me.

~~~
justinjlynn
I am wary of licenses which attempt to narrowly define things like personal
use with language that is incredibly legally vague.

> For the purposes of this License, Personal Use is defined as any use on your
> own computer that involves computer programming, software development, or
> the composition of plaintext documents in personal, professional, or non-
> professional contexts.

namely:

> composition of plaintext documents

just composition? What if I print it? Can I use it in a presentation? I would
rather not agree to language which seems to imply a future requirement to
purchase some "other" licence if I trigger any of those clauses.

------
debaserab2
I don't know what it is about this font but it doesn't _feel_ monospaced.

Using this font I constantly keep second guessing myself as to where I've
placed whitespace. Maybe I just need to use it more, I don't know.

~~~
joatmon-snoo
Glancing at it I'm not sure if I would immediately be comfortable with it -
it's a much narrower glyph than the type I'm used to.

I think the lower width:height ratio is part of your whitespace issue,
combined with the seemingly liberal kerning.

~~~
stinos
_it 's a much narrower glyph than the type I'm used to._

Exactly this. Maybe if I'd be staring at it for days it would be ok, but right
now it feels uncomfortable to read, to the point I'm probably not even going
to try. Then again, just like the other commenter I always come back to
Consolas or something so similar that it's hard to distinguish.

On a sidenote: what is the font is this textbox I'm typing in?

~~~
function_seven
> On a sidenote: what is the font is this textbox I'm typing in?

Can’t say. The stylesheet specifies ‘monospace’, so the font is whatever your
browser’s default monospace font is. For me, it’s Courier. But yours could be
anything.

------
morinted
tl;dr: "from code" refers to the fact that you can regenerate the font with
your own parameters.

Cool image in the readme showing a bunch of different styles inspired by other
fonts:
[https://raw.githubusercontent.com/be5invis/Iosevka/master/im...](https://raw.githubusercontent.com/be5invis/Iosevka/master/images/opentype.png)

~~~
chairmanwow
Thanks for commenting with this. It was really the only thing I wanted to
learn about this font and came to the comments first.

------
jcl
I'm surprised there are no comments here about the code! It looks like the
characters of the font are specified programmatically on top of a self-
contained glyph-drawing library, all written in a custom Lisp dialect
("patel") running on top of node, written by the same author as the font.
Really impressive!

[https://github.com/be5invis/Iosevka/tree/master/glyphs](https://github.com/be5invis/Iosevka/tree/master/glyphs)

[https://github.com/be5invis/Iosevka/tree/master/support](https://github.com/be5invis/Iosevka/tree/master/support)

[https://github.com/be5invis/patel](https://github.com/be5invis/patel)

------
aban
Iosevka is indeed a very pretty typeface. I've been using it for a while now
and been really enjoying it.

Here's some Dafny code for your viewing pleasure:
[https://i.imgur.com/clxUR1y.png](https://i.imgur.com/clxUR1y.png)

~~~
haldean
How do you get the ligatures to work with vim? I've been trying to wrangle
PragmataPro and gvim for a while but haven't managed yet.

~~~
photon-torpedo
If you use vim in the terminal, ligature support just depends on the terminal
emulator. In Linux, qterminal and konsole work.

------
be5invis
Do you know that all letters in Iosevka are EXACTLY 1/2 em wide?

For ASIAN users, you can use THIS and preserve your perfect alignment.

~~~
Camillo
So the "m" glyph is half as wide as itself?

~~~
xelxebar
The em unit is traditionally the width of the letter M, but these days you see
it used as the unit height of a font. IIRC, CSS is like this.

------
eddyg
Thank you for posting this!

I purchased the Essential version of PragmataPro™[1] because I love a narrower
monospaced font for terminal windows and editors... allowing for a better use
of horizontal screen real estate.

Having something that is this configurable—including the leading—is fantastic!
I will definitely give it a try.

One thing that may make me stick with PragmataPro is the fact that Fabrizio
has hand-optimized the screen display for over 7000 characters from 9pt to
48pt to guarantee the best possible readability... no weird rendering
artifacts. It's amazing, but unfortunately many people are "put off" on the
idea of paying for that kind of attention to detail.

In any case, thanks for offering this free variant of a customizable, narrow
terminal font!

P.S. does it have the Powerline[2] characters?

[1]
[https://www.fsd.it/shop/fonts/pragmatapro/](https://www.fsd.it/shop/fonts/pragmatapro/)
[2]
[https://github.com/powerline/powerline](https://github.com/powerline/powerline)

~~~
mrkgnao
Yes, it does.

------
seanmcdirmid
I would really like to see a san serif proportional coding font with coding
ligatures. I've tried to hack one up myself but I could never figure out the
tool chain for it.

------
ekvintroj
I feel this font more thin that I'd like, at least in linux.

------
jrwiegand
I am currently using Source Code Pro. I find it very nice to use as my daily
driver.

~~~
criddell
If I'm working on a hi-dpi display (most of the time I am), Source Code Pro is
my font. It's not a great font at small sizes though.

------
dreikanter

      brew tap caskroom/fonts && brew cask install font-iosevka

------
zitterbewegung
A lot of programmer fonts feel too wide for me. I think I will give this a try
. It looks beautiful and it's open source .

------
alimoeeny
I've been using Monoid for a long while now and am surprised not many people
have heard of it or are using it. Monoid is very similar to Iosevka .
Similarly you need time to get used to it, but when you do don't want to go
back. I have not used Iosevka, has anyone used both Iosevka and Monoid and can
compare them?

------
widdma
The slight curve to usually straight letters like 'v' and 'k' reminds me a bit
of of Inconsolata. I really like this touch and makes a monospaced font flow.
Is it also using Spiro splines?

------
trumbitta2
My favorite for coding for a couple years now:
[http://sourcefoundry.org/hack/](http://sourcefoundry.org/hack/)

------
shalabhc
I switched to this and it does look nice:
[https://snag.gy/rFSpig.jpg](https://snag.gy/rFSpig.jpg)

~~~
zero_iq
I was thinking it was an odd choice to post a jpeg image of a font screenshot,
but that site seems to serve PNG images with a .jpg extension... odd!

~~~
shalabhc
Yeah I rarely post images online so I used the first google result. Later I
realized imgur might be the better choice.

Posted another image here:
[http://imgur.com/a/14l3y](http://imgur.com/a/14l3y)

------
Philipp__
I've got used to SF Mono lately, looks really nice in terminal, and goes along
with Fira Code when I change to it in Emacs GUI.

------
pvinis
Iosevka is awesome! I've been using it for a while now. I started with
inconsolata, went to anonymous pro, and then iosevka. I'm very happy with it.
I like the fact that it's narrow because now I can have my editor split in
three.

Lately I've been trying out operator mono. Still not sure if it will win over
iosevka.

Very good job be5invis!

------
iansowinski
I always like trying new monospaced fonts, but every time I always get back to
Fira Mono / Fira Code.

------
jurip
I like the way it looks, but I discovered that while I can use SF Mono at 11
points, I have to bump up the size of Iosevka to 12 to avoid eye strain. The
result was that while I could squeeze longer lines on screen with Iosevka, I
get more lines with SF Mono. Back to SF Mono.

------
Dowwie
I've been using iosevka (regular and thin) anywhere I have to read a whole lot
of content, which in my case is within atom editor, terminal (vim), and irc
client (quassel). Iosevka is a feel-good font. The regular and thin styles are
very nice. ^_^

------
infiniteseeker
Slightly OT.. Does anyone know the font used in the screenshots here?
[https://github.com/owainlewis/emacs-color-
themes](https://github.com/owainlewis/emacs-color-themes)

~~~
imran3740
Looks like Anonymous Pro. [http://www.marksimonson.com/fonts/view/anonymous-
pro](http://www.marksimonson.com/fonts/view/anonymous-pro)

~~~
irfansharif
it isn't exactly, lowercase 'i' differs very slightly. closer to Monaco Style
in that respect.

------
_pmf_
Daily user here. One of the few narrow monospace fonts. Previously, I've used
pixel fonts like Dina or the proggy fonts suite, but with higher resolutions
this has become unsustainable.

------
prateek_mir
It is a really good font, however, it just doesn't work for me on terminal &
terminal based applications. Somehow I find that there is too little spacing
between the lines.

~~~
int_19h
There's one and only font that truly "works" in terminals IMO, and that's the
classic VGA 8x16.

[http://int10h.org/oldschool-pc-fonts/fontlist/](http://int10h.org/oldschool-
pc-fonts/fontlist/)

~~~
carlesfe
I'm a fellow user of the VGA font in terminals, it's just so satisfying to
use! On text editors I use the default font, though

------
s9w
comparison with other monospaced fonts:
[http://www.s9w.io/font_compare/](http://www.s9w.io/font_compare/)

~~~
be5invis
Your version is outdated.

------
martijn_himself
My favourite programming font by far is Monaco, which is unfortunate as I
develop on Windows.

I find most other fonts kind of jarring especially at larger sizes, it's hard
to explain.

------
tribby
nice work. a large family like this is very well suited to be a variable
font[1] -- even the slabs could be an axis.

1\. [https://blog.typekit.com/2016/09/14/variable-fonts-a-new-
kin...](https://blog.typekit.com/2016/09/14/variable-fonts-a-new-kind-of-font-
for-flexible-design/)

~~~
be5invis
To be honest, Iosevka is not suitable for the __current __VF specification,
because that it does not support changing glyph topology while changing
parameters.

------
kuon
I tried it with powerline, but the characters don't align properly, the arrows
are 1px higher than the other characters.

------
s3nnyy
How does this in your opinion compare to "source code pro" from adobe?

------
ino
How do Stylistic Sets work?

I like how ss08 looks.

Is there a Iosevka ss08 font download, or must I build it myself?

~~~
kccqzy
It's a feature of the font. For example in TextEdit, in the Font panel, you
can open Typography window to adjust different stylistic sets.

~~~
ino
Interesting, thanks! Anyone knows how do I chose it in Sublime Text on macOS?

------
nialv7
Does any of Linux terminal emulators support fonts with stylistic sets?

------
y3sh
Nice font, but too tall and thin for me.

------
simlevesque
It is a really pretty font.

------
crypto_bird
anybody figured out how to compile it with powerline fix?

------
timbit42
I don't code in monospace typefaces. Useless to me.

------
kodfodrasz
Finally a font which thinks about other latin based lanuages, and even
cyrillic and greek, not only English. Some fonts do this, but few take care to
show it in their marketing material.

Thumbs up for the examples and not ignoring the rest of world! (personally I
find the fonts too "narrow" fow my use)

~~~
omgtehlion
Actually, it does pretty much ignore all other languages given its width. They
did it as narrow as possible (with latin letters) and just shoehorned all
others later.

> Finally a font which thinks about other......but few take care to show it in
> their marketing material

Almost all commercial fonts do this. Just take a look around.

~~~
tinza123
They do take consideration about non-latin languages. For example, a Chinese
character in this font has exactly twice of the width of an English character,
which makes sense

~~~
khaled
CJK glyphs are always double width, there is no other way around it.

~~~
tinza123
Not a lot of fonts respect that though.

