Skip to content

Conversation

@kylewaynebenson
Copy link
Collaborator

@kylewaynebenson kylewaynebenson commented Dec 12, 2025

TLDR:

  • Zero with slash and one with serifs is the new default appearance, stylistic alts added (ss09, ss10) for original characters
  • Fixed metrics on composite glyphs
  • Improved sizing and spacing for the misc characters brought from standard Mona Sans
  • Small sample of coding ligatures
image image image

- zero with slash and one with serifs is the new default appearance, stylistic alts added (ss09, ss10) for original characters
- Fixed metrics on composite glyphs
- Improved sizing and spacing for the misc characters brought from standard Mona Sans
- Small sample of coding ligatures
Copilot AI review requested due to automatic review settings December 12, 2025 01:29
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request implements typography improvements for the MonaSansMono font, focusing on metrics corrections and enhanced readability through modified default numeral appearances and new stylistic alternates.

Key Changes:

  • Updated default zero and one glyphs to slashed zero and serifed one for improved legibility
  • Added stylistic sets (ss09, ss10) to access original zero/one designs
  • Corrected glyph widths from 619 to 618 units across numerous characters for consistent monospace metrics
  • Introduced sample coding ligatures (!=, ==, =>, ||, &&, ::)
  • Refined positioning and spacing for composite glyphs and special characters

Reviewed changes

Copilot reviewed 265 out of 516 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
exclamdown.ss01.glyph Width correction (619→618) and minor coordinate adjustment for inverted exclamation mark
exclam_equal.liga.glyph New coding ligature for != operator
equal_greater.liga.glyph New coding ligature for => arrow operator
equal_equal.liga.glyph New coding ligature for == comparison operator
euro.glyph Redesigned euro symbol with improved curve structure and width correction
emptyset.glyph Simplified slash positioning for empty set symbol
ellipsis.ss01.glyph Adjusted positioning and scaling for stylistic set variant
eight.tf.glyph Converted to component reference from inline paths
degree.glyph Repositioned to higher vertical placement with adjusted metrics
downArrow.glyph Refactored to use upArrow component with 180° rotation
dottedCircle.glyph Comprehensive coordinate adjustments for all dot positions
colon_colon.liga.glyph New coding ligature for :: scope operator
bar_bar.liga.glyph New coding ligature for
ampersand_ampersand.liga.glyph New coding ligature for && logical operator
IJ.glyph Converted from component references to inline paths
_notdef.glyph Updated fallback glyph design
_zero.tf.base.glyph Removed (likely replaced by slash variant as default)
SPC.glyph Added space character definition
Multiple composite glyphs Width corrections and positioning adjustments for accented characters

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

ref = colon;
}
);
width = 600;
Copy link

Copilot AI Dec 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent width value. The m020 layer has width 600 while m019 layer has width 618. All monospace glyphs should maintain consistent width across layers.

Copilot uses AI. Check for mistakes.
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot open a new pull request to apply changes based on this feedback

Copy link

Copilot AI commented Dec 12, 2025

@kylewaynebenson I've opened a new pull request, #99, to work on those changes. Once the pull request is ready, I'll request review from you.

Copilot AI and others added 3 commits December 12, 2025 17:06
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 265 out of 518 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +548 to +572
code = "lookup ampersand_ampersand.liga {
ignore sub ampersand ampersand' ampersand;
ignore sub ampersand' ampersand ampersand;
sub SPC ampersand' by ampersand_ampersand.liga;
sub ampersand' ampersand by SPC;
} ampersand_ampersand.liga;

lookup bar_bar.liga {
ignore sub bar bar' bar;
ignore sub bar' bar bar;
ignore sub bracketleft bar' bar;
ignore sub bar' bar bracketright;
sub SPC bar' by bar_bar.liga;
sub bar' bar by SPC;
} bar_bar.liga;

lookup equal_equal.liga {
ignore sub equal equal' equal;
ignore sub parenleft question less equal' equal;
ignore sub parenleft question equal' equal;
ignore sub equal' equal equal;
ignore sub equal' equal greater;
sub SPC equal' by equal_equal.liga;
sub equal' equal by SPC;
} equal_equal.liga;
Copy link

Copilot AI Jan 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The contextual ligature lookups use SPC as an intermediate but never fully remove it, so sequences like ampersand ampersand (and similar pairs) will resolve to SPC <ligature> rather than just the ligature glyph. Each lookup currently first rewrites one of the base glyphs to SPC (e.g. sub ampersand' ampersand by SPC;), then rewrites the other in context of SPC (e.g. sub SPC ampersand' by ampersand_ampersand.liga;), leaving the SPC glyph in the final glyph stream. To fix this, either (a) avoid the helper glyph and use a single contextual substitution of the original pair directly to the .liga glyph, or (b) add an additional substitution step that collapses SPC plus the ligature (or SPC alone) into just the ligature so no SPC remains rendered.

Copilot uses AI. Check for mistakes.
Comment on lines +642 to +652
sub SPC hyphen' by hyphen_hyphen.liga;
sub hyphen' hyphen by SPC;
} hyphen_hyphen.liga;

lookup colon_colon.liga {
ignore sub colon colon' colon;
ignore sub colon' colon colon;
ignore sub colon' colon equal;
sub SPC colon' by colon_colon.liga;
sub colon' colon by SPC;
} colon_colon.liga;";
Copy link

Copilot AI Jan 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The contextual ligature lookups use SPC as an intermediate but never fully remove it, so sequences like ampersand ampersand (and similar pairs) will resolve to SPC <ligature> rather than just the ligature glyph. Each lookup currently first rewrites one of the base glyphs to SPC (e.g. sub ampersand' ampersand by SPC;), then rewrites the other in context of SPC (e.g. sub SPC ampersand' by ampersand_ampersand.liga;), leaving the SPC glyph in the final glyph stream. To fix this, either (a) avoid the helper glyph and use a single contextual substitution of the original pair directly to the .liga glyph, or (b) add an additional substitution step that collapses SPC plus the ligature (or SPC alone) into just the ligature so no SPC remains rendered.

Suggested change
sub SPC hyphen' by hyphen_hyphen.liga;
sub hyphen' hyphen by SPC;
} hyphen_hyphen.liga;
lookup colon_colon.liga {
ignore sub colon colon' colon;
ignore sub colon' colon colon;
ignore sub colon' colon equal;
sub SPC colon' by colon_colon.liga;
sub colon' colon by SPC;
} colon_colon.liga;";
sub hyphen hyphen by hyphen_hyphen.liga;
} hyphen_hyphen.liga;
lookup colon_colon.liga {
ignore sub colon colon' colon;
ignore sub colon' colon colon;
ignore sub colon' colon equal;
sub colon colon by colon_colon.liga;
} colon_colon.liga;";

Copilot uses AI. Check for mistakes.
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.

4 participants