w3c / w3c/csswg-drafts

[css-will-change-1] proposal: will-change: integer-transform

Open
#4,560 20 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

css-will-change-1
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.