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

Add TextLayout core provider, remove / migrate old text provider implementation #8574

Open
misl6 opened this issue Jan 20, 2024 · 0 comments
Milestone

Comments

@misl6
Copy link
Member

misl6 commented Jan 20, 2024

RTL, BiDi, justification, line height, letter spacing, emojis, font fallback, ellipses, line breaking, max lines ...
Oh, what a mess.

Handling text and layouting it correctly, taking care of the needs of all the different scripts and languages from all around the world is not an easy task. But is something we certainly need to have to grow as a framework, and support all the communities around the world.

Over the years, we stratified a pile of workarounds on top of our Text core provider, docs, and unofficial guides with different levels of success. But, was not straightforward, not well integrated, and our users were expecting these features just out-of-the box.

The TextLayout core provider will offer an abstraction that can be used as a bridge between the TextLayout implementation and the widgets that need to lay out a text.

A TextLayout implementation can decide (and advertise) to not conform to all the methods. This will make it possible for our users to keep using non-fully compliant implementations if the fully compliant one is too huge for their use case, or not available on their target platform.

ATM (will update this issue as things evolve) , we're investigating using Skia/SkParagraph as the default TextLayout implementation.

Related issues to consider:

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

No branches or pull requests

1 participant