aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Fischer <martin@push-f.com>2026-02-10 18:43:20 +0100
committerMartin Fischer <martin@push-f.com>2026-02-15 14:36:46 +0100
commitfef810090d20fcd259cda2c5c0c5fceb3668071d (patch)
tree5bc5f7741561499e0b1208c3adf0b26dbaff641c
initial commitHEADmaster
-rw-r--r--.gitignore1
-rw-r--r--README.md12
-rw-r--r--dist/Haengemenge-Regular.otfbin0 -> 4840 bytes
-rw-r--r--src/haengemenge.glyphs1750
-rw-r--r--woff.nix14
5 files changed, 1777 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..c4a847d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/result
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..7f334e1
--- /dev/null
+++ b/README.md
@@ -0,0 +1,12 @@
+# Martin's typefaces
+
+Created with [Glyphs Mini](https://glyphsapp.com/).
+
+## Hängemenge
+
+TODOs:
+
+* parentheses
+* digits (0-9)
+* ampersand, colon, at sign
+* lowercase letters
diff --git a/dist/Haengemenge-Regular.otf b/dist/Haengemenge-Regular.otf
new file mode 100644
index 0000000..2a544c0
--- /dev/null
+++ b/dist/Haengemenge-Regular.otf
Binary files differ
diff --git a/src/haengemenge.glyphs b/src/haengemenge.glyphs
new file mode 100644
index 0000000..b29bccc
--- /dev/null
+++ b/src/haengemenge.glyphs
@@ -0,0 +1,1750 @@
+{
+.appVersion = "129";
+copyright = "Copyright © 2026 by Martin Fischer";
+date = "2026-02-10 17:42:37 +0000";
+designer = "Martin Fischer";
+designerURL = "https://push-f.com/";
+familyName = "Hängemenge";
+featurePrefixes = (
+{
+automatic = 1;
+code = "languagesystem DFLT dflt;\012";
+name = Languagesystems;
+}
+);
+fontMaster = (
+{
+alignmentZones = (
+"{630, 10}"
+);
+ascender = 630;
+capHeight = 600;
+descender = -200;
+id = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+userData = {
+GSOffsetHorizontal = 27.5;
+GSOffsetMakeStroke = 1;
+GSOffsetVertical = 30;
+};
+weightValue = 0;
+widthValue = 0;
+xHeight = 490;
+}
+);
+glyphs = (
+{
+glyphname = A;
+lastChange = "2026-02-14 19:51:36 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"90 295 LINE",
+"200 256 OFFCURVE",
+"310 256 OFFCURVE",
+"420 295 CURVE",
+"420 355 LINE",
+"310 313 OFFCURVE",
+"200 313 OFFCURVE",
+"90 355 CURVE"
+);
+},
+{
+closed = 0;
+nodes = (
+"60 0 LINE",
+"60 312 OFFCURVE",
+"201 610 OFFCURVE",
+"255 610 CURVE"
+);
+},
+{
+closed = 1;
+nodes = (
+"160 640 OFFCURVE",
+"35 270 OFFCURVE",
+"35 0 CURVE",
+"90 0 LINE",
+"90 305 OFFCURVE",
+"220 580 OFFCURVE",
+"255 580 CURVE SMOOTH",
+"290 580 OFFCURVE",
+"420 305 OFFCURVE",
+"420 0 CURVE",
+"475 0 LINE",
+"475 270 OFFCURVE",
+"350 640 OFFCURVE",
+"255 640 CURVE SMOOTH"
+);
+}
+);
+width = 510;
+}
+);
+leftKerningGroup = A;
+rightKerningGroup = A;
+unicode = 0041;
+},
+{
+glyphname = Adieresis;
+lastChange = "2026-02-14 19:38:32 +0000";
+layers = (
+{
+components = (
+{
+name = A;
+}
+);
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"120 675 LINE",
+"180 675 LINE",
+"180 735 LINE",
+"120 735 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"330 675 LINE",
+"390 675 LINE",
+"390 735 LINE",
+"330 735 LINE"
+);
+}
+);
+width = 510;
+}
+);
+leftMetricsKey = A;
+rightKerningGroup = A;
+rightMetricsKey = A;
+unicode = "00C4,00E4";
+},
+{
+glyphname = B;
+lastChange = "2026-02-14 11:55:01 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"90 0 LINE",
+"90 320 LINE",
+"235 226 OFFCURVE",
+"433 299 OFFCURVE",
+"435 465 CURVE",
+"432 612 OFFCURVE",
+"345 647 OFFCURVE",
+"30 630 CURVE",
+"30 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"90 575 LINE",
+"309 588 OFFCURVE",
+"373 567 OFFCURVE",
+"375 465 CURVE SMOOTH",
+"373 342 OFFCURVE",
+"237 293 OFFCURVE",
+"90 375 CURVE"
+);
+},
+{
+closed = 1;
+nodes = (
+"300 305 LINE",
+"354 277 OFFCURVE",
+"374 231 OFFCURVE",
+"375 175 CURVE SMOOTH",
+"373 52 OFFCURVE",
+"281 49 OFFCURVE",
+"90 55 CURVE",
+"90 0 LINE",
+"170 0 LINE",
+"345 -10 OFFCURVE",
+"433 45 OFFCURVE",
+"435 175 CURVE",
+"432 270 OFFCURVE",
+"401 304 OFFCURVE",
+"350 340 CURVE"
+);
+}
+);
+width = 475;
+}
+);
+unicode = 0042;
+},
+{
+glyphname = C;
+lastChange = "2026-02-14 19:52:29 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"32 139 OFFCURVE",
+"142 -6 OFFCURVE",
+"315 -5 CURVE SMOOTH",
+"403.98 -5.503 OFFCURVE",
+"476.028 30.892 OFFCURVE",
+"525.427 89.573 CURVE",
+"484.065 130.935 LINE",
+"445.918 81.171 OFFCURVE",
+"388.901 50 OFFCURVE",
+"315 50 CURVE SMOOTH",
+"170 50 OFFCURVE",
+"90 170 OFFCURVE",
+"90 315 CURVE SMOOTH",
+"90 460 OFFCURVE",
+"170 580 OFFCURVE",
+"315 580 CURVE SMOOTH",
+"388.283 580 OFFCURVE",
+"444.963 549.349 OFFCURVE",
+"483.104 500.31 CURVE",
+"523.499 541.192 LINE",
+"474.162 598.551 OFFCURVE",
+"402.83 634.504 OFFCURVE",
+"315 635 CURVE SMOOTH",
+"142 634 OFFCURVE",
+"32 489 OFFCURVE",
+"30 315 CURVE SMOOTH"
+);
+}
+);
+width = 555;
+}
+);
+leftKerningGroup = O;
+unicode = 0043;
+},
+{
+glyphname = D;
+lastChange = "2026-02-14 11:17:06 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"30 0 LINE",
+"90 0 LINE",
+"205 0 LINE",
+"382 -1 OFFCURVE",
+"492 139 OFFCURVE",
+"490 315 CURVE",
+"492 489 OFFCURVE",
+"382 629 OFFCURVE",
+"205 630 CURVE",
+"90 630 LINE",
+"30 630 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"90 575 LINE",
+"205 575 LINE SMOOTH",
+"350 575 OFFCURVE",
+"430 460 OFFCURVE",
+"430 315 CURVE SMOOTH",
+"430 170 OFFCURVE",
+"350 55 OFFCURVE",
+"205 55 CURVE",
+"90 55 LINE"
+);
+}
+);
+width = 520;
+}
+);
+unicode = 0044;
+},
+{
+glyphname = E;
+lastChange = "2026-02-10 19:51:53 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"30 0 LINE",
+"90 0 LINE",
+"90 630 LINE",
+"30 630 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"90 575 LINE",
+"420 575 LINE",
+"420 630 LINE",
+"90 630 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"90 0 LINE",
+"420 0 LINE",
+"420 55 LINE",
+"90 55 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"90 290 LINE",
+"184 265 OFFCURVE",
+"251 269 OFFCURVE",
+"370 300 CURVE",
+"370 375 LINE",
+"345 375 LINE",
+"330 350 LINE",
+"250 329 OFFCURVE",
+"170 329 OFFCURVE",
+"90 350 CURVE"
+);
+}
+);
+width = 460;
+}
+);
+unicode = 0045;
+},
+{
+glyphname = F;
+lastChange = "2026-02-14 19:51:08 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"30 0 LINE",
+"90 0 LINE",
+"90 630 LINE",
+"30 630 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"90 575 LINE",
+"420 575 LINE",
+"420 630 LINE",
+"90 630 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"90 290 LINE",
+"184 265 OFFCURVE",
+"251 269 OFFCURVE",
+"370 300 CURVE",
+"370 375 LINE",
+"345 375 LINE",
+"330 350 LINE",
+"250 329 OFFCURVE",
+"170 329 OFFCURVE",
+"90 350 CURVE"
+);
+}
+);
+width = 450;
+}
+);
+leftKerningGroup = I;
+rightKerningGroup = F;
+unicode = 0046;
+},
+{
+glyphname = G;
+lastChange = "2026-02-14 15:17:17 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"32 139 OFFCURVE",
+"142 -6 OFFCURVE",
+"315 -5 CURVE SMOOTH",
+"403.98 -5.503 OFFCURVE",
+"476.028 30.892 OFFCURVE",
+"525.427 89.573 CURVE",
+"525 90 LINE",
+"525 295 LINE",
+"465 295 LINE",
+"465 109.208 LINE",
+"427.861 72.267 OFFCURVE",
+"377.461 50 OFFCURVE",
+"315 50 CURVE SMOOTH",
+"170 50 OFFCURVE",
+"90 170 OFFCURVE",
+"90 315 CURVE SMOOTH",
+"90 460 OFFCURVE",
+"170 580 OFFCURVE",
+"315 580 CURVE SMOOTH",
+"388.283 580 OFFCURVE",
+"444.963 549.349 OFFCURVE",
+"483.104 500.31 CURVE",
+"523.499 541.192 LINE",
+"474.162 598.551 OFFCURVE",
+"402.83 634.504 OFFCURVE",
+"315 635 CURVE SMOOTH",
+"142 634 OFFCURVE",
+"32 489 OFFCURVE",
+"30 315 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"386 274 OFFCURVE",
+"450 277 OFFCURVE",
+"525 290 CURVE",
+"525 350 LINE",
+"458 340 OFFCURVE",
+"392 333 OFFCURVE",
+"325 350 CURVE",
+"310 375 LINE",
+"285 375 LINE",
+"285 300 LINE"
+);
+}
+);
+width = 600;
+}
+);
+unicode = 0047;
+},
+{
+glyphname = H;
+lastChange = "2026-02-10 19:52:27 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"30 0 LINE",
+"90 0 LINE",
+"90 630 LINE",
+"30 630 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"420 0 LINE",
+"480 0 LINE",
+"480 630 LINE",
+"420 630 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"90 295 LINE",
+"200 256 OFFCURVE",
+"310 256 OFFCURVE",
+"420 295 CURVE",
+"420 355 LINE",
+"310 313 OFFCURVE",
+"200 313 OFFCURVE",
+"90 355 CURVE"
+);
+}
+);
+width = 515;
+}
+);
+unicode = 0048;
+},
+{
+glyphname = I;
+lastChange = "2026-02-14 10:47:19 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"35 0 LINE",
+"95 0 LINE",
+"95 630 LINE",
+"35 630 LINE"
+);
+}
+);
+width = 130;
+}
+);
+unicode = 0049;
+},
+{
+glyphname = J;
+lastChange = "2026-02-14 18:25:06 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 0;
+nodes = (
+"50 160 LINE",
+"50 70 OFFCURVE",
+"140 -5 OFFCURVE",
+"230 -5 CURVE SMOOTH",
+"321 -5 OFFCURVE",
+"410 69 OFFCURVE",
+"410 160 CURVE SMOOTH",
+"410 630 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"376 182 LINE SMOOTH",
+"376 116 OFFCURVE",
+"306 55 OFFCURVE",
+"230 55 CURVE SMOOTH",
+"155 55 OFFCURVE",
+"84 116 OFFCURVE",
+"84 180 CURVE",
+"29 180 LINE",
+"29 82 OFFCURVE",
+"124 -5 OFFCURVE",
+"230 -5 CURVE SMOOTH",
+"337 -5 OFFCURVE",
+"431 82 OFFCURVE",
+"431 182 CURVE SMOOTH",
+"431 630 LINE",
+"376 630 LINE"
+);
+}
+);
+width = 460;
+}
+);
+unicode = 004A;
+},
+{
+glyphname = K;
+lastChange = "2026-02-14 09:57:13 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"30 0 LINE",
+"90 0 LINE",
+"90 630 LINE",
+"30 630 LINE"
+);
+},
+{
+closed = 0;
+nodes = (
+"90 315 LINE",
+"337 315 OFFCURVE",
+"360 507 OFFCURVE",
+"360 630 CURVE"
+);
+},
+{
+closed = 1;
+nodes = (
+"65 295 LINE",
+"340 0 LINE",
+"420 0 LINE",
+"400 20 LINE",
+"145 290 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"333 434 OFFCURVE",
+"259 345 OFFCURVE",
+"90 345 CURVE",
+"90 285 LINE",
+"361 285 OFFCURVE",
+"388 505 OFFCURVE",
+"388 630 CURVE",
+"333 630 LINE"
+);
+}
+);
+width = 445;
+}
+);
+unicode = 004B;
+},
+{
+glyphname = L;
+lastChange = "2026-02-14 19:53:35 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"30 0 LINE",
+"90 0 LINE",
+"90 630 LINE",
+"30 630 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"90 0 LINE",
+"370 0 LINE",
+"370 55 LINE",
+"90 55 LINE"
+);
+}
+);
+width = 400;
+}
+);
+leftKerningGroup = I;
+rightKerningGroup = L;
+unicode = 004C;
+},
+{
+glyphname = M;
+lastChange = "2026-02-13 12:33:29 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"90 0 LINE",
+"185 485 LINE",
+"227 269 OFFCURVE",
+"299 90 OFFCURVE",
+"370 90 CURVE",
+"370 150 LINE",
+"339 150 OFFCURVE",
+"236 370 OFFCURVE",
+"215 635 CURVE",
+"155 635 LINE",
+"30 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"585 635 LINE",
+"525 635 LINE",
+"504 370 OFFCURVE",
+"401 150 OFFCURVE",
+"370 150 CURVE",
+"370 90 LINE",
+"441 90 OFFCURVE",
+"513 269 OFFCURVE",
+"555 485 CURVE",
+"650 0 LINE",
+"710 0 LINE"
+);
+}
+);
+width = 740;
+}
+);
+unicode = 004D;
+},
+{
+glyphname = N;
+lastChange = "2026-02-14 09:25:17 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 0;
+nodes = (
+"60 630 LINE",
+"115 425 OFFCURVE",
+"340 30 OFFCURVE",
+"510 30 CURVE"
+);
+},
+{
+closed = 1;
+nodes = (
+"30 0 LINE",
+"90 0 LINE",
+"90 480 LINE",
+"180 285 OFFCURVE",
+"340 30 OFFCURVE",
+"480 0 CURVE",
+"540 0 LINE",
+"540 630 LINE",
+"480 630 LINE",
+"480 60 LINE",
+"335 100 OFFCURVE",
+"150 440 OFFCURVE",
+"90 630 CURVE",
+"60 630 LINE",
+"30 630 LINE"
+);
+}
+);
+width = 570;
+}
+);
+unicode = 004E;
+},
+{
+glyphname = O;
+lastChange = "2026-02-14 19:56:03 +0000";
+layers = (
+{
+guideLines = (
+{
+angle = 270;
+position = "{315, 300}";
+}
+);
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"32 139 OFFCURVE",
+"142 -6 OFFCURVE",
+"315 -5 CURVE SMOOTH",
+"492 -6 OFFCURVE",
+"602 139 OFFCURVE",
+"600 315 CURVE",
+"602 489 OFFCURVE",
+"492 634 OFFCURVE",
+"315 635 CURVE SMOOTH",
+"142 634 OFFCURVE",
+"32 489 OFFCURVE",
+"30 315 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"90 460 OFFCURVE",
+"170 580 OFFCURVE",
+"315 580 CURVE SMOOTH",
+"460 580 OFFCURVE",
+"540 460 OFFCURVE",
+"540 315 CURVE SMOOTH",
+"540 170 OFFCURVE",
+"460 50 OFFCURVE",
+"315 50 CURVE SMOOTH",
+"170 50 OFFCURVE",
+"90 170 OFFCURVE",
+"90 315 CURVE SMOOTH"
+);
+}
+);
+width = 630;
+}
+);
+leftKerningGroup = O;
+unicode = 004F;
+},
+{
+glyphname = Odieresis;
+lastChange = "2026-02-14 19:34:51 +0000";
+layers = (
+{
+components = (
+{
+name = O;
+}
+);
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"180 675 LINE",
+"240 675 LINE",
+"240 735 LINE",
+"180 735 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"390 675 LINE",
+"450 675 LINE",
+"450 735 LINE",
+"390 735 LINE"
+);
+}
+);
+width = 630;
+}
+);
+leftKerningGroup = O;
+leftMetricsKey = O;
+rightMetricsKey = O;
+unicode = "00D6,00F6";
+},
+{
+glyphname = P;
+lastChange = "2026-02-14 11:42:46 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"90 0 LINE",
+"90 320 LINE",
+"276 251 OFFCURVE",
+"432 291 OFFCURVE",
+"435 465 CURVE",
+"432 618 OFFCURVE",
+"345 647 OFFCURVE",
+"30 630 CURVE",
+"30 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"90 575 LINE",
+"309 588 OFFCURVE",
+"377 567 OFFCURVE",
+"375 465 CURVE SMOOTH",
+"373 339 OFFCURVE",
+"237 309 OFFCURVE",
+"90 386.722 CURVE"
+);
+}
+);
+width = 460;
+}
+);
+unicode = 0050;
+},
+{
+glyphname = Q;
+lastChange = "2026-02-14 15:44:47 +0000";
+layers = (
+{
+components = (
+{
+name = O;
+}
+);
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"520 -10 LINE",
+"400 140 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"520 -10 LINE",
+"400 140 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"379 121 LINE",
+"499 -29 LINE",
+"541 9 LINE",
+"421 159 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"379 121 LINE",
+"499 -29 LINE",
+"541 9 LINE",
+"421 159 LINE"
+);
+}
+);
+width = 630;
+}
+);
+unicode = 0051;
+},
+{
+glyphname = R;
+lastChange = "2026-02-14 11:39:05 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"90 0 LINE",
+"90 296.377 LINE",
+"366.351 0 LINE",
+"445 0 LINE",
+"425 20 LINE",
+"171.578 291.785 LINE",
+"312.643 259.859 OFFCURVE",
+"433 326 OFFCURVE",
+"435 465 CURVE",
+"432 618 OFFCURVE",
+"345 647 OFFCURVE",
+"30 630 CURVE",
+"30 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"90 575 LINE",
+"309 588 OFFCURVE",
+"373 567 OFFCURVE",
+"375 465 CURVE SMOOTH",
+"373 342 OFFCURVE",
+"237.021 305.557 OFFCURVE",
+"90 386.722 CURVE"
+);
+}
+);
+width = 475;
+}
+);
+unicode = 0052;
+},
+{
+glyphname = S;
+lastChange = "2026-02-14 19:18:51 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 0;
+nodes = (
+"50 160 LINE",
+"50 70 OFFCURVE",
+"140 -5 OFFCURVE",
+"230 -5 CURVE SMOOTH",
+"321 -5 OFFCURVE",
+"410 69 OFFCURVE",
+"410 160 CURVE SMOOTH",
+"410 251 OFFCURVE",
+"321 289 OFFCURVE",
+"230 325 CURVE SMOOTH",
+"151 356 OFFCURVE",
+"75 395 OFFCURVE",
+"75 480 CURVE SMOOTH",
+"75 565 OFFCURVE",
+"145 635 OFFCURVE",
+"230 635 CURVE SMOOTH",
+"315 635 OFFCURVE",
+"385 565 OFFCURVE",
+"385 480 CURVE"
+);
+},
+{
+closed = 1;
+nodes = (
+"407 556 OFFCURVE",
+"327 635 OFFCURVE",
+"230 635 CURVE SMOOTH",
+"133 635 OFFCURVE",
+"53 558 OFFCURVE",
+"55 465 CURVE SMOOTH",
+"53 387 OFFCURVE",
+"104 339 OFFCURVE",
+"220 295 CURVE SMOOTH",
+"338 252 OFFCURVE",
+"376 223 OFFCURVE",
+"375 175 CURVE SMOOTH",
+"376 113 OFFCURVE",
+"306 50 OFFCURVE",
+"230 50 CURVE SMOOTH",
+"155 50 OFFCURVE",
+"84 116 OFFCURVE",
+"85 180 CURVE",
+"30 180 LINE",
+"29 82 OFFCURVE",
+"124 -5 OFFCURVE",
+"230 -5 CURVE SMOOTH",
+"337 -5 OFFCURVE",
+"431 78 OFFCURVE",
+"430 175 CURVE SMOOTH",
+"431 278 OFFCURVE",
+"327 320 OFFCURVE",
+"240 350 CURVE SMOOTH",
+"144 388 OFFCURVE",
+"108 418 OFFCURVE",
+"110 465 CURVE SMOOTH",
+"108 525 OFFCURVE",
+"163 580 OFFCURVE",
+"230 580 CURVE SMOOTH",
+"297 580 OFFCURVE",
+"352 523 OFFCURVE",
+"350 460 CURVE",
+"405 460 LINE"
+);
+}
+);
+width = 460;
+}
+);
+unicode = 0053;
+},
+{
+glyphname = T;
+lastChange = "2026-02-14 19:46:28 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"450 575 LINE",
+"450 630 LINE",
+"30 630 LINE",
+"30 575 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"210 0 LINE",
+"270 0 LINE",
+"270 630 LINE",
+"210 630 LINE"
+);
+}
+);
+width = 480;
+}
+);
+leftKerningGroup = T;
+rightKerningGroup = T;
+unicode = 0054;
+},
+{
+glyphname = U;
+lastChange = "2026-02-14 11:25:33 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"30 210 LINE",
+"85 210 LINE",
+"85 630 LINE",
+"30 630 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"420 210 LINE",
+"475 210 LINE",
+"475 630 LINE",
+"420 630 LINE"
+);
+},
+{
+closed = 0;
+nodes = (
+"60 210 LINE",
+"60 150 OFFCURVE",
+"119 25 OFFCURVE",
+"255 25 CURVE SMOOTH",
+"400 25 OFFCURVE",
+"445 150 OFFCURVE",
+"445 210 CURVE"
+);
+},
+{
+closed = 1;
+nodes = (
+"418 128 OFFCURVE",
+"348 55 OFFCURVE",
+"255 55 CURVE SMOOTH",
+"167 55 OFFCURVE",
+"83 133 OFFCURVE",
+"85 210 CURVE",
+"30 210 LINE",
+"28 99 OFFCURVE",
+"137 -5 OFFCURVE",
+"255 -5 CURVE SMOOTH",
+"378 -5 OFFCURVE",
+"473 94 OFFCURVE",
+"475 210 CURVE",
+"420 210 LINE"
+);
+}
+);
+width = 505;
+}
+);
+unicode = 0055;
+},
+{
+glyphname = Udieresis;
+lastChange = "2026-02-14 19:33:03 +0000";
+layers = (
+{
+components = (
+{
+name = U;
+}
+);
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"120 675 LINE",
+"180 675 LINE",
+"180 735 LINE",
+"120 735 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"330 675 LINE",
+"390 675 LINE",
+"390 735 LINE",
+"330 735 LINE"
+);
+}
+);
+width = 505;
+}
+);
+leftMetricsKey = U;
+rightMetricsKey = U;
+unicode = "00DC,00FC";
+},
+{
+glyphname = V;
+lastChange = "2026-02-14 19:44:10 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"345 -10 OFFCURVE",
+"470 360 OFFCURVE",
+"470 630 CURVE",
+"415 630 LINE",
+"415 325 OFFCURVE",
+"285 50 OFFCURVE",
+"250 50 CURVE SMOOTH",
+"215 50 OFFCURVE",
+"85 325 OFFCURVE",
+"85 630 CURVE",
+"30 630 LINE",
+"30 360 OFFCURVE",
+"155 -10 OFFCURVE",
+"250 -10 CURVE SMOOTH"
+);
+}
+);
+width = 500;
+}
+);
+leftKerningGroup = V;
+rightKerningGroup = V;
+unicode = 0056;
+},
+{
+glyphname = W;
+lastChange = "2026-02-14 11:59:31 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"345 -10 OFFCURVE",
+"470 360 OFFCURVE",
+"470 630 CURVE",
+"415 630 LINE",
+"415 325 OFFCURVE",
+"285 50 OFFCURVE",
+"250 50 CURVE SMOOTH",
+"215 50 OFFCURVE",
+"85 325 OFFCURVE",
+"85 630 CURVE",
+"30 630 LINE",
+"30 360 OFFCURVE",
+"155 -10 OFFCURVE",
+"250 -10 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"645 -10 OFFCURVE",
+"770 360 OFFCURVE",
+"770 630 CURVE",
+"715 630 LINE",
+"715 325 OFFCURVE",
+"585 50 OFFCURVE",
+"550 50 CURVE SMOOTH",
+"515 50 OFFCURVE",
+"385 325 OFFCURVE",
+"385 630 CURVE",
+"330 630 LINE",
+"330 360 OFFCURVE",
+"455 -10 OFFCURVE",
+"550 -10 CURVE SMOOTH"
+);
+}
+);
+width = 800;
+}
+);
+unicode = 0057;
+},
+{
+glyphname = X;
+lastChange = "2026-02-14 16:43:54 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 0;
+nodes = (
+"85 -15 LINE",
+"394 417 OFFCURVE",
+"476 560 OFFCURVE",
+"475 630 CURVE"
+);
+},
+{
+closed = 0;
+nodes = (
+"475 -15 LINE",
+"166 417 OFFCURVE",
+"84 560 OFFCURVE",
+"85 630 CURVE"
+);
+},
+{
+closed = 1;
+nodes = (
+"280 215 LINE",
+"315 265 LINE",
+"455 470 OFFCURVE",
+"505 570 OFFCURVE",
+"500 630 CURVE",
+"450 630 LINE",
+"450 585 OFFCURVE",
+"405 495 OFFCURVE",
+"280 310 CURVE",
+"245 265 LINE",
+"65 0 LINE",
+"125 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"500 0 LINE",
+"320 265 LINE",
+"285 310 LINE",
+"160 495 OFFCURVE",
+"115 585 OFFCURVE",
+"115 630 CURVE",
+"65 630 LINE",
+"60 570 OFFCURVE",
+"110 470 OFFCURVE",
+"250 265 CURVE",
+"285 215 LINE",
+"440 0 LINE"
+);
+}
+);
+width = 580;
+}
+);
+unicode = 0058;
+},
+{
+glyphname = Y;
+lastChange = "2026-02-14 19:49:11 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 0;
+nodes = (
+"235 300 LINE",
+"288 301 OFFCURVE",
+"413 548 OFFCURVE",
+"415 630 CURVE"
+);
+},
+{
+closed = 1;
+nodes = (
+"205 0 LINE",
+"265 0 LINE",
+"265 315 LINE",
+"205 315 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"386 561 OFFCURVE",
+"265 331 OFFCURVE",
+"234 330 CURVE",
+"236 270 LINE",
+"301 271 OFFCURVE",
+"440 518 OFFCURVE",
+"442 629 CURVE",
+"388 631 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"30 630 LINE",
+"30 518 OFFCURVE",
+"169 271 OFFCURVE",
+"235 270 CURVE",
+"235 330 LINE",
+"205 331 OFFCURVE",
+"84 561 OFFCURVE",
+"80 630 CURVE"
+);
+}
+);
+width = 470;
+}
+);
+leftKerningGroup = Y;
+rightKerningGroup = Y;
+unicode = 0059;
+},
+{
+glyphname = Z;
+lastChange = "2026-02-14 11:19:40 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"60 575 LINE",
+"510 575 LINE",
+"510 630 LINE",
+"60 630 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"30 0 LINE",
+"540 0 LINE",
+"540 55 LINE",
+"30 55 LINE"
+);
+},
+{
+closed = 0;
+nodes = (
+"480 600 LINE",
+"480 479 OFFCURVE",
+"445 210 OFFCURVE",
+"30 30 CURVE"
+);
+},
+{
+closed = 1;
+nodes = (
+"343 134 OFFCURVE",
+"508 340 OFFCURVE",
+"508 600 CURVE",
+"453 600 LINE",
+"453 366 OFFCURVE",
+"302 180 OFFCURVE",
+"19 58 CURVE",
+"41 2 LINE"
+);
+}
+);
+width = 570;
+}
+);
+unicode = 005A;
+},
+{
+glyphname = period;
+lastChange = "2026-02-14 18:28:39 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"30 0 LINE",
+"90 0 LINE",
+"90 60 LINE",
+"30 60 LINE"
+);
+}
+);
+width = 120;
+}
+);
+unicode = 002E;
+},
+{
+glyphname = comma;
+lastChange = "2026-02-14 18:33:02 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"10 -50 LINE",
+"70 -50 LINE",
+"105 60 LINE",
+"40 60 LINE"
+);
+}
+);
+width = 120;
+}
+);
+unicode = 002C;
+},
+{
+glyphname = exclam;
+lastChange = "2026-02-14 19:13:45 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"55 120 LINE",
+"105 120 LINE",
+"120 630 LINE",
+"40 630 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"50 0 LINE",
+"110 0 LINE",
+"110 65 LINE",
+"50 65 LINE"
+);
+}
+);
+width = 160;
+}
+);
+unicode = 0021;
+},
+{
+glyphname = question;
+lastChange = "2026-02-14 19:24:30 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"165 0 LINE",
+"225 0 LINE",
+"225 60 LINE",
+"165 60 LINE"
+);
+},
+{
+closed = 0;
+nodes = (
+"195 120 LINE",
+"195 211 OFFCURVE",
+"185 267 OFFCURVE",
+"255 305 CURVE SMOOTH",
+"299 329 OFFCURVE",
+"350 360 OFFCURVE",
+"350 445 CURVE SMOOTH",
+"350 530 OFFCURVE",
+"280 605 OFFCURVE",
+"195 605 CURVE SMOOTH",
+"110 605 OFFCURVE",
+"40 530 OFFCURVE",
+"40 445 CURVE"
+);
+},
+{
+closed = 1;
+nodes = (
+"68 515 OFFCURVE",
+"126 580 OFFCURVE",
+"195 580 CURVE SMOOTH",
+"264 580 OFFCURVE",
+"323 515 OFFCURVE",
+"323 445 CURVE SMOOTH",
+"323 378 OFFCURVE",
+"286 356 OFFCURVE",
+"242 331 CURVE SMOOTH",
+"154 283 OFFCURVE",
+"165 208 OFFCURVE",
+"165 120 CURVE",
+"225 120 LINE",
+"225 214 OFFCURVE",
+"216 251 OFFCURVE",
+"268 279 CURVE SMOOTH",
+"312 302 OFFCURVE",
+"378 342 OFFCURVE",
+"378 445 CURVE SMOOTH",
+"378 548 OFFCURVE",
+"294 635 OFFCURVE",
+"195 635 CURVE SMOOTH",
+"96 635 OFFCURVE",
+"13 548 OFFCURVE",
+"13 445 CURVE",
+"68 445 LINE"
+);
+}
+);
+width = 390;
+}
+);
+unicode = 003F;
+},
+{
+glyphname = slash;
+lastChange = "2026-02-14 19:00:38 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"87.843 -60 LINE",
+"380 690 LINE",
+"320 690 LINE",
+"30 -60 LINE"
+);
+}
+);
+width = 410;
+}
+);
+unicode = 002F;
+},
+{
+glyphname = backslash;
+lastChange = "2026-02-14 19:01:29 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"90 690 LINE",
+"30 690 LINE",
+"320 -60 LINE",
+"380 -60 LINE"
+);
+}
+);
+width = 410;
+}
+);
+unicode = 005C;
+},
+{
+glyphname = hyphen;
+lastChange = "2026-02-14 18:47:26 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"30 285 LINE",
+"240 285 LINE",
+"240 345 LINE",
+"30 345 LINE"
+);
+}
+);
+width = 270;
+}
+);
+unicode = 002D;
+},
+{
+glyphname = quoteright;
+lastChange = "2026-02-14 18:38:05 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"15 520 LINE",
+"75 520 LINE",
+"110 630 LINE",
+"45 630 LINE"
+);
+}
+);
+width = 125;
+}
+);
+unicode = 2019;
+},
+{
+glyphname = quotesingle;
+lastChange = "2026-02-14 18:38:28 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+paths = (
+{
+closed = 1;
+nodes = (
+"30 520 LINE",
+"90 520 LINE",
+"90 630 LINE",
+"30 630 LINE"
+);
+}
+);
+width = 125;
+}
+);
+unicode = 0027;
+},
+{
+glyphname = space;
+lastChange = "2026-02-14 19:46:20 +0000";
+layers = (
+{
+layerId = "B800006F-9677-4C1E-ADA1-1522C6F00C3F";
+width = 300;
+}
+);
+unicode = 0020;
+}
+);
+gridLength = 30;
+gridSubDivision = 6;
+instances = (
+{
+name = Regular;
+}
+);
+kerning = {
+"B800006F-9677-4C1E-ADA1-1522C6F00C3F" = {
+"@MMK_L_A" = {
+"@MMK_R_T" = -60;
+"@MMK_R_V" = -40;
+"@MMK_R_Y" = -50;
+};
+"@MMK_L_F" = {
+"@MMK_R_A" = -20;
+};
+"@MMK_L_L" = {
+"@MMK_R_O" = -50;
+"@MMK_R_T" = -120;
+};
+"@MMK_L_T" = {
+"@MMK_R_O" = -40;
+space = -50;
+};
+"@MMK_L_Y" = {
+"@MMK_R_A" = -50;
+"@MMK_R_O" = -30;
+};
+D = {
+"@MMK_R_A" = -10;
+"@MMK_R_Y" = -10;
+};
+O = {
+"@MMK_R_T" = -30;
+R = 0;
+};
+W = {
+"@MMK_R_O" = -20;
+};
+X = {
+"@MMK_R_O" = -30;
+};
+space = {
+"@MMK_R_A" = 0;
+"@MMK_R_T" = -50;
+"@MMK_R_Y" = -50;
+};
+};
+};
+unitsPerEm = 900;
+versionMajor = 1;
+versionMinor = 0;
+}
diff --git a/woff.nix b/woff.nix
new file mode 100644
index 0000000..8be0709
--- /dev/null
+++ b/woff.nix
@@ -0,0 +1,14 @@
+{ pkgs ? import <nixpkgs> {} }:
+
+pkgs.stdenv.mkDerivation {
+ name = "martin-web-fonts";
+ src = ./dist;
+ buildInputs = [pkgs.woff2];
+ installPhase = ''
+ mkdir -p $out/share/fonts/woff2
+ for f in *.otf; do
+ woff2_compress "$f"
+ mv "''${f%.otf}.woff2" $out/share/fonts/woff2
+ done
+ '';
+}