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

Text stroke cuts joining glyphs apart #220

Open
r12a opened this issue Feb 2, 2020 · 4 comments
Open

Text stroke cuts joining glyphs apart #220

r12a opened this issue Feb 2, 2020 · 4 comments

Comments

@r12a
Copy link
Contributor

r12a commented Feb 2, 2020

This issue is likely to apply to all cursive script text, but also to other scripts that have joins between letters.

When text stroke effects are applied to cursive text, they should not interrupt the cursive flow.

The GAP

Unfortunately, that's not the case for current implementations. Overlaps where the glyphs join produce double breaks in the cursive flow.

This example shows the typical result for Arabic.

text-stroke

The set of modern languages using cursive scripts includes those that use the following scripts: Arabic, Syriac, Mongolian, Mandaic, N'Ko, Adlam, Hanifi Rohingya. It also affects text in archaic scripts, including Phags Pa, Manichaean, Psalter Pahlavi, Sogdian, Old Uyghur, Chorasmian.

However, this also affects scripts such as Devanagari (Hindi, Marathi, etc), Gurmukhi (Punjabi), Bengali, Gondi, Modi, Newa, etc. This example is Hindi:

Screenshot 2022-02-08 at 17 12 09

In Gecko, Blink, and Webkit the stroke around the text interrupts the cursive flow.

The property text-stroke is not yet in CSS, but has been implemented in major browsers under the name -webkit-text-stroke.

-webkit-text-stroke is currently specified in WhatWG's Compatibility spec.

Priority:

Marking as advanced because this is a decorative feature.

Tests

Interactive test, Text stroke applied to Arabic text doesn't cut joining glyphs apart

i18n test suite, Text stroke

Action taken

Issue, Standardize text-stroke Open.

Outcomes

tbd

@r12a r12a added gap The first comment in this issue is read by the gap-analysis document. doc:arfa p:advanced i:cursive Cursive text labels Feb 2, 2020
@r12a
Copy link
Contributor Author

r12a commented Feb 2, 2020

The first comment in this issue contains text that will automatically appear in one or more gap-analysis documents as a subsection with the same title as this issue. Any edits made to that comment will be immediately available in the document. Proposals for changes or discussion of the content can be made in comments below this point.

Relevant gap analysis documents include:
AdlamArabic & PersianKashmiriN'KoUighur

@scottkellum
Copy link

Note the issue is with every outline overlap. This includes overlapping shapes within characters as well as characters themselves overlapping. This issue is particularly visible in variable fonts where overlaps aren’t removed to preserve interpolation.

See a Twitter thread on the issue

@svgeesus
Copy link

The same issue affects "handwriting" (cursive, joined) fonts for scripts such as Latin.

image

@r12a r12a added l:arb Arabic l:pes Persian l:ug Uighur l:ur Urdu l:ks Kashmiri labels Jun 5, 2024
@r12a r12a moved this to Awaiting spec text in Gap-analysis pipeline Jun 20, 2024
@r12a
Copy link
Contributor Author

r12a commented Jun 20, 2024

Just a clarification to say that it seems to me that this is a more intractable problem for content authors that write in scripts that are always joined up (like Arabic), since they can't use text stroke at all without it looking wierd. At least the Latin script content author can make a choice as to whether they combine joined-up with stroke colour, whereas Arabic content authors don't have an alternative strategy.

@r12a r12a added s:arab Arabic script (Used for arb + pes) s:aran Arabic nastaliq script style labels Jun 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Awaiting spec text
Development

No branches or pull requests

3 participants