✨ v1.1 is here, with a ton of fixes and improvements, and a public roadmap! ✨
I know we've been pretty quiet — GitHub Next has had a lot going on in the past few months, and we're spread pretty thin. You may have heard about Copilot Workspace, but only the eagle-eyed among you might have noticed that we're using Monaspace Neon there. 💅
Key updates:
- 💪 We've addressed over 30 issues, some of them pretty gnarly! Monaspace should look better and work better across operating systems, editors, and programming languages.
- 🚨 We've significantly revamped the way ligatures work. This is a breaking change, and if you used Monaspace v1.0, you will almost certainly need to change your editor settings.
- 👀 We've got a brand new public roadmap! You can see what we're up to and what we have planned going forward.
Let's dive in.
Issues closed
👉 Every issue closed in v1.1 👈
You amazing people found a ton of places where things didn't look great, ligatures that weren't quite right, and situations in different operating systems and editors where Monaspace was decidedly not awesome.
While we haven't reached inbox zero, the wizards at Lettermatic have been busy breaking down the tickets into categories and figuring out fixes. Addressing some of these issues required us to rethink some of the OpenType features.
Altogether, here's a snapshot of what we've addressed in this release:
- #125 has been incorporated, setting Panose flags to allow for use of the fonts in more applications. Thanks @Finii!
dlig
andcalt
have been rewritten to avoid overlaps and redundancies.liga
has been added to cover the spacing-related replacements previously included incalt
, which now only includes texture healing replacements.dlig
can be safely disabled, as all previous contents are fully covered byss01-08
.- All ligatures have been rebuilt to incorporate the addition of an advance width character, allowing for arbitrary selection or typing within a ligature after it is created. This also allows every character in the fonts to use the same fixed width, avoiding issues with some applications not recognizing the fonts as being monospaced.
- Many ligatures and features have been added or revised, including:
liga
- Spacing ligatures such as
//
and||
will no longer appear to be ‘clumping’ when appearing in a long string of repeated characters.
- Spacing ligatures such as
ss01
==
and===
have been redrawn to help distinguish between them.- These ligatures will no longer appear in a string of
====
or longer. !==
has also been redrawn to match===
, and to differentiate from=/=
.=~
ligature will not appear when preceding or followed by a slash, to avoid unwanted ligatures appearing in file paths.
- Added C++ operators, including
<<=
,>>=
,<=>
, all found inss02
.<=
can be swapped from appearing as≤
(default) to instead match the=>
arrow if preferred, usingcv60
.
- Some arrow ligatures have been added to
ss03
. <>
was added, to match existing</>
ligature inss04
.ss05
- Added F# shapes, including
/\
and[|
- optional
[]
(closed square) found incv61
- Added F# shapes, including
- Connecting
##
and++
ligatures were improved to be infinitely repeatable, found inss06
. :
will vertically align with symbols such as- = < >
when they appear side-by-side, withss07
enabled...=
,..-
and..<
will vertically align by raising the periods to the middle, withss08
enabled.- Ligature-related bugs in the variable fonts have been squashed.
- The default asterisk design is now lowered to align with the hyphen and other center-aligned glyphs, eliminating the need for asterisk-related ligatures and fixing any misalignment bugs.
cv30
has been added to revert to the original asterisk if preferred. - The hyphen, en dash and em dash have been redrawn to help distinguish between them. The underscore has also been redrawn to be narrower, so that it does not overlap when appearing in a string.
- The version number glyph has been moved to a private-use Unicode slot, avoiding conflicts with other typefaces.
.notdef
's width has been fixed to match the fixed width of other characters.- Texture healing has been removed from
zero
following user feedback. - Visual bugs related to hinting issues, such as
X
in Argon and0
in Neon, have been fixed. - .woff2 font files are now included in the font download packages.
Update your settings
In Monaspace v1.1, the various OpenType feature settings have changed, and you should update your editor settings accordingly. The README has been updated to reflect the new features, but if you're coming from v1.0, you're probably going to want to update your editor settings.
dlig
is no longer used. You should remove it from anywhere that you may have set it.calt
is now exclusively a toggle for texture healing. You can now enable stylistic sets independendently of texture healing.liga
is now a utility that affects customized spacing of repeating characters, like///
or||
. It is designed to avoid activating inside longer sequences, like////
.- The contents of stylistic sets has changed. You should visit https://monaspace.githubnext.com to consult the table of stylistic sets and choose which ones you would like to enable.
- There are now three character variant settings,
cv30
,cv60
, andcv61
. These will alter the behavior of specific characters.
If you just want a settings line to copy for VS Code, the following will enable texture healing and every stylistic set, but none of the character variants:
"editor.fontLigatures": "'calt', 'ss01', 'ss02', 'ss03', 'ss04', 'ss05', 'ss06', 'ss07', 'ss08', 'liga'",
Roadmap
v1.1 was largely about squashing the core presentational and behavioral bugs. You might not feel all of the changes, as many of them were made to address the edge cases and unusual situations you brought to our attention.
Going forward, our focus is on expanding Monaspace to incorporate more symbols, more glyphs, extended math support, box drawing, and Powerline. We also were excited to see Nerd Font support ship in Cascadia Code — we hope to follow in their footsteps! Stay tuned as we figure things out with lawyers.
Further out, we'd really love to tackle expansions of the character sets to include Greek and Cyrillic. Keep in mind that adding support for entire character sets is a huge undertaking; we probably won't be doing every script ever invented. But keep the requests coming, as it helps us to prioritize where we spend our time.
Check out the public planning board to know what we're thinking about tackling and when: https://gh.io/monaspace-planning.
Thanks / Next steps
None of this would be possible without the hard work of all the contributors at Lettermatic.
Check out the 1.2 milestone and see what we're planning for the next release.
✌️❤️ GitHub Next