From a5522ccacf8ab3fa15254a3f591160fe59c379c5 Mon Sep 17 00:00:00 2001 From: multipleof4 Date: Sun, 9 Nov 2025 09:12:04 -0800 Subject: [PATCH] Feat: Add Candara-inspired T/t --- src/glyphs/T.js | 56 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/glyphs/T.js diff --git a/src/glyphs/T.js b/src/glyphs/T.js new file mode 100644 index 0000000..7f0a478 --- /dev/null +++ b/src/glyphs/T.js @@ -0,0 +1,56 @@ +const makeGlyph = (opentype, name, unicode, cmds, adv) => + new opentype.Glyph({ + name, + unicode, + advanceWidth: adv, + path: cmds(new opentype.Path()) + }); + +export const glyphT = (opentype, adv) => + makeGlyph( + opentype, + "T", + "T".codePointAt(0), + (p) => { + p.moveTo(40, 640); + p.lineTo(40, 700); + p.lineTo(560, 700); + p.lineTo(560, 640); + p.lineTo(330, 640); + p.lineTo(330, 0); + p.lineTo(270, 0); + p.lineTo(270, 640); + p.close(); + return p; + }, + adv + ); + +export const glypht = (opentype, adv) => + makeGlyph( + opentype, + "t", + "t".codePointAt(0), + (p) => { + p.moveTo(180, 0); + p.lineTo(180, 420); + p.lineTo(80, 420); + p.lineTo(80, 480); + p.lineTo(180, 480); + p.lineTo(180, 620); + p.lineTo(240, 620); + p.lineTo(240, 480); + p.lineTo(380, 480); + p.lineTo(380, 420); + p.lineTo(240, 420); + p.lineTo(240, 80); + p.curveTo(240, 30, 270, 0, 320, 0); + p.curveTo(350, 0, 370, 10, 390, 20); + p.lineTo(410, -30); + p.curveTo(380, -50, 350, -60, 310, -60); + p.curveTo(230, -60, 180, -10, 180, 80); + p.close(); + return p; + }, + adv + );