[css-will-change-1] proposal: will-change: integer-transform
Nobody has claimed this yet.
- Dominant language
- Bikeshed
- Stars
- 4.9k
- Forks
- 816
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 24
Description
Proposal: will-change: integer-transform. This allows the browser to use high quality anti-aliasing when initially rasterizing the text, and continue using the same rasterized text as the transform changes. Engines that do not use subpixel anti-aliasing would treat this as an alias for will-change: transform.
In https://crrev.com/645003, chromium/blink stopped using subpixel anti-aliasing when will-change: transform is used, as it avoids needing to re-raster if the pixel alignment of the text changes. This idea is explicitly referenced in the spec:
If any non-initial value of a property would cause rendering differences on the element (such as using a different anti-aliasing strategy for text), the user agent should use that alternate rendering when the property is specified in will-change, to avoid sudden rendering differences when the property is eventually changed.
This change caused the Monaco editor (used by VSCode) to lose high-quality text rendering (see: https://crbug.com/1016062). This proposal is a standard way to maintain high-quality text while hinting that the transform will change.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the quoted will-change guidance in the issue and the linked Chromium/Blink change, then review the Monaco/VSCode rendering problem and the referenced CSSWG context. Done means reaching and documenting a standards decision on whether integer-transform should be added and how it should behave for engines with and without subpixel anti-aliasing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- css
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100