Spatial efficient monospace font family for programming. Built from code.
JavaScript HTML CSS Makefile Python

README.md

Iosevka Version Donate

Coders' typeface, built from code. //→ Inziu Iosevka for Chinese and Japanese.

Installation

Quit your editor/program. Unzip and open the folder.

  • Instructions for OS X
  • Instructions for Windows
  • Linux : Copy the .ttf files to your fonts directory → Run sudo fc-cache.
    • Arch Linux users can install the font from the AUR here using an AUR wrapper or by doing it manually. All variants.
    • Void Linux users can install the font with xbps-install font-iosevka.

Weights, Variants and OpenType features

The typeface contains seven weights (thin, extra-light, light, regular, medium, bold and heavy) alongside with both italic and oblique versions, with the same metrics as the regular one.

Weights sample

All versions include the same ranges of characters: Latin letters, Greek letters (including Polytonic Greek), some Cyrillic letters, IPA symbols and common punctuations and some symbols. You can check out the full list here.

Languages Sample

Iosevka supports accessing all letter variants using OpenType features.

OpenType Sample

Ligations (Experimental)

Ligations Sample

Iosevka’s default ligation set is assigned to calt feature, though not all of them are enabled by default. Iosevka supports Language-Specific Ligations, which is the ligation set enabled only under certain languages. These ligation sets are assigned to custom feature tags, like XHS_.

Building from Source

To build Iosevka you should:

  1. Ensure that node (≥ 6.0), FontForge (with Python scripting support, ≥ Aug. 2015 release), ttfautohint, otfcc (≥ 0.4.4) and make are runnable in your terminal.
    • Windows users may need to install MinGW and make *nix utilities accessible (mkdir.exe, cp.exe, cat.exe and rm.exe, in particular) from Command Prompt. Utilities provided by Git for Windows works fine.
  2. Install necessary libs by npm install. If you’ve installed them, upgrade to the latest.
  3. make.
    • Use make DONTHINT=1 to disable hinting.
    • Use make DONTREF=1 to turn off reference-ify (will increase file size but provide better compatibility).

You will find TTFs in the dist/ directory.

Building the Web Font

The webfonts/ directory is used to build Iosevka for web font uses. To build the web fonts you should:

  1. Build Iosevka.
  2. Ensure that sfnt2woff and woff2_compress are installed and runnable.
  3. make webfonts.

The web fonts will be generated into dist/webfonts.

Build Your Own Style

Styles Preview

Iosevka comes with several visual styles, however they are inactive using the default build. To build these variants you should use style variables in the make procedure:

  • STYLE_COMMON for both uprights and italics,
  • STYLE_UPRIGHT for upright and oblique, and
  • STYLE_ITALIC for itaics only.

You can add arbitary styles for these variables, for example, make STYLE_UPRIGHT='v-l-zshaped v-i-zshaped' to create a variant with Z-shaped letter l and i for uprights.

The current avaliable styles are:

  • Styles for letter l:
    • v-l-hooky : Hooky l.
    • v-l-zshaped : Z-shaped l.
    • v-l-serifed : Serifed l (default for upright and oblique).
    • v-l-italic : Italic l (default for italic).
    • v-l-tailed : l with a curved tail.
    • v-l-hookybottom : l with a straight tail.
  • Styles for letter i:
    • v-i-hooky : Hooky i.
    • v-i-zshaped : Z-shaped i.
    • v-i-serifed : Serifed i (default for upright and oblique).
    • v-i-italic : Italic i (default for italic).
  • Styles for letter a:
    • v-a-doublestorey : Double-storey a (default for upright and oblique).
    • v-a-singlestorey : Single-storey a (default for italic).
  • Styles for letter g:
    • v-g-doublestorey : Double-storey g (default).
    • v-g-singlestorey : Single-storey g.
    • v-g-opendoublestorey : Open Single-storey g.
  • Styles for letter m:
    • v-m-longleg : m with long middle leg (default).
    • v-m-shortleg : m with shorter middle leg.
  • Styles for letter 0:
    • v-zero-slashed : Slashed Zero 0 (default).
    • v-zero-dotted : Dotted Zero 0.
    • v-zero-unslashed : O-like 0.
  • Styles for ASCII tilde (~), asterisk (*), paragaraph(), and ASCII Caret (^):
    • v-tilde-high : Higher tilde ~.
    • v-tilde-low : Lower tilde ~ (default).
    • v-asterisk-high : Higher asterisk * (default).
    • v-asterisk-low : Lower asterisk *.
    • v-paragraph-high : Higher paragraph symbol (default).
    • v-paragraph-low : Lower paragraph symbol .
    • v-caret-high : Higher circumflex ^ (default).
    • v-caret-low : Lower circumflex ^.
  • Styles for At (@):
    • v-at-long : The long, three-fold At symbol in Iosevka 1.7.x.
    • v-at-fourfold : The traditional, four-fold At symbol.
    • v-at-short : The shorter, Fira-like At symbol introduced in Iosevka 1.8.
  • Styles related to ligations
    • term : Disable ligations. When this style is present, the font built will not contain ligatures, and its family name will be set to Iosevka Term. In case of your OS or editor cannot handle ligatures correctly, you can disable ligations using it.

