Skip to content

Releases: githubnext/monaspace

v1.101

09 May 20:01
ac94165
Compare
Choose a tag to compare

✨ v1.100 was so exciting, that we were itching to do another release. v1.100 was perfect, but v1.101 is perfecter. Please don't rat us out to our middle school English teachers.

👉 Everything fixed in v1.101 👈

Regressions

Mostly, this release was about fixing regressions that you uncovered in the v1.100 release. In particular, we want to thank @adiabatic, @ian-h-chamberlain, and @kenmcd for the issues they found and filed. 🤘 Y'all are heroes.

Stylistic set changes, again

Based on feedback, we decided to move a bunch of ligatures out from ss02 to a new stylistic set, ss09. We're thinking more deeply about how to do stylistic sets in the long term; there's a limit of 20 stylistic sets and 99 character variants. It would be pretty cool if we could have per-language sets, but there are way more than 20 languages. It's not obvious how to do things in a way that strikes a good balance between usability and fine-grained control, because everyone's tastes differ about certain ligatures.

As before, you will need to update your settings strings to enable ss09 if you want the ligatures in there. You can see a visual atlas of all the ligatures in each stylistic set on the monaspace website

Installation improvements

In addition, there were eleventy billion issues about our Super Quality™ install scripts (and equally awesome installation instructions). We've merged some fixes and tightened up the readme; hopefully install scripts will work in more scenarios and operating systems now. If not — file an issue! And if you're feeling generous and want to open a PR, please check for existing ones first! 😁 Thank you to everyone who both complained and spun up PRs to help us fix this stuff.

There's more improvements to make on the installation front, but we didn't want to hold up this point release for those. Adding an installer script for Windows, more serious improvements to the Mac/Linux install script, and adding Monaspace to winget/chocolatey are on our roadmap for the 1.2 timeframe.

Why v1.101? Do you hate semver?

Well, you see, the OpenType spec is several decades old. Versions in fonts are unfortunately not freeform strings. They are stored as two integer fields: one for major, and one for minor. We literally can't do a major.minor.patch string like we're used to doing on the internet. And that's why this release is 1.101. Now you know! And knowing is half the battle.


See you in the 1.2 milestone. Not before. Hopefully.

✌️❤️ GitHub Next

v1.100

04 May 01:40
955a99a
Compare
Choose a tag to compare

✨ 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 and calt have been rewritten to avoid overlaps and redundancies. liga has been added to cover the spacing-related replacements previously included in calt, which now only includes texture healing replacements. dlig can be safely disabled, as all previous contents are fully covered by ss01-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.
    • 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 in ss02.
      • <= can be swapped from appearing as (default) to instead match the => arrow if preferred, using cv60.
    • Some arrow ligatures have been added to ss03.
    • <> was added, to match existing </> ligature in ss04.
    • ss05
      • Added F# shapes, including /\ and [|
      • optional [] (closed square) found in cv61
    • Connecting ## and ++ ligatures were improved to be infinitely repeatable, found in ss06.
    • : will vertically align with symbols such as - = < > when they appear side-by-side, with ss07 enabled.
    • ..=, ..- and ..< will vertically align by raising the periods to the middle, with ss08 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 and 0 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, and cv61. 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

v1.000

09 Nov 19:21
601eb27
Compare
Choose a tag to compare

✨ Initial release of the Monaspace type system ✨

image