# Iosevka ![Version](https://img.shields.io/github/release/be5invis/Iosevka.svg) [![Donate](https://img.shields.io/badge/donate-alipay-orange.svg)](http://7xpe0v.com1.z0.glb.clouddn.com/aeqr9bewtqtvpkpl18.png) Coders' typeface, built from code. //[→ Inziu Iosevka for Chinese and Japanese.](http://be5invis.github.io/Iosevka/inziu.html) ![](https://raw.githubusercontent.com/be5invis/Iosevka/master/images/preview-all.png) ## Installation Quit your editor/program. Unzip and open the folder. * **[Instructions for OS X](http://support.apple.com/kb/HT2509)** * **[Instructions for Windows](https://www.microsoft.com/en-us/Typography/TrueTypeInstall.aspx)** * **Linux** : Copy the .ttf files to your fonts directory → Run `sudo fc-cache`. - Arch Linux users can install the font from the AUR [here](https://aur.archlinux.org/packages/ttf-iosevka) using an AUR wrapper or by doing it manually. [All variants](https://aur.archlinux.org/packages/?O=0&SeB=nd&K=ttf-iosevka&SB=n&SO=a&PP=50&do_Search=Go). - 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](https://raw.githubusercontent.com/be5invis/Iosevka/master/images/weights.png) 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](http://be5invis.github.io/Iosevka/specimen.html). ![Languages Sample](https://raw.githubusercontent.com/be5invis/Iosevka/master/images/languages.png) Iosevka supports accessing all letter variants using OpenType features. ![OpenType Sample](https://raw.githubusercontent.com/be5invis/Iosevka/master/images/opentype.png) ## Ligations (Experimental) ![Ligations Sample](https://raw.githubusercontent.com/be5invis/Iosevka/master/images/ligations.png) 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`](http://nodejs.org) (≥ 6.0), [`FontForge`](http://fontforge.org) (with Python scripting support, ≥ Aug. 2015 release), [`ttfautohint`](http://www.freetype.org/ttfautohint/), [`otfcc`](https://github.com/caryll/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](https://git-for-windows.github.io/) 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](https://raw.githubusercontent.com/be5invis/Iosevka/master/images/variants.png) 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_ITALICS` 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 (`*`) amd paragaraph(`¶`): * `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 `¶`. * 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.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: `-> --> <- <-- <->