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

Support simple opacity in nested text #46267

Closed
wants to merge 1 commit into from

Conversation

NickGerleman
Copy link
Contributor

Summary:
We can propagate opacity, already part of AttributedString, to alpha channel of paint used to draw text and background on canvas.

This does not support propagating to views, and contrary to the iOS example added for legacy arch I added, does not correctly support nesting opacity. This is a limitation of new arch more generally, where the information of overlapped opacity is discarded before the AttributedString is set.

This impl targets new arch only.

Changelog:
[Android][Added] - Support simple opacity in nested text

Differential Revision: D61999163

@facebook-github-bot facebook-github-bot added CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. p: Facebook Partner: Facebook Partner labels Aug 29, 2024
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D61999163

@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D61999163

NickGerleman added a commit to NickGerleman/react-native that referenced this pull request Aug 29, 2024
Summary:
Pull Request resolved: facebook#46267

We can propagate opacity, already part of AttributedString, to alpha channel of paint used to draw text and background on canvas.

This does not support propagating to views, and contrary to the iOS example added for legacy arch I added, does not correctly support nesting opacity. This is a limitation of new arch more generally, where the information of overlapped opacity is discarded before the AttributedString is set.

Bg and foreground are drawn separately with alpha as well, instead of rendering overlapping content offscreen to properly apply it (this is an issue on RN Android more generally, and existing color alpha support, but is pretty noticeable here).

This impl targets new arch only.

Changelog:
[Android][Added] - Support simple opacity in nested text

Differential Revision: D61999163
Summary:
Pull Request resolved: facebook#46267

We can propagate opacity, already part of AttributedString, to alpha channel of paint used to draw text and background on canvas.

This does not support propagating to views, and contrary to the iOS example added which originated with legacy arch, does not correctly support nesting opacity. This is a limitation of new arch more generally, where an AttributedString fragment only contains inner-most opacity.

Bg and foreground are drawn separately with alpha as well, instead of rendering overlapping content offscreen to properly apply it (this is an issue on RN Android more generally, and existing color alpha support, but is pretty noticeable here).

This impl targets new arch only.

Changelog:
[Android][Added] - Support simple opacity in nested text

Reviewed By: alanleedev

Differential Revision: D61999163
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D61999163

@facebook-github-bot facebook-github-bot added the Merged This PR has been merged. label Aug 30, 2024
@facebook-github-bot
Copy link
Contributor

This pull request has been merged in a2d53d5.

@react-native-bot
Copy link
Collaborator

This pull request was successfully merged by @NickGerleman in a2d53d5

When will my fix make it into a release? | How to file a pick request?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported Merged This PR has been merged. p: Facebook Partner: Facebook Partner
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants