1
0
Fork 0
mirror of synced 2024-05-19 20:13:25 +12:00

Merge branch 'master' of github.com:tonsky/FiraCode into qa

This commit is contained in:
Stephen Nixon 2019-04-05 09:32:36 -04:00
commit 5bddb98dd2
32 changed files with 292 additions and 219 deletions

3
.gitignore vendored
View file

@ -7,4 +7,5 @@ FiraCode\ (Autosaved).glyphs
.cpcache
master_ufo
instance_ufo
venv
venv
.DS_Store

View file

@ -2,6 +2,12 @@
All notable changes to this project will be documented in this file.
#### 1.207 (WIP)
- Variable TTF, cleaned up [many small Light weight errors](https://github.com/thundernixon/FiraCode/blob/qa/googlefonts-qa/notes/outline-checks.md) (done by @thundernixon, PR #735)
- Dropped EOF/WOFF which were only useful for IE 6-11
- Fixed different vertical position of `<=` `>=` in Light and Bold caused during [#483]
#### 1.206 (September 30, 2018)
- Added `<==>` ([#392]), `#:` ([#642]), `!!.` ([#618]), `>:` `:<` ([#605]), U+0305 Combining overline ([#608]), U+2610 Ballot box, U+2611 Ballot box with check, U+2612 Ballot box with x ([#384])

File diff suppressed because it is too large Load diff

View file

@ -180,6 +180,23 @@ Other monospaced fonts with ligatures:
- [Iosevka](https://be5invis.github.io/Iosevka/) (free)
- [DejaVu Sans Code](https://github.com/SSNikolaevich/DejaVuSansCode) (free)
### Building
On macOS:
```
sudo easy_install pip
pip install virtualenv --user
python -m virtualenv venv
source venv/bin/activate
pip install gftools
pip install fontmake
brew install ttfautohint
brew install woff2
```
Run `./build.sh`
### Credits
- Author: Nikita Prokopov [@nikitonsky](https://twitter.com/nikitonsky)

45
build.sh Executable file
View file

@ -0,0 +1,45 @@
#!/bin/bash
source venv/bin/activate
# variable font
fontmake -g FiraCode.glyphs -o variable --output-dir distr/variable_ttf
# statics
fontmake -g FiraCode.glyphs -o ttf --output-dir distr/ttf
fontmake -g FiraCode.glyphs -o otf --output-dir distr/otf
# ============================================================================
# Autohinting ================================================================
statics=$(ls distr/ttf/*.ttf)
for file in $statics; do
echo "fix DSIG in " ${file}
gftools fix-dsig --autofix ${file}
echo "TTFautohint " ${file}
# autohint with detailed info
hintedFile=${file/".ttf"/"-hinted.ttf"}
ttfautohint -I ${file} ${hintedFile} --stem-width-mode nnn
cp ${hintedFile} ${file}
rm -rf ${hintedFile}
done
# ============================================================================
# Build woff2 fonts ==========================================================
# requires https://github.com/google/woff2
rm -rf distr/woff2
ttfs=$(ls distr/*/*.ttf)
for ttf in $ttfs; do
woff2_compress $ttf
done
mkdir -p distr/woff2
woff2s=$(ls distr/*/*.woff2)
for woff2 in $woff2s; do
mv $woff2 distr/woff2/$(basename $woff2)
done

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,43 +1,32 @@
@font-face{
font-family: 'Fira Code';
src: url('eot/FiraCode-Light.eot');
src: url('eot/FiraCode-Light.eot') format('embedded-opentype'),
url('woff2/FiraCode-Light.woff2') format('woff2'),
url('woff/FiraCode-Light.woff') format('woff'),
url('ttf/FiraCode-Light.ttf') format('truetype');
font-weight: 300;
font-style: normal;
@font-face {
font-family: 'Fira Code';
src: url('woff2/FiraCode-Light.woff2') format('woff2');
font-weight: 300;
font-style: normal;
}
@font-face{
font-family: 'Fira Code';
src: url('eot/FiraCode-Regular.eot');
src: url('eot/FiraCode-Regular.eot') format('embedded-opentype'),
url('woff2/FiraCode-Regular.woff2') format('woff2'),
url('woff/FiraCode-Regular.woff') format('woff'),
url('ttf/FiraCode-Regular.ttf') format('truetype');
font-weight: 400;
font-style: normal;
@font-face {
font-family: 'Fira Code';
src: url('woff2/FiraCode-Regular.woff2') format('woff2');
font-weight: 400;
font-style: normal;
}
@font-face{
font-family: 'Fira Code';
src: url('eot/FiraCode-Medium.eot');
src: url('eot/FiraCode-Medium.eot') format('embedded-opentype'),
url('woff2/FiraCode-Medium.woff2') format('woff2'),
url('woff/FiraCode-Medium.woff') format('woff'),
url('ttf/FiraCode-Medium.ttf') format('truetype');
font-weight: 500;
font-style: normal;
@font-face {
font-family: 'Fira Code';
src: url('woff2/FiraCode-Medium.woff2') format('woff2');
font-weight: 500;
font-style: normal;
}
@font-face{
font-family: 'Fira Code';
src: url('eot/FiraCode-Bold.eot');
src: url('eot/FiraCode-Bold.eot') format('embedded-opentype'),
url('woff2/FiraCode-Bold.woff2') format('woff2'),
url('woff/FiraCode-Bold.woff') format('woff'),
url('ttf/FiraCode-Bold.ttf') format('truetype');
font-weight: 700;
font-style: normal;
@font-face {
font-family: 'Fira Code';
src: url('woff2/FiraCode-Bold.woff2') format('woff2');
font-weight: 700;
font-style: normal;
}
@font-face {
font-family: 'Fira Code VF';
src: url('woff2/FiraCode-VF.woff2') format('woff2-variations');
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -20,9 +20,17 @@
.regular { font-weight: 400; }
.medium { font-weight: 500; }
.bold { font-weight: 700; }
.variable { font-family: 'Fira Code VF'; font-variation-settings: 'wght' 400; }
i { font-style: normal; color: #c33; }
b { font-weight: inherit; color: #c33; }
</style>
<script type="text/javascript">
function onWeightChange(weight) {
// code_variable.style['font-weight'] = weight;
code_variable.style['font-variation-settings'] = "'wght' " + weight;
span_wght.innerText = weight;
}
</script>
<body>
<div class="code light"><b># Fira Code Light</b>
@ -35,7 +43,7 @@ take = (n, [x, <i>...</i>xs]:list) <i>--></i>
last3 = reverse <i>>></i> take 3 <i>>></i> reverse</div>
<div class="code regular"><b># Fira Code Regular</b>
<div class="code regular"><b># Fira Code Regular</b>
take = (n, [x, <i>...</i>xs]:list) <i>--></i>
| n <i><=</i> 0 <i>=></i> []
@ -45,7 +53,7 @@ take = (n, [x, <i>...</i>xs]:list) <i>--></i>
last3 = reverse <i>>></i> take 3 <i>>></i> reverse</div>
<div class="code medium"><b># Fira Code Medium</b>
<div class="code medium"><b># Fira Code Medium</b>
take = (n, [x, <i>...</i>xs]:list) <i>--></i>
| n <i><=</i> 0 <i>=></i> []
@ -55,7 +63,18 @@ take = (n, [x, <i>...</i>xs]:list) <i>--></i>
last3 = reverse <i>>></i> take 3 <i>>></i> reverse</div>
<div class="code bold"><b># Fira Code Bold</b>
<div class="code bold"><b># Fira Code Bold</b>
take = (n, [x, <i>...</i>xs]:list) <i>--></i>
| n <i><=</i> 0 <i>=></i> []
| empty list <i>=></i> []
| otherwise <i>=></i> [x] <i>++</i> take n-1, xs
last3 = reverse <i>>></i> take 3 <i>>></i> reverse</div>
<div id="code_variable" class="code variable"><b># Fira Code Variable</b>
<input type="range" min="300" max="700" value="400" step="10" style="width: 300px;" oninput="onWeightChange(this.value)" onchange="onWeightChange(this.value)"> <span id="span_wght">400</span>
take = (n, [x, <i>...</i>xs]:list) <i>--></i>
| n <i><=</i> 0 <i>=></i> []

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.