Release Notes

  • 1.10.4
    • Added feature tag for ML (XML_), Idris (XIDR), F# (XFS_), F* (XFST), Elm (XELM), PureScript (PURS), Swift (SWFT) and Coq (XV__).
    • Added ligation for /\ and \/.
    • Added arbitary-length ligations, like ***********> or <-------------.
  • 1.10.3
    • Improved ligations, including <*>, etc.
  • 1.10.2
    • Complete APL Support.Optimize shape of overlay symbols.
  • 1.10.1
    • Add APL symbols.
  • 1.10.0
    • Added cv29 and cv30 for ^.
    • Added two new @ glyphs, assigned to cv32 and cv33, while the old @ is assigned to cv31.
    • Made S and $ more distinctive.
  • 1.9.6
    • Make the font conformal with MS FontVal.
    • Make backslash less slant.
  • 1.9.5
    • Fixed the bug that FireFox reject to display.
  • 1.9.4
    • Add two styles of l.
  • 1.9.3
    • Minor symbol additions.
  • 1.9.2
    • Added short-legged m (assigned to cv26).
  • 1.9.1
    • Added /latinayin.
    • Added more symbols.
  • 1.9.0
    • Added open double-storey g (assigned to cv24).
    • Redesigned single-storey a.
    • Reassigned the ss** styles. Now they are designed to simulate existing fonts.
  • 1.8.6
    • Added Bulgarian and Macedonian Cyrillic variants
    • Added ligations about colons
  • 1.8.5
    • Added XHS_ and XPTL feature tags for Language-Specific ligations.
    • Added /bolt, /blackflag, /circlestar and /heavyballotcross symbols.
  • 1.8.4
    • Added opbd feature for punctuation compression.
  • 1.8.3
    • Added Kome symbol ().
    • Reorganized pre-built release packages. The “IosevkaNL” is renamed to “Iosevka Term”.
  • 1.8.2
    • Iosevka now provides a new variant family “IosevkaNL”, with ligation disabled to avoid typesetting issues under some Linux environments.
  • 1.8.1
    • Added more ligations.
    • Fixed the incorrectly-sized symbol in the CC variants.
  • 1.8.0
    • Added a lower paragraph symbol () shape, and two OpenType features (cv22 and cv23) to enable them.
    • Most mathematical operators, like , will be full-width in the CC variants.
    • Added experimental ligatures support. Currently the ligatures are assigned to feature “calt” and contains these figures only: -> --> <- <-- <-> <!-- . Note that Iosevka does not contain "real" ligature glyphs, these figures are implemented using chained substitution and long dashes.
  • 1.7.5
    • Reduced the weight of Bold, and increased the size of periods of Medium.
  • 1.7.4
    • The lower tilde (~) is used by default.
    • Added slanted inequality symbol (U+2A7D and U+2A7E) and corrected the shape of and .
  • 1.7.3
    • Optimize the shapes of three-like glyphs, including 3, ε and з.
  • 1.7.2
    • Entallen upright letter f.
    • Reverted shape of π to the 1.3.x.
    • Added Ѧ and Ѫ.
  • 1.7.1
    • Fixed incorrect outline of braced glyphs under heavy weights.
  • 1.7.0
    • Added more tie marks and combining marks.
    • Fixed the incorrect weights created by [turned] and [composite].
  • 1.6.3
    • Fixed the missing vertical stroke of ¬.
    • Fixed the dot position of ij.
    • Added several combining marks : , , etc.
    • Redesigned the tilde ~ for better consistency.
  • 1.6.2
    • Added braced letters and numbers, like and .
    • Added several Greek letterforms, including Ϸ and ϸ.
    • Rebuild the script into [sketch]es.
  • 1.6.1
    • Added U+AB64, U+2C6D, U+2C70, U+AB30, etc.
  • 1.6.0
    • Fixed the broken Æ at thin weights.
    • Increased the length of the bottom serif in T.
    • Made Ђ and Ћ wider to balance Cyrillic letters.
  • 1.5.5
    • Adjusted the outlines of f, 2 and &, as well as full-width symbol ~.
  • 1.5.4
    • Fixed the distortion of letter s under several situations, for example, full-width.
  • 1.5.3
    • Fixed the slanted bottom tip of y in Slab oblique.
  • 1.5.2
    • Told OS X not to increase line height for bold weights.
    • Pushed the i and l undef hooky variants rightward slightly.
  • 1.5.1
  • 1.5.0
    • The new "fairizer" now replaces FontForge's outline simplification. It will create smooth and fair outline curves now.
    • Introduced centered asterisk (*) and tilde (~). They can be enabled by OpenType features ss10.
    • cv** and ss** features introduced in 1.4.0 now supports accented letters.
  • 1.4.3
    • Added the "oblique" variant.
    • Corrected the stroke width in italic variants. It will reduce the file size of italics and improve its outline quality.
  • 1.4.2
    • The shape of lowercase y is improved. Its slab version is redesigned.
    • Rebalanced italic l and i.
    • Enwiden /t.
  • 1.4.1
    • Fixed the incorrectly-shaped /nine in the thin variant.
    • Fixed the broken serif of /yhooktop.
  • 1.4.0
    • Added five new weights: thin, extralight, light, medium and heavy.
    • Shape optimizations for MANY letters, including /s, /r, /a, /beta, /cyryeri and their derived characters.
  • 1.3.0
    • Shape optimizations: /f, /r, /a, /s, /epsilon, /cyrze and their derived glyphs.
    • Narrowed slab-serif variants.
    • Added /overlineTieAbove, /underlineTieBelow and /turnTieAbove.
  • 1.2.0
    • Glyphs added: /cyrGhayn, /cyrghayn, /cyrChevbar, /cyrchevbar, /turnoe, /voicedlaryngenalspirant, /oupperhalf, /olowerhalf and their derived glyphs.
    • Shape optimization: /eight, /propto, /J, /j, /epsilon, /cyrze, /taillessphi, /smcpPsi and their derived glyphs.
    • Added the missing marks of /longs.
    • Introduced a new SVG-based outline exporting mechanism. Now I am finally free from the rounding nightmare.
  • 1.1.2
    • Improved the balancing of /longs, /f and /eszet.
    • The strokes of /A, /V and /v in Iosevka Slab is straightened.
  • 1.1.1
    • Added the missing serifs for /cyrdzhe.
    • Balanced /pi in bold weights.
    • Moved the descender lines of Cyrillic letters rightward a little in italics.
  • 1.1.0
    • Enwiden the boldfaces. This will improve the consistency between regular and bold weights.
    • The curves in /xi are optimized.
  • 1.0.2
    • Fixed the incorrect /yhooktop.
    • The digaphs defined in Unicode is now single-width.
    • Reorganized subfamilies: Now the default Iosevka does not contain full-width glyphs any more.

Family Matrix