1
0
Fork 0
mirror of synced 2024-06-24 01:00:20 +12:00

Fira Code v4

This commit is contained in:
Nikita Prokopov 2020-05-17 23:34:17 +02:00
parent 5ef7ba1bf9
commit d42e7276fa
57 changed files with 102 additions and 91 deletions

View file

@ -2,7 +2,9 @@
All notable changes to this project will be documented in this file.
#### 4.0 (May 10, 2020)
#### 4.0 (May 18, 2020)
Removed 44 individual arrow ligatures, replaced with four universal, combinative substitutions. 100-150% faster shaping performance, infinite amount of arrow combinations.
- Arbitrary-long combinative hyphen-based arrows #346 #494 #713 #826 #968 #983 #1029
- Arbitrary-long combinative equal-based arrows #229 #234 #346 #494 #698 #826 #919 #931 #946 #948 #968 #1016 #1018 #1022
@ -10,6 +12,7 @@ All notable changes to this project will be documented in this file.
- Arbitrary-long numbersign sequences #1014
- Fixed descender in U+040F `Џ`
- Undid #995 and properly fixed U+04CB `Ӌ`, U+04CC`ӌ` #1001 and U+0449 `щ` #1007
- Added `|||` to prevent partial ligatures in `|||-|||` `|||=|||` #346
#### 3.1 (April 15, 2020)

File diff suppressed because one or more lines are too long

100
README.md
View file

