Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spacing only ligatures variant #11

Open
ollien opened this issue Jan 15, 2020 · 18 comments
Open

Spacing only ligatures variant #11

ollien opened this issue Jan 15, 2020 · 18 comments

Comments

@ollien
Copy link

ollien commented Jan 15, 2020

This font looks really nice, but I don't want the symbol ligatures - I find they make things harder to understand. Is there any chance of releasing a version with these ligatures removed?

I've seen some fonts include a configurator that allows you to download different font variants (See: Input). Perhaps something like that might work out?

@CreamyCookie
Copy link

CreamyCookie commented Jan 18, 2020

Really nice font.

I agree. I'd love a version that only includes whitespace-shifting ligatures.

To balance whitespace more efficiently by shifting the glyphs in certain cases.

Instead of joining = and =, this new variant could also make them closer, as is the case for ||.

@KillyMXI
Copy link

KillyMXI commented Mar 2, 2020

This is why I can't use ligatures the way they are now.
The change in shape is really confusing.
We need an option for aligned but still spaced symbols. And nothing should change the visual order. Like, !== should still have the exclamation sign first - that's how I write it, that's how I read it.

As for implementation, there is one more option to consider. Fira Code ships with stylistic sets, and some IDEs (such as VScode) can use them to adjust the looks of certain symbols.


The comment #19 (comment) makes a good summary about issues with ligatures.
I think the proposal to make ligatures only visually align symbols and not stretching this feature too far - will help with some of them.

@philippnurullin
Copy link
Member

@KillyMXI The bugs @cipriancraciun referring to are mainly closed.
There will be a ligatureless version soon.
As for the spacing only ligature variant. This is can be achieved by specific OpenType feature, but it won't be added anytime soon. Right now all the focus is on the lighter weights.

@KillyMXI
Copy link

KillyMXI commented Mar 4, 2020

@philippnurullin My takeaway from that comment is that if you take too much liberty with symbols interpretation, there inevitably will be cases when your interpretation conflicts with various contexts.
Some issues (a bit above the half of listed issues in this particular case) closed, others may be created or just annoy someone but left unreported - it's always easier to disable it all at once.

In my opinion, ideal font will have alignment-only ligatures by default and have language-specific toggles.
This way I will be able to configure my IDE to have perfect set of ligatures for any language I work with and avoid the issue with conflicting contexts.

And still, I can't stand your interpretation of !==. That's still too much liberty. Stuff like this might prevent me from using the rest of language-specific ligatures even if that will come to reality.

@philippnurullin
Copy link
Member

@KillyMXI Actually we have some experiments running in this field, but can't say more. So the temporary solution will be version without ligatures, which will be present in next update.

@yellowsink
Copy link

yellowsink commented Jul 18, 2020

@KillyMXI You may disagree, but I actually quite like the ligature for !==; I don't take much offense to this:
image
Although it is very far removed from the original

@KillyMXI
Copy link

I can't disagree you like it.

Even if I were less concerned about the disconnection between the shape and underlying characters, this symbol still has another issue:
Thin diagonal line is actually hard to see. It always demands for a second look to make sure it is not ===.
Reading code like this is like walking a mine field. I don't understand why anyone would trade legibility for slick look.

I would've made it something like this:
image
(Thick diagonal to make sure it doesn't get lost in any font size on any monitor, thin breaks to make it stand out even more.)

Then, in order to keep it closer to the underlying characters order, I would move it to the left:
image

Then I would try to replace / with ! and we are close to spacing only ligature...

@yellowsink
Copy link

yellowsink commented Jul 18, 2020 via email

@CircleCode
Copy link

CircleCode commented Aug 7, 2020

I think there are 2 requests in this issue:

  • Spacing only ligatures variant
  • Safe stylistic ligatures (ligatures that would respect order and accuracy of characters)

How do you feel about opening a second issue for this second request to keep track of it?

@CircleCode
Copy link

@philippnurullin additionaly, what about adding the "stylistic sets suggestion" label to this issue

@philippnurullin
Copy link
Member

@CircleCode You are right this is two separate requests.
I can say that there won't be font version with only spacing ligatures, but we are now trying more broad approach that will give ability to tune what ligatures you want to use & it's language sensitive. But it won't be ready anytime soon.

You can create the issue with request for stylistic set with alternate construction for ligatures. Please add examples if you have them.

@CircleCode
Copy link

@philippnurullin to be sure I correctly understand,

we are now trying more broad approach that will give ability to tune what ligatures you want to use & it's language sensitive

what you are investigating is to be able to enable ligatures sets, like for example

  • space only ligatures
  • java ligatures
  • latex ligatures

  • (maybe not with this fine granularity, but this is the idea), but there won't be a ttf file for every of these sets, right?

Please add examples if you have them.

you ask for examples of differences I'd like to see for stylistic ligatures, right?

@philippnurullin
Copy link
Member

what you are investigating is to be able to enable ligatures sets, like for example

space only ligatures
java ligatures
latex ligatures

(maybe not with this fine granularity, but this is the idea), but there won't be a ttf file for every of these sets, right?

Yes, and java only spacing ligatures too.

you ask for examples of differences I'd like to see for stylistic ligatures, right?

Yes. More minds almost every time better that one. )

@CircleCode
Copy link

@philippnurullin #287 opened

@CreamyCookie
Copy link

I can say that there won't be font version with only spacing ligatures

@philippnurullin Do you mean there won't be any way to only enable the spacing only ligatures?

That's pretty sad, but in that case, this issue should be closed, shouldn't it?

I really hope that's not the case though. Any insight to why that decision was made?

@philippnurullin
Copy link
Member

@CreamyCookie Sorry for the wait.

@philippnurullin Do you mean there won't be any way to only enable the spacing only ligatures?

Yes, there will be. But it won't be a different font file.

That's pretty sad, but in that case, this issue should be closed, shouldn't it?

I can close the issue, but i'd like to keep it open until we release the solution.

@CreamyCookie
Copy link

Yes, there will be. But it won't be a different font file.

Great to hear! =)

@KillyMXI
Copy link

KillyMXI commented Apr 17, 2024

Interesting case of a font with safe-ish ligatures only: https://github.com/0xType/0xProto
Honestly, didn't expect anyone to share the same concern and designing such a font.

In practice, it seems they still took too much liberty when moved symbols closer together in ligatures.
That causes extra apparent empty space around and might become confusing - is there extra whitespace or is it not...

image

Previously, I made a comment that is related to this issue: #287 (comment)
There I came up with "stencil bridge" analogy. This is one part that makes safe spacing-only ligatures.

Now it seems that designing those with monospace grid awareness is also necessary, in order to avoid creating empty space.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants