1
0
Fork 0
mirror of synced 2024-06-28 11:10:50 +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. 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 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 - 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 - Arbitrary-long numbersign sequences #1014
- Fixed descender in U+040F `Џ` - Fixed descender in U+040F `Џ`
- Undid #995 and properly fixed U+04CB `Ӌ`, U+04CC`ӌ` #1001 and U+0449 `щ` #1007 - 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) #### 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 ### 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: 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. 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="./extras/samples.png" width="754" height="1068">
<img src="./extras/samples2.png" width="754" height="1257">
<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/)) |
### Editor compatibility list ### Editor compatibility list
| Works | Doesnt work | | Works | Doesnt work |
| ----- | -------------- | |-------|----------------|
| **Abricotine** | **Arduino IDE** | | **Abricotine** | **Arduino IDE** |
| **Android Studio** (2.3+, [instructions](https://github.com/tonsky/FiraCode/wiki/Intellij-products-instructions)) | **Adobe Dreamweaver** | | **Android Studio** (2.3+, [instructions](https://github.com/tonsky/FiraCode/wiki/Intellij-products-instructions)) | **Adobe Dreamweaver** |
| **Anjuta** (unless at the EOF) | **Delphi IDE** | | **Anjuta** (unless at the EOF) | **Delphi IDE** |
@ -160,16 +119,36 @@ Swift:
| **Xi** | | **Xi** |
| Probably work: **Smultron, Vico** | Under question: **Code::Blocks IDE** | | 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 ### Browser support
```html ```html
<!-- 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
/* 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 ```css
@ -181,7 +160,6 @@ code { font-family: 'Fira Code', monospace; }
} }
``` ```
- IE 10+, Edge Legacy: enable with `font-feature-settings: "calt";` - IE 10+, Edge Legacy: enable with `font-feature-settings: "calt";`
- Firefox - Firefox
- Safari - Safari
@ -203,7 +181,7 @@ code { font-family: 'Fira Code', monospace; }
### Alternatives ### Alternatives
Other free monospaced fonts with ligatures: Free monospaced fonts with ligatures:
- [Hasklig](https://github.com/i-tu/Hasklig) - [Hasklig](https://github.com/i-tu/Hasklig)
- [Monoid](http://larsenwork.com/monoid/) - [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", "name": "firacode",
"version": "3.1.0", "version": "4.0.0",
"description": "Fira Code: monospaced font with programming ligatures", "description": "Fira Code: monospaced font with programming ligatures",
"main": "distr/fira_code.css", "main": "distr/fira_code.css",
"keywords": [ "keywords": [

View file

@ -1,20 +1,20 @@
#! /bin/bash -ex #! /bin/bash -ex
sudo easy_install pip sudo easy_install-3.7 pip
pip3 install virtualenv --user pip install virtualenv --user
python3 -m virtualenv venv python3 -m virtualenv venv
source venv/bin/activate source venv/bin/activate
# https://github.com/googlefonts/gftools/issues/121 # https://github.com/googlefonts/gftools/issues/121
brew install pkg-config 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" export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig"
pip3 install pycairo pip install pycairo
pip3 install git+https://github.com/googlefonts/gftools pip install git+https://github.com/googlefonts/gftools
pip3 install fontmake pip install fontmake
brew install ttfautohint brew install ttfautohint
brew install woff2 brew install woff2
brew tap bramstein/webfonttools brew tap bramstein/webfonttools
brew install sfnt2woff-zopfli brew install sfnt2woff-zopfli
pip3 install fontbakery pip install fontbakery

View file

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

View file

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