githubnext / monaspace Goto Github PK
View Code? Open in Web Editor NEWAn innovative superfamily of fonts for code
Home Page: https://monaspace.githubnext.com
License: SIL Open Font License 1.1
An innovative superfamily of fonts for code
Home Page: https://monaspace.githubnext.com
License: SIL Open Font License 1.1
The website appears to only be available in a dark theme, even on systems with a light theme preference, which can affect accessibility. Additionally, the code samples can only be displayed in the dark variants of the Atom One and VS Code themes, which support light variants upstream.
one cjk width = two Latin char width
I use gnome terminal and kitty.
I am not able to find monaspace font on kitty and gnome terminal..
Thanks a lot for making this font, and I can't wait to try it out! 🎉
However, I believe you would make it even easier for macOS users to install (and upgrade) your font via a brew cask
instead of using a shell script. You can do this either by adding it to https://github.com/Homebrew/homebrew-cask-fonts, or by making a tap of your own including that cask. 🙇
Could the width axis go to smaller values than 100? Narrow fonts are useful to show longer lines in a limited space. https://horstmann.com/unblog/2010-11-22/fonts.html
See title. Ideally on per-font-basis.
Hello how can "texture healing" be enabled on MacOS (system wide) or in Emacs?
See https://jsdoc.app/about-getting-started over how JSDoc comments are used. One common form is a one-line like
/** This is a description of the foo function. */
Which, when using the /*
ligature is not rendering in a very pretty way:
I think it would be nice to lower the second *
in a /**
sequence.
Add a script and instruction for Linux installation similar to the ones provided for MacOS
The font ligatures are not working on XCode, if I use JetBrains Mono the ligatures work perfectly.
First off congrats on the release, really liking the fonts! I saw that the ligatures changed the checkmarks and crosses in my .todo files using the todo+ extension. I'm not sure if this is intended as the characters were not in the ligature list on the site.
Works: (without ss03 without ss07)
Looks off: (with ss03 and ss07)
Here's the text:
☐
✔ @done(23-11-09 23:44)
✘ @cancelled(23-11-09 23:44)
edit: there is an easy workaround if this is intended:
"[todo]": {
"editor.fontLigatures": ""
},
Hello!
This is somehow related to #6 but I would like to ask for a more generic one, I know some monospaced fonts are capable of mixing standard monospaced and handwritten style when the text is in comment block (probably they just change the italic variant?).
Could be build monaspace to allow that?
In my specific case, I would like to Argon
for my code and Radon
for my comments 🙏
Thanks for your awesome work ❤️
I've found that proportional typefaces (with variable widths rather than monospacing) are generally easier to read, even with code. However, proportional typefaces lack code specific features, like ligatures and differentiation.
I'm excited by Monaspace's texture healing feature, as it improves readability and reduces visual rivers in monospaced fonts. This could make it a great candidate for a variable font or custom axis that's spaced proportionally.
We should be able to start with default glyphs, and optionally use texture conflict data to adjust widths of glyphs dynamically, rather than replacing them with monospaced glyphs.
woff2 has better compression. I see that the variable typefaces have a woff2 version, but it would be nice if the individual fonts did as well.
Font does not always render properly for me. Seems to depend on family/size/settings used, but is very obnoxious. This is with Radon at size 14, weight 600:
Now a normal monospace font (Hack):
It also happens on the demo website (all default settings):
It doesn't happen for other users I talked to, so it may be an OS issue or something.
I'm using VSCodium 1.84.0 on Kubuntu 23.04
❤️ this project so much, immediately switched to Monaspace Krypton 🤘
I haven't figured out how to get <=>
to look right. This is used in Ruby and Python too.
gvim under Linux only lets you select fonts that have the monospace flag set in the truetype header.
These fonts don't. So I can't select them in my editor of choice.
Please set the monospace flag in the header!
The glyph for U+2123 VERSICLE is a font version number indicator, currently “v1.000”. This violates the Unicode Standard’s conformance requirement about character identity. The glyph should instead be mapped to a private use character.
Basically the title, I know this is probably more of a Visual Studio question but since it pertains specifically to this project, especially texture healing I thought it would be best to just ask here.
Monaspace offers a ligature for the character sequence /*
, which looks good on its own, but when typing /**
to start e.g. a Javadoc or JSDoc comment, only the first two characters get replaced by the ligature, the last asterisk remains unchanged and is now on a different height than the first one:
This does not look too aesthetically pleasing. Any chance we might find a ligature for the entire /**
in a future version of Monaspace?
I really like the “texture healing” feature. I don't know if contextual alternates allow us to alter the glyphs based on the whitespace symbols nearby, but if it is possible, that would be a very logical thing to do.
An example:
Here we can see that the “M” by itself with the whitespace around it is narrower than the other Ms.
As stated.
In 1.0, the equal and colon characters are not vertically aligned which is unsettling for the :=
sequence used for example in Go.
First of all, thank you for a beautiful font family!
One small request though: Downloading 97MB of images together with fonts is rather unnecessary? I think it's enough to have the documentation examples online - no need to include it in the download zip.
Trying Monaspace Neon in VS Code, there is no difference with and without calt
. For example the //
ligature does not work. However, with dlig
this ligature does work.
I know a lot of people really like ≠
as a replacement for !=
, but I'm not among them. I was excited by the promise of turning off the ss01
stylistic set to avoid ≠
, but it didn't work because (I think, based on the table on https://monaspace.githubnext.com/) it's also included in the dlig
stylistic set, most of which I do want.
I think my ideal setup would be a way to opt into a space-adjusted glyph that's the inverse of the very nice =!
, but out of ≠
.
Title says it all, really.
Ligatures dont work
I want to see how it looks with Ruby source code.
Feel free to use this snippet:
class Person
attr_accessor :name, :age
def initialize(name, age)
@name = name
@age += age
end
def ==(other)
@name == other.name && @age == other.age
end
def <=>(other)
@age <=> other.age
end
def !~(other)
@name !~ other.name || @age != other.age
end
def =~(other)
@name =~ other.name && @age == other.age
end
def <<(other)
@name << other.name
end
def >>(other)
@age >> other.age
end
def **(other)
@age ** other.age
end
def &&(other)
@name && other.name && @age && other.age
end
def ||(other)
@name || other.name || @age || other.age
end
end
alice = Person.new("Alice", 30)
bob = Person.new("Bob", 35)
puts alice == bob # => false
puts alice <=> bob # => -1
puts alice !~ bob # => true
puts alice =~ bob # => false
puts alice << bob # => "AliceBob"
puts alice >> bob # => 30
puts alice ** bob # => 9000000000000000
puts alice && bob # => true
puts alice || bob # => true
Congratulations on the launch.
I'm developing a terminal emulator so whenever any monospace font is released, the first thing I do is jump on it and see how it all looks. I was especially interested because all the features Monaspace uses (variation axes, opentype features, etc.) are supported by my terminal so I wanted to make sure everything looked good. I immediately noticed that things looked weird, and then loaded the font in a variety of other terminals and verified they look a bit weird in all of them.
Some background (you may be aware of this): terminal emulators in particular aim to fit glyphs into a cell. Descenders do not typically descend below what is traditionally the baseline. Instead, the baseline is adjusted so that descenders at most touch the bottom of the cell. For example, in a typical typesetting situation, the bottom of the "g" hangs below the line into the next line. In a terminal, the "g" sits at the bottom of the cell, but does not typically enter the cell below it.
The way these metrics are calculated somewhat varies between terminals, but a common algorithm is:
cell_height = ascent + descent + leading
cell_baseline = descent + leading
where ascent
, descent
, and leading
are directly from the font face.
If you look at a number of popular terminal emulators (macOS in this case, but similar things happen on Linux), this causes the glyphs to sit high in the cell. I've chosen two extremely popular terminal emulators as examples below, but I'm not trying to pick on them, this happens also in other terminals:
There are various rendering artifacts but just focus where glyphs sit (since the other issues are likely not caused by monaspace). Notice that the top of the "h" is touching the top of the cell. The lowest part of the "y" descender is sitting quite high in the cell as well. The "N" is well above the midline because the baseline is so high.
I'm not 100% sure this is your fault, but each of these terminals use slightly different algorithms for calculating cell metrics and these algorithms work across hundreds of other known monospace fonts of varying popularity, but seem to have issues with Monaspace. So I wanted to raise this issue and perhaps discuss what can be done to help make Monaspace work better with these terminal projects.
Thanks!
Could there be alternative ligatures of <=
and >=
, whose equal signs are slanted, looking like ⩽
and ⩾
? I guess there are many people like me who get more used to this style.
Can Italics be extended to accommodate:
>>=
is a popular operator used in the Haskell and Haskell inspired programming languages, although not as popular as other languages they still occupy a space in functional programming
Right now monaspace turns >=
to a ligature, and >>=
looks like >≥
which looks ugly in my opinion
Maybe a future version of the font could have the >>=
ligature?
I'm using VSCode on Windows 11 and have the following in my settings.json file:
"editor.fontLigatures": "'calt', 'liga', 'dlig', 'ss01', 'ss02', 'ss03', 'ss04', 'ss05', 'ss06', 'ss07', 'ss08'",
The .- and .= ligatures work but the ..< doesn't:
I tried with both "Monaspace Argon Var" and "Monaspace Neon Var" as the font family.
This is a glaring omission for an otherwise amazing set of typefaces.
It would be helpful to support more Unicode code points. My specific needs would be for combining diacritics.
I write a lot of scripts that use them in strings.
The fonts look great!
❤️ this project, thanks.
How we can use the ligatures in PhpStorm (the most used PHP IDE)?
Add ".vscode" into the .gitignore file to fix this issue
Description:
On the Monaspace website when viewed on desktop, the webpage is too wide, resulting in an undesirable horizontal scroll. This issue caused by elements styled with the 100wv value, which can be replaced with 100% to prevent horizontal scrolling.
Screenshots of the places that caused this issue attached.
Steps to Reproduce:
Expected Behavior:
The webpage should not have a horizontal scroll on desktop view. Adjusting the styling from 100wv to 100% should resolve this issue.
Additional Information:
Browser: Google Chrome Version 119.0.6045.124 (Official Build) (64-bit)
Operating System: Windows 11 Pro x64 22H2
I really like the examples shown in the Mix & Match section, using different font families for comments, Copilot suggestions etc.:
As I understand it from microsoft/vscode#36512, this is not yet reproducable in VS Code. Are there any plans to support that soon, perhaps via plug-in or by discussing support with the VS Code maintainers directly?
So I first followed the readme, for MACOSX & ran the bash file.
Then verified if I have all the fonts in Font Book -> they are there.
"editor.fontLigatures": true,
"editor.fontFamily": "Monaspace, Arial, serif",
// for testing
Also tried with the Monaspace _____
Seeing Arial being used in the editor... Is there something that I'm missing?
Thanks in advance!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.