Sitelet https://github.com/angular/components/pull/31612
Skip to content

fix(material/radio): rendering artifacts at some zoom levels - #31612

Merged
crisbeto merged 1 commit into
angular:mainfrom
crisbeto:31466/radio-dot
Jul 29, 2025
Merged

crisbeto merged 1 commit into
angular:mainfrom
crisbeto:31466/radio-dot

Conversation

@crisbeto

Copy link
Copy Markdown
Member

Currently the circle inside the radio button is rendered out as an element with a solid border. Presumably MDC did it this way, because it allows more CSS rules to be combined and it handles high contrast mode automatically. The problem with this approach is that depending on the user's screen and zoom level, there can be rendering artifacts on Windows like a dot in the middle of the radio button.

These changes resolve the rendering artifacts by using a background color for the circle and which is overridden to CanvasText for high contrast mode.

Fixes #31466.

@crisbeto
crisbeto requested a review from a team as a code owner July 29, 2025 07:02
@crisbeto
crisbeto requested review from adolgachev and ok7sai and removed request for a team July 29, 2025 07:02
@crisbeto crisbeto added the target: patch This PR is targeted for the next patch release label Jul 29, 2025
Currently the circle inside the radio button is rendered out as an element with a solid border. Presumably MDC did it this way, because it allows more CSS rules to be combined and it handles high contrast mode automatically. The problem with this approach is that depending on the user's screen and zoom level, there can be rendering artifacts on Windows like a dot in the middle of the radio button.

These changes resolve the rendering artifacts by using a background color for the circle and which is overridden to `CanvasText` for high contrast mode.

Fixes angular#31466.
@andrewseguin andrewseguin added the action: merge The PR is ready for merge by the caretaker label Jul 29, 2025
@crisbeto
crisbeto removed request for adolgachev and ok7sai July 29, 2025 20:22
@crisbeto
crisbeto merged commit 471d323 into angular:main Jul 29, 2025
@crisbeto

Copy link
Copy Markdown
Member Author

The changes were merged into the following branches: main, 20.1.x

crisbeto added a commit that referenced this pull request Jul 29, 2025
Currently the circle inside the radio button is rendered out as an element with a solid border. Presumably MDC did it this way, because it allows more CSS rules to be combined and it handles high contrast mode automatically. The problem with this approach is that depending on the user's screen and zoom level, there can be rendering artifacts on Windows like a dot in the middle of the radio button.

These changes resolve the rendering artifacts by using a background color for the circle and which is overridden to `CanvasText` for high contrast mode.

Fixes #31466.

(cherry picked from commit 471d323)
@angular-automatic-lock-bot

Copy link
Copy Markdown

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

@angular-automatic-lock-bot angular-automatic-lock-bot Bot locked and limited conversation to collaborators Aug 29, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

action: merge The PR is ready for merge by the caretaker area: material/radio target: patch This PR is targeted for the next patch release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug(radio): White dot in the middle of the active radio button

2 participants