Skip to content

Heddle 0.2: Latin Extended-A, lighter marks, open counters at Black, wdth 85 masters - #6

Open
ricardofrantz wants to merge 1 commit into
mainfrom
heddle/v0.2
Open

ricardofrantz wants to merge 1 commit into
mainfrom
heddle/v0.2

Conversation

@ricardofrantz

@ricardofrantz ricardofrantz commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Closes the "Open issues for 0.2" list in heddle/STATUS.md. Loom changes only; the fonts are rebuilt from it.

  • Drift near wdth 85: 4 masters at wdth 85 (16 in all). Largest shape drift 11.1 % → 8.7 %, largest advance drift 38.8 → 30.6 units (proofs/heddle/drift.json). Tabular figures now take the sketch width at every master width (0.85 at wdth 85; 0.1 gave 0.9).
  • Marks: lighter and smaller. A new .narrow set on ı I l ȷ keeps ï Ï Ĩ ĺ at their base advance. Capital marks stay below 950, so win ascent is now 950 (was 1051).
  • Open counters at Black: a minimum counter rule: inner radius ≥ 0.25 S, capped at 38 units per weight. Hook rings (f t j ſ ŋ Ŋ £) widen so the hook counter stays open; j reaches left of its box at heavy weights. Nothing changes at Regular. ß ð @ © ® % are redrawn with the rule, and § is new.
  • Glyphs: all of Latin Extended-A, Ș ș Ț ț, ¢ £ ¥ § ¶ ± × ÷ −, ½ ¼ ¾, fraction slash, numerators and denominators, spacing marks, and the frac/numr/dnom features. That is 398 glyphs and 338 code points (0.1: 197 and 184). Tests check text samples in 13 Central European languages.
  • Kerning: new lowercase pairs, plus figures against punctuation. Figures are tabular, so they do not kern with each other (Fontspector tabular_kerning). The no-touch test now checks every member of every class in all 16 masters.
  • Boolean step: the pathops fallbacks are gone. The new step unions, snaps to integers, splits self-touching contours (Œ at wght 800 had its counter joined to the outline by a slit, wound wrong for nonzero) and winds each contour by nesting depth. Each static glyph is then checked against the nonzero fill and checked for leftover overlaps. No glyph needs a fallback.
  • Hinting: static TTFs go through ttfautohint 1.8.4 (ttfautohint-py 0.6.1, pinned) with no_info and the head dates kept. The build stays byte-identical.
  • Name: register search for HEDDLE is recorded in heddle/BRIEF.md. No mark for fonts or software was found; HEDDLE & CO. (textile decor) and STEEL HEDDLE (loom parts) exist. The register sites were not reachable from the build machine, so this used web search and Justia. Not renamed.
  • Version 0.200, CHANGELOG.md, RELEASE-NOTES-0.2.md, STATUS.md (open items for 0.3, accepted WARNs). The specimen and download pages now link releases/tag/heddle-v0.2.0.

Checks

All run locally on Python 3.14 with the pinned tools. heddle.yml runs only on PRs, so CI runs when this PR opens.

  • pytest: 533 passed.
  • Byte-identical rebuild, hinting included: yes (git status clean after rebuilding the committed tree).
  • fonttools varLib.interpolatable: clean on the designspace, the 16 master UFOs and the variable font.
  • Fontspector 1.9.0 universal: variable font 0 FAIL / 0 ERROR (4 WARN); 11 statics 0 FAIL / 0 ERROR (47 WARN). Accepted WARNs are listed in heddle/STATUS.md. New ones are suspicious_sidebearings (space, ſ) and alt_caron (decomposed statics).
  • Drift report is current; max shape 8.7 % (was 11.1 %).
  • OCR check (display face, so it guards against regressions only; proofs/heddle/readability.json, Tesseract 5.3.4, 24/32/48 px) gives CER 0.17 / 0.17 / 0 % for Regular / Bold / Black, against 0 / 0.34 / 0 % for 0.1. The gate (at most +1 point) passes.
  • Sketch comparison: IoU 0.96–0.97 at Regular and Black; at wght 250, wdth 85 it is 0.86 (was 0.73).
  • Site: build and static checks pass. No external requests, no console errors and no horizontal scroll at 360 px on all pages, and Heddle loads.

Review

Please look at these:

  • proofs/heddle/heddle-before-after-accents.png
  • proofs/heddle/heddle-before-after-counters.png
  • proofs/heddle/heddle-before-after-drift.png
  • proofs/heddle/heddle-latin-ext.png
  • proofs/heddle/heddle-symbols.png
  • proofs/heddle/heddle-charset.png, heddle-kerning.png, heddle-designspace.png

Things to judge by eye:

  • The open counters at Black show as small notches in s and t. They are on purpose, and are listed as a deviation from the sketch.
  • The ogonek and the vertical caron (ď ľ ť Ľ).
  • The new § (an s with a ring as its spine) and ¶.
  • The j hook reaching left at Black.

Not done:

  • The site repo's tracking values (machine-made.github.io) were not re-checked. Only figure widths at wdth 85 and kerning changed.

Generated by Claude Code

View guided diff

…asters

- Masters at wdth 85 (16 masters): drift down from 11.1 % to 8.7 %.
- Lighter, smaller marks; .narrow marks keep i I l from widening; capital
  marks below the typo ascender (win ascent 950).
- Minimum counter rule (0.25 S, at most 38 units): rings and the hooks of
  a f j s t stay open at Black; ß ð @ © ® % redrawn with it; new §.
- Latin Extended-A, Ș ș Ț ț, ¢ £ ¥ § ¶ ± × ÷ −, ½ ¼ ¾, frac/numr/dnom.
- Kerning for lowercase pairs and figures against punctuation; the
  no-touch test checks every class member in every master.
- Overlap removal without fallbacks: snap, split self-touching
  contours, wind by depth, check.
- Static TTF hinted with ttfautohint 1.8.4 (deterministic).
- Version 0.200; docs, proofs, OCR check, site link to heddle-v0.2.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UHtj1XPp34FFs8LVpY1PRF

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants