diff --git a/.envrc b/.envrc
new file mode 100644
index 0000000..3550a30
--- /dev/null
+++ b/.envrc
@@ -0,0 +1 @@
+use flake
diff --git a/.gitignore b/.gitignore
index 726d2d6..2bbdbfe 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,2 @@
-result
.direnv
+result
diff --git a/flake.nix b/flake.nix
index ae3db19..df7c710 100644
--- a/flake.nix
+++ b/flake.nix
@@ -60,7 +60,7 @@
set = "aile";
privateBuildPlan = {
family = "Iosevka Aile Iaso";
- spacing = "quasi-proportional-extension-only";
+ spacing = "quasi-proportional";
no-ligation = true;
no-cv-ss = true;
variants = {
@@ -86,14 +86,9 @@
};
};
weights.regular = {
- shape = 400;
- menu = 400;
- css = 400;
- };
- widths.normal = {
- shape = 550;
- menu = 7;
- css = "expanded";
+ shape = 300;
+ menu = 300;
+ css = 300;
};
inherit metric-override;
};
@@ -144,11 +139,6 @@
menu = 400;
css = 400;
};
- widths.normal = {
- shape = 600;
- menu = 7;
- css = "expanded";
- };
inherit metric-override;
};
};
@@ -157,6 +147,8 @@
for ttf in ${iosevka-curly}/share/fonts/truetype/*.ttf ${iosevka-aile}/share/fonts/truetype/*.ttf ${iosevka-etoile}/share/fonts/truetype/*.ttf; do
cp $ttf .
+ echo "processing $ttf"
+
name=`basename -s .ttf $ttf`
pyftsubset \
$ttf \
@@ -168,14 +160,23 @@
--unicodes="U+0000-00A0,U+00A2-00A9,U+00AC-00AE,U+00B0-00B7,U+00B9-00BA,U+00BC-00BE,U+00D7,U+00F7,U+2000-206F,U+2074,U+20AC,U+2122,U+2190-21BB,U+2212,U+2215,U+F8FF,U+FEFF,U+FFFD"
mv *.ttf ttf
done
+
+ ${pkgs.zip}/bin/zip ttf.zip ttf/*.ttf
+
+ ${pkgs.python3}/bin/python3 ${./src/specimen.py}
'';
installPhase = ''
mkdir -p $out
cp *.woff2 $out
- cp ttf/*.ttf $out
+ cp ttf.zip $out
cp ${src/family.css} $out/family.css
+ cp *.html $out
'';
};
+
+ devShells.default = pkgs.mkShell {
+ buildInputs = [pkgs.python3];
+ };
});
}
diff --git a/src/family.css b/src/family.css
index df5206e..45d8628 100644
--- a/src/family.css
+++ b/src/family.css
@@ -1,22 +1,36 @@
-@font-face {
- font-family: "Iosevka Etoile Iaso";
- font-weight: 100 900;
- src: local("Iosevka Etoile Iaso")
- , url("iosevka-etoile-regular.woff2") format("woff2")
- , url("iosevka-etoile-italic.woff2") format("woff2");
-}
-
@font-face {
font-family: "Iosevka Aile Iaso";
font-weight: 100 900;
+ font-style: normal;
+ src: local("Iosevka Aile Iaso")
+ , url("iosevka-aile-regular.woff2") format("woff2");
+}
+@font-face {
+ font-family: "Iosevka Aile Iaso";
+ font-weight: 100 900;
+ font-style: italic;
src: local("Iosevka Aile Iaso")
- , url("iosevka-aile-regular.woff2") format("woff2")
, url("iosevka-aile-italic.woff2") format("woff2");
}
-
+
@font-face {
font-family: "Iosevka Curly Iaso";
font-weight: 100 900;
src: local("Iosevka Curly Iaso")
, url("iosevka-curly-regular.woff2") format("woff2");
}
+
+@font-face {
+ font-family: "Iosevka Etoile Iaso";
+ font-weight: 100 900;
+ font-style: normal;
+ src: local("Iosevka Etoile Iaso")
+ , url("iosevka-etoile-regular.woff2") format("woff2");
+}
+@font-face {
+ font-family: "Iosevka Etoile Iaso";
+ font-weight: 100 900;
+ font-style: italic;
+ src: local("Iosevka Etoile Iaso")
+ , url("iosevka-etoile-italic.woff2") format("woff2");
+}
diff --git a/src/specimen.py b/src/specimen.py
new file mode 100644
index 0000000..0fedc30
--- /dev/null
+++ b/src/specimen.py
@@ -0,0 +1,100 @@
+#!/usr/bin/env python
+
+header = '''
+
+
+
+ Iosevka Iaso Specimen
+
+
+
+
+
+
+
+ Iosevka Iaso Specimen
+ This page will demonstrate the Iosevka Iaso font family.
+
+ Usage
+ To use this font family, import this CSS:
+ <link rel="stylesheet" href="https://cdn.xeiaso.net/static/css/iosevka/family.css" />
+ Then use the fonts as normal.
+'''
+
+footer = '''
+
+
+
+
+'''
+
+blurbs = {
+ "Aile": "Designed for body text. A quasi-proportional font that evokes moods of the terminal days gone past.",
+ "Curly": "Designed for code. The hacker's canvas and ink.",
+ "Etoile": "Designed for titles. A serifed font that oozes modernity and classic sensibilities.",
+}
+
+with open("specimen.html", "w") as fout:
+ fout.write(header)
+
+ for family in ["Aile", "Curly", "Etoile"]:
+ fout.write(f'''
+ {family}
+ {blurbs[family]}
+ Sphinx of black quartz, hear my vow!
+ SPHINX OF BLACK QUARTZ, HEAR MY VOW!
+ sphinx of black quartz, hear my vow!
+
+ ''')
+
+ i = 0
+ for ch in range(0x20, 0xA0):
+ if i == 10:
+ fout.write(" ")
+ i = 0
+
+ fout.write(f'''{ch:02x} 0x{ch:02x} ''')
+ i += 1
+
+ for ch in range(0xA2, 0xA9):
+ if i == 10:
+ fout.write(" ")
+ i = 0
+
+ fout.write(f'''{ch:02x} 0x{ch:02x} ''')
+ i += 1
+
+ for ch in range(0xAC, 0xAE):
+ if i == 10:
+ fout.write(" ")
+ i = 0
+
+ fout.write(f'''{ch:02x} 0x{ch:02x} ''')
+ i += 1
+
+ fout.write("
")
+
+ fout.write(footer)
+
+
+