@ -12,7 +12,7 @@ Fira Code is a free monospaced font containing ligatures for common programming
### Download & Install
**<a href="https://github.com/tonsky/FiraCode/releases/download/3.1/FiraCode_3.1.zip">Download Fira Code v3.1</a>**
<a href="https://github.com/tonsky/FiraCode/releases/download/4/Fira_Code_v4.zip"><img src="./extras/download.png" width="520" height="130"></a>
Then:
@ -30,78 +30,37 @@ Fira Code is a personal, free-time project with no funding and huge [feature req
Left: ligatures as rendered in Fira Code. Right: same character sequences without ligatures.
<img src="./showcases/v3/all_ligatures.png">
<img src="./extras/ligatures.png" width="754" height="1326">
Fira Code comes with a few different character variants, so that everyone can choose whats best for them. [How to enable](https://github.com/tonsky/FiraCode/wiki/How-to-enable-stylistic-sets)
Fira Code comes with huge variety of arrows. Even better: you can make them as long as you like and combine start/middle/end fragments however you want!
<img src="./showcases/v3/stylistic_sets.png">
<img src="./extras/arrows.png" width="754" height="799">
In addition to that, Fira Code contains huge variety of Unicode characters well-suited for technical writing, math formulas and terminal UIs.
Fira Code is not only about ligatures. Some fine-tuning is done for punctuation and frequent letter pairs.
<img src="./showcases/v3/unicode.png">
<img src="./extras/typographics.png" width="754" height="649">
### Code examples
Fira Code comes with a few different character variants, so that everyone can choose whats best for them. [How to enable.](https://github.com/tonsky/FiraCode/wiki/How-to-enable-stylistic-sets)
Ruby:
<img src="./extras/stylistic_sets.png" width="754" height="391">
<img src="./showcases/v3/ruby.png">
Being programming font, Fira Code has fantastic support for ASCII/box drawing, powerline and other forms of console UIs.
JavaScript:
<img src="./extras/console.png" width="754" height="357">
<img src="./showcases/v3/javascript.png">
Unicode coverage makes Fira Code great choice for mathematical writing.
PHP:
<img src="./extras/math.png" width="754" height="289">
<img src="./showcases/v3/php.png">
### How does it look?
Erlang:
<img src="./showcases/v3/erlang.png">
Elixir:
<img src="/showcases/v3/elixir.png">
Go:
<img src="./showcases/v3/go.png">
LiveScript:
<img src="./showcases/v3/livescript.png">
Clojure:
<img src="./showcases/v3/clojure.png">
Swift:
<img src="./showcases/v3/swift.png">
### Terminal compatibility list
| Works | Doesnt work |
| ------------------ | ------------------ |
| **Butterfly** | **Alacritty** |
| **crosh** (ChromeOS, [instructions](https://github.com/tonsky/FiraCode/wiki/ChromeOS-Terminal)) | **Windows Console (conhost.exe)** |
| **Hyper.app** | **Cmder** |
| **iTerm 2** ([3.1+](https://gitlab.com/gnachman/iterm2/issues/3568#note_13118332)) | **ConEmu** |
| **Kitty** | **GNOME Terminal** |
| **Konsole** | **mate-terminal** |
| **mintty** (partial support [2.8.3+](https://github.com/mintty/mintty/issues/601))| **PuTTY** |
| **QTerminal** | **rxvt** |
| **Terminal.app** | **xterm** |
| **Termux** | **ZOC** (Windows) |
| **Token2Shell/MD** | **gtkterm, guake, LXTerminal, sakura, Terminator, xfce4-terminal,** and other libvte-based terminals ([bug report](https://bugzilla.gnome.org/show_bug.cgi?id=584160)) |
| **upterm** |
| **Windows Terminal** |
| **ZOC** (macOS) |
| **st** ([patch](https://st.suckless.org/patches/ligatures/)) |
<img src="./extras/samples.png" width="754" height="1068">
<img src="./extras/samples2.png" width="754" height="1257">
### Editor compatibility list
| Works | Doesnt work |
| ----- | -------------- |
|-------|----------------|
| **Abricotine** | **Arduino IDE** |
| **Android Studio** (2.3+, [instructions](https://github.com/tonsky/FiraCode/wiki/Intellij-products-instructions)) | **Adobe Dreamweaver** |
| **Anjuta** (unless at the EOF) | **Delphi IDE** |
@ -160,16 +119,36 @@ Swift:
| **Xi** |
| Probably work: **Smultron, Vico** | Under question: **Code::Blocks IDE** |
### Terminal compatibility list
| Works | Doesnt work |
|--------------------|--------------------|
| **Butterfly** | **Alacritty** |
| **crosh** (ChromeOS, [instructions](https://github.com/tonsky/FiraCode/wiki/ChromeOS-Terminal)) | **Windows Console (conhost.exe)** |
| **Hyper.app** | **Cmder** |
| **iTerm 2** ([3.1+](https://gitlab.com/gnachman/iterm2/issues/3568#note_13118332)) | **ConEmu** |
| **Kitty** | **GNOME Terminal** |
| **Konsole** | **mate-terminal** |
| **mintty** (partial support [2.8.3+](https://github.com/mintty/mintty/issues/601))| **PuTTY** |
| **QTerminal** | **rxvt** |
| **Terminal.app** | **xterm** |
| **Termux** | **ZOC** (Windows) |
| **Token2Shell/MD** | **gtkterm, guake, LXTerminal, sakura, Terminator, xfce4-terminal,** and other libvte-based terminals ([bug report](https://bugzilla.gnome.org/show_bug.cgi?id=584160)) |
| **upterm** |
| **Windows Terminal** |
| **ZOC** (macOS) |
| **st** ([patch](https://st.suckless.org/patches/ligatures/)) |
### Browser support
```html
<!-- HTML -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/tonsky/FiraCode@3/distr/fira_code.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/tonsky/FiraCode@4/distr/fira_code.css">
```
```css
/* CSS */
@import url(https://cdn.jsdelivr.net/gh/tonsky/FiraCode@3/distr/fira_code.css);
@import url(https://cdn.jsdelivr.net/gh/tonsky/FiraCode@4/distr/fira_code.css);
```
```css
@ -181,7 +160,6 @@ code { font-family: 'Fira Code', monospace; }
}
```
- IE 10+, Edge Legacy: enable with `font-feature-settings: "calt";`
- Firefox
- Safari
@ -203,7 +181,7 @@ code { font-family: 'Fira Code', monospace; }
### Alternatives
Other free monospaced fonts with ligatures:
Free monospaced fonts with ligatures:
- [Hasklig](https://github.com/i-tu/Hasklig)
- [Monoid](http://larsenwork.com/monoid/)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
extras/arrows.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

BIN
extras/console.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
extras/download.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
extras/ligatures.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

BIN
extras/math.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
extras/samples.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

BIN
extras/samples2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

BIN
extras/stylistic_sets.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
extras/typographics.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

View file

@ -1,6 +1,6 @@
{
"name": "firacode",
"version": "3.1.0",
"version": "4.0.0",
"description": "Fira Code: monospaced font with programming ligatures",
"main": "distr/fira_code.css",
"keywords": [

View file

@ -1,20 +1,20 @@
#! /bin/bash -ex
sudo easy_install pip
pip3 install virtualenv --user
sudo easy_install-3.7 pip
pip install virtualenv --user
python3 -m virtualenv venv
source venv/bin/activate
# https://github.com/googlefonts/gftools/issues/121
brew install pkg-config
pip3 install -U Pillow==5.4.1 idna==2.8 requests==2.21.0 urllib3==1.24.1
pip install -U Pillow==5.4.1 idna==2.8 requests==2.21.0 urllib3==1.24.1
export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig"
pip3 install pycairo
pip3 install git+https://github.com/googlefonts/gftools
pip install pycairo
pip install git+https://github.com/googlefonts/gftools
pip3 install fontmake
pip install fontmake
brew install ttfautohint
brew install woff2
brew tap bramstein/webfonttools
brew install sfnt2woff-zopfli
pip3 install fontbakery
pip install fontbakery

View file

@ -8,6 +8,8 @@ for ttf in $ttfs; do
sfnt2woff-zopfli $ttf
done
rm distr/ttf/FiraCode-Retina.woff
mkdir -p distr/woff
woffs=$(ls distr/*/*.woff)
for woff in $woffs; do

View file

@ -8,8 +8,10 @@ for ttf in $ttfs; do
woff2_compress $ttf
done
rm distr/ttf/FiraCode-Retina.woff2
mkdir -p distr/woff2
woff2s=$(ls distr/*/*.woff2)
for woff2 in $woff2s; do
mv $woff2 distr/woff2/$(basename $woff2)
done
done

29
script/package.sh Executable file
View file

@ -0,0 +1,29 @@
#!/bin/zsh -euo pipefail
cd "`dirname $0`/.."
setopt BASH_REMATCH
MAJOR=`cat FiraCode.glyphs | grep versionMajor`
VERSION=""
if [[ $MAJOR =~ 'versionMajor = ([0-9]+);' ]] ; then
VERSION="${BASH_REMATCH[2]}"
fi
MINOR=`cat FiraCode.glyphs | grep versionMinor`
if [[ $MINOR =~ 'versionMinor = ([0-9]+);' ]] ; then
MATCH="${BASH_REMATCH[2]}"
if [ "$MATCH" != "0" ] ; then
VERSION="$VERSION.$MATCH"
fi
fi
FILE="Fira_Code_v$VERSION.zip"
rm -f $FILE
pushd distr
find . -not -name ".*" | xargs zip ../$FILE
popd
ls -lah $FILE

Binary file not shown.

Before

Width:  |  Height:  |  Size: 266 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB