Skip to content

Commit 2847f33

Browse files
committed
Update README for 1.2
1 parent e0e51d9 commit 2847f33

1 file changed

Lines changed: 67 additions & 9 deletions

File tree

README.md

Lines changed: 67 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,11 @@ Letters on a grid is how we see our code. Why not make those letters better?
1313

1414
## Overview
1515

16-
Monaspace is available as a variable-axis font and a static build. You can install them both side-by-side; their family names are distinct. For example:
16+
Monaspace is available in three distinct variations. You can install them both side-by-side; their family names are distinct. For example:
1717

18-
- `Monaspace _____`: the static family
18+
- `Monaspace _____`: the static family.
1919
- `Monaspace _____ Var` or `VF`: the variable family
20+
- `Monaspace _____ Frozen`: the "frozen" TTF family. These fonts enable all of the typographical features in Monaspace by default. They are intended to be used in environments where you might not be able to configure stylistic sets or character variants, like XCode or IntelliJ IDEs. See more about how the frozen fonts work below.
2021

2122
The variable fonts have one file per family (Neon, Argon, etc.). Modern and convenient!
2223

@@ -32,10 +33,27 @@ Texture healing is enabled when the `calt` font feature setting is turned on in
3233

3334
You can read more about how it works on the [Monaspace website](http://monaspace.githubnext.com), and learn how it is implemented in the [documentation](https://github.com/githubnext/monaspace/blob/main/docs/Texture%20Healing.md).
3435

36+
## Nerd Fonts
37+
38+
As of Monaspace 1.2, the static font builds (both OTF and WOFF/WOFF2) include [Nerd Fonts](https://www.nerdfonts.com/)!
39+
40+
Monaspace gives a lot of consideration to horizontal and vertical metrics of a font, and Nerd Fonts are thousands of icons which don't necessarily respect those considerations. Monaspace makes a best-effort attempt to optically align the size and placement of the icons so that they feel compatible with the other Monaspace glyphs.
41+
42+
There is such a broad variety of environments and terminals and often solving for one breaks another! Some Nerd Fonts glyphs may not render correctly in every environment.
43+
44+
> [!NOTE]
45+
> Monaspace uses the [Nerd Fonts implementation from Cascadia Code](https://github.com/microsoft/cascadia-code/tree/main/sources/nerdfonts/full/processed) as our starting point. Each icon was resized to fit the max advance width of the given Monaspace font, and centered vertically between the baseline and cap height of Monaspace's vertical metrics.
46+
47+
3548
## Coding Ligatures
3649

3750
> [!WARNING]
38-
> Ligature handling has changed significantly in Monaspace v1.1 and v1.101. If you're upgrading, see the [release notes for guidance on how to alter your editor settings](https://github.com/githubnext/monaspace/releases/tag/v1.100).
51+
> Ligature handling has changed significantly in Monaspace point releases.
52+
> If you're upgrading, check the release notes to learn what changes you might need to make to your editor configuration:
53+
> - [v1.1](https://github.com/githubnext/monaspace/releases/tag/v1.100)
54+
> - [v1.101](https://github.com/githubnext/monaspace/releases/tag/v1.101)
55+
> - [v1.2](https://github.com/githubnext/monaspace/releases/tag/v1.200)
56+
3957

4058
The `liga` font feature enables customized spacing of repeating characters, like `///` or `||`. It is designed to avoid activating inside longer sequences like `////`.
4159

@@ -55,12 +73,39 @@ There are eight groups of coding ligatures, separated into stylistic sets. You m
5573

5674
## Character Variants
5775

58-
Specific characters have variants that you can optionally enable:
76+
Specific characters have variants that you can optionally enable using the `cvNN` opentype feature:
77+
78+
#### cv01-cv09: figure variants
79+
- `cv01`: `0` alternates
80+
- 1: plain
81+
- 2: slash
82+
- 3: reverse slash
83+
- 4: cut-out slash
84+
- `cv02`: `1` alternate (no serif)
85+
86+
#### cv10-cv29: letter variants
87+
- `cv10`: `l` `i` alternates (Neon, Argon, Xenon, Radon)
88+
- `cv11`: `j` `f` `r` `t` alternates (Neon, Argon)
5989

60-
* `cv30`: Enable the older asterisk as shipped in Monaspace 1.0, which was vertically aligned closer to the top of the space.
61-
* `cv60`: forces the `<=` pair to render in a fashion that matches `=>` instead of swapping for ``.
62-
* `cv61`: enables the optional closed square ligature for `[]`. This can be distracting when authoring arrays in many editors, because they automatically insert the closing bracket, which immediately produces the closed square ligature upon typing the open bracket.
90+
#### cv30-cv59: symbol variants
91+
- `cv30`: `*` vertically aligned closer to the top of the space, similar to how the asterisk was in Monaspace 1.0
92+
- `cv31`: `*` 6-pointed asterisk
93+
- `cv32`: `` `` angled lower line
6394

95+
#### cv60-cv79: optional ligatures
96+
- `cv60`: forces the `<=` pair to render in a fashion that matches `=>` instead of swapping for ``.
97+
- `cv61`: enables the optional closed square ligature for `[]`. This can be distracting when authoring arrays in many editors, because they automatically insert the closing bracket, which immediately produces the closed square ligature upon typing the open bracket.
98+
- `cv62`: `@_` ligature
99+
100+
101+
### cv80-cv99: reserved for future use
102+
- none (yet!)
103+
104+
## Special Characters Galore
105+
106+
In addition to the ligatures, character variants, and Nerd Fonts, Monaspace includes a wealth of characters.
107+
108+
![Special Characters](https://github.com/user-attachments/assets/c925585b-db09-45e2-ac75-911e89419a47)
64109

65110
## Desktop Installation
66111

@@ -108,12 +153,18 @@ All files with a `.woff` or `.woff2` suffix are intended for use on the web. You
108153

109154
As with the desktop fonts, they are available in variable and static versions.
110155

156+
There are no "frozen" webfonts. You can control Opentype features on the web using the [`font-feature-settings`](https://developer.mozilla.org/en-US/docs/Web/CSS/font-feature-settings) CSS property.
157+
111158
## Editors
112159

113160
### Visual Studio Code
114161

115162
> [!WARNING]
116-
> Ligature handling has changed significantly in Monaspace v1.1. If you're upgrading from Monaspace v1.0, see the release notes ([v1.100](https://github.com/githubnext/monaspace/releases/tag/v1.100), [v1.101](https://github.com/githubnext/monaspace/releases/tag/v1.101)) for guidance on how to alter your editor settings.
163+
> Ligature handling has changed significantly in Monaspace point releases.
164+
> If you're upgrading, check the release notes to learn what changes you might need to make to your editor configuration:
165+
> - [v1.1](https://github.com/githubnext/monaspace/releases/tag/v1.100)
166+
> - [v1.101](https://github.com/githubnext/monaspace/releases/tag/v1.101)
167+
> - [v1.2](https://github.com/githubnext/monaspace/releases/tag/v1.200)
117168
118169
Set the font family:
119170

@@ -136,9 +187,16 @@ You must use the `editor.fontLigatures` setting to enable the various features (
136187

137188
Putting it all together, a setting string which enables everything but the character variants would look like this:
138189
```json
139-
"editor.fontLigatures": "'calt', 'liga', 'ss01', 'ss02', 'ss03', 'ss04', 'ss05', 'ss06', 'ss07', 'ss08', 'ss09'",
190+
"editor.fontLigatures": "'calt', 'liga', 'ss01', 'ss02', 'ss03', 'ss04', 'ss05', 'ss06', 'ss07', 'ss08', 'ss09'"
140191
```
141192

193+
Specific character variants are also enabled using the [`font-feature-settings`](https://developer.mozilla.org/en-US/docs/Web/CSS/font-feature-settings) syntax. To enable slashed zeroes (with `cv01`) and six-pointed asterisks (with `cv31`), you might use the following settings:
194+
```json
195+
"editor.fontLigatures": "'calt', 'liga', 'ss01', 'cv01' 2, 'cv31' 1"
196+
```
197+
198+
Note that some character variants have several possible values. For any variants that are either on or off, setting them to `1` should enable them, and omitting the variant (or setting them to `0`) will disable them.
199+
142200
## Contribution
143201

144202
There's no formal contribution guide yet! If you're interested in contributing to the typefaces, you should read the [Texture Healing](https://github.com/githubnext/monaspace/blob/main/docs/Texture%20Healing.md) guide, as it explains how to produce the necessary alternate glyphs.

0 commit comments

Comments
 (0)