You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+35-22Lines changed: 35 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,22 +22,42 @@ The variable fonts have one file per family (Neon, Argon, etc.). Modern and conv
22
22
23
23
The static fonts have one file per cut, per family. The variable axes have named stops for each axis, like `light` or `bold` for weight, `italic` for italics, and `semiwide` or `wide` for width. The combinatorial explosion of all these properties means the complete installation of static fonts involves hundreds of font files. But for situations that don't yet support variable fonts, the static builds give you a wide variety of stops throughout the range of each axis.
24
24
25
+
## Texture Healing
26
+
27
+
Monaspace pioneered the technique of "texture healing" for monospaced fonts:
Texture healing is enabled when the `calt` font feature setting is turned on in your editor. The location for this setting varies across applications, and not all applications support it. See the [Editors](#editors) section below for specific guidance.
32
+
33
+
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).
34
+
25
35
## Coding Ligatures
26
36
37
+
> [!WARNING]
38
+
> Ligature handling has changed significantly in Monaspace v1.1. If you're upgrading from Monaspace v1.0, see the [release notes for guidance on how to alter your editor settings](https://github.com/githubnext/monaspace/releases/tag/v1.100).
39
+
40
+
The `liga` font feature enables customized spacing of repeating characters, like `///` or `||`. It is designed to avoid activating inside longer sequences like `////`.
41
+
27
42
There are eight groups of coding ligatures, separated into stylistic sets. You may be able to enable or disable individual sets selectively:
28
43
29
44
*`ss01`: ligatures related to the equals glyph like `!=` and `===`.
30
45
*`ss02`: ligatures related to the greater than or less than operators.
31
46
*`ss03`: ligatures related to arrows like `->` and `=>`.
32
47
*`ss04`: ligatures related to markup, like `</` and `/>`.
33
48
*`ss05`: ligatures related to the F# programming language, like `|>`.
34
-
*`ss06`: ligatures related to repeated uses of `#` such as `##` or `###`.
35
-
*`ss07`: ligatures related to the asterisk like `***`.
36
-
*`ss08`: ligatures related to combinations like `.=` or `.-`.
49
+
*`ss06`: ligatures related to repeated uses of `#`, `+`, and `&`.
50
+
*`ss07`: ligatures related to colons like `::` or `=:=`.
51
+
*`ss08`: ligatures related to combinations of periods with other glyphs like `..=` or `.-`.
52
+
37
53
38
-
You must enable discretionary ligatures first, often using the `dlig` setting. See below for editor-specific instructions.
54
+
## Character Variants
39
55
40
-

56
+
Specific characters have variants that you can optionally enable:
57
+
58
+
*`cv30`: Enable the older asterisk as shipped in Monaspace 1.0, which was vertically aligned closer to the top of the space.
59
+
*`cv60`: forces the `<=` pair to render in a fashion that matches `=>` instead of swapping for `≤`.
60
+
*`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.
41
61
42
62
43
63
## Desktop Installation
@@ -81,6 +101,9 @@ As with the desktop fonts, they are available in variable and static versions.
81
101
82
102
### Visual Studio Code
83
103
104
+
> [!WARNING]
105
+
> Ligature handling has changed significantly in Monaspace v1.1. If you're upgrading from Monaspace v1.0, see the [release notes for guidance on how to alter your editor settings](https://github.com/githubnext/monaspace/releases/tag/v1.100).
106
+
84
107
Set the font family:
85
108
86
109
```json
@@ -90,29 +113,19 @@ Set the font family:
90
113
> [!NOTE]
91
114
> Variable fonts are not yet well-supported in VS Code, and it is not yet possible to mix multiple fonts. Stay tuned, we're talking with the VS Code team about it!
92
115
93
-
The same setting controls texture healing and coding ligatures. You can enable either or both.
94
-
95
-
If you only want texture healing and basic coding ligatures, add the following line to your `settings.json`:
96
-
97
-
```json
98
-
"editor.fontLigatures": true,
99
-
```
116
+
You must use the `editor.fontLigatures` setting to enable the various features (texture healing, ligatures, and character variants). The setting is a comma-separated list of font features to be enabled.
100
117
101
118
> [!NOTE]
102
119
> This setting is unavailable from the graphical settings editor; you must create it manually.
103
120
104
-
If you want more coding ligatures, you must customize that setting to specify all the sets you wish to enable:
> You must start the setting with `'calt', 'liga', 'dlig'`! The stylistic sets will only have an effect by enabling contextual alternates, ligatures, and discretionary ligatures.
111
-
112
-
If you want coding ligatures but do _not_ want texture healing, you can omit the `calt` setting:
121
+
-`calt`: enables texture healing
122
+
-`liga`: enables dynamic spacing for certain repeating character patterns like `///`
123
+
-`ss01`, `ss02`, etc: enables the specific stylistic set
124
+
-`cv30`, `cv60`, etc: enables the specific character variants
113
125
126
+
Putting it all together, a setting string which enables everything but the character variants would look like this:
0 commit comments