Conversation
Agent-Logs-Url: https://github.com/microsoft/vscode-pull-request-github/sessions/eea637d3-2de0-4c58-bd80-e2dbde889fdc Co-authored-by: alexr00 <38270282+alexr00@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Fix visual distinction between checked and unchecked checkboxes
Render visible checkmark on checked task list checkboxes in PR comments
Apr 28, 2026
alexr00
approved these changes
Apr 29, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
Updates the shared webview stylesheet to render an explicit checkmark for checked Markdown task-list checkboxes in PR descriptions/comments, improving visual clarity when appearance: none is used for themed checkboxes.
Changes:
- Add
.task-list-itemstyling to draw a checkmark via a pseudo-element when a child checkbox is:checked. - Use
:has()selectors to cover both direct-child<input>and<p> > <input>task list structures. - Reuse existing checkmark drawing approach and VS Code theme variables for consistent appearance across themes.
Show a summary per file
| File | Description |
|---|---|
| webviews/common/common.css | Adds checkmark rendering for checked Markdown task-list items that don’t use the existing .checkbox-wrapper mechanism. |
Copilot's findings
- Files reviewed: 1/1 changed files
- Comments generated: 0
jrieken
approved these changes
Apr 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Checked task list items (
- [x]) in PR comments and descriptions render almost identically to unchecked ones — only the background is marginally darker, with no checkmark — making it impossible to tell completed items at a glance.Root cause
input[type='checkbox']inwebviews/common/common.cssusesappearance: none, suppressing the native checkmark. The themed checkmark is drawn by.checkbox-wrapper::after, which requires the input to be wrapped in a.checkbox-wrapper. Markdown-rendered task lists emit<li class="task-list-item"><input type="checkbox" checked disabled> …</li>with no such wrapper, so checked boxes get a slightly altered background and nothing else.Change
::beforeon.task-list-item(since pseudo-elements don't render on<input>), gated by:has(> input[type='checkbox']:checked), positioned over the checkbox.--vscode-checkbox-foregroundcolor so it stays consistent with.checkbox-wrapper::afteracross light / dark / high-contrast themes.<input>(GitHub-renderedbodyHTML) and<p>-wrapped<input>(marked).Result
Existing
.checkbox-wrapper-based checkboxes (e.g.automergeSelect) are untouched — the new selector only matches.task-list-itemdescendants.Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
accounts.google.com/proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --use-angle=swiftshader-webgl --crashpad-handler-pid=8090 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/com.google.Chrome.scoped_dir.K8RhxG --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,10949126254142358948,6409727862905241005,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,9245562396997908308,5922421533736500619,4 --trace-process-track-uuid=3190708989122997041(dns block)/opt/google/chrome/chrome /usr/bin/google-chrome --headless --disable-gpu --no-sandbox --window-size=600,500 --screenshot=screenshot.png file:///tmp/checkbox-test/test.html(dns block)clients2.google.com/proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --use-angle=swiftshader-webgl --crashpad-handler-pid=8090 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/com.google.Chrome.scoped_dir.K8RhxG --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,10949126254142358948,6409727862905241005,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,9245562396997908308,5922421533736500619,4 --trace-process-track-uuid=3190708989122997041(dns block)/opt/google/chrome/chrome /usr/bin/google-chrome --headless --disable-gpu --no-sandbox --window-size=600,500 --screenshot=screenshot.png file:///tmp/checkbox-test/test.html(dns block)clientservices.googleapis.com/proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --use-angle=swiftshader-webgl --crashpad-handler-pid=8090 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/com.google.Chrome.scoped_dir.K8RhxG --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,10949126254142358948,6409727862905241005,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,9245562396997908308,5922421533736500619,4 --trace-process-track-uuid=3190708989122997041(dns block)/opt/google/chrome/chrome /usr/bin/google-chrome --headless --disable-gpu --no-sandbox --window-size=600,500 --screenshot=screenshot.png file:///tmp/checkbox-test/test.html(dns block)redirector.gvt1.com/proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --use-angle=swiftshader-webgl --crashpad-handler-pid=8090 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/com.google.Chrome.scoped_dir.K8RhxG --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,10949126254142358948,6409727862905241005,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,9245562396997908308,5922421533736500619,4 --trace-process-track-uuid=3190708989122997041(dns block)/opt/google/chrome/chrome /usr/bin/google-chrome --headless --disable-gpu --no-sandbox --window-size=600,500 --screenshot=screenshot.png file:///tmp/checkbox-test/test.html(dns block)safebrowsingohttpgateway.googleapis.com/proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --use-angle=swiftshader-webgl --crashpad-handler-pid=8090 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/com.google.Chrome.scoped_dir.K8RhxG --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,10949126254142358948,6409727862905241005,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,9245562396997908308,5922421533736500619,4 --trace-process-track-uuid=3190708989122997041(dns block)/opt/google/chrome/chrome /usr/bin/google-chrome --headless --disable-gpu --no-sandbox --window-size=600,500 --screenshot=screenshot.png file:///tmp/checkbox-test/test.html(dns block)www.google.com/proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --use-angle=swiftshader-webgl --crashpad-handler-pid=8090 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/com.google.Chrome.scoped_dir.K8RhxG --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,10949126254142358948,6409727862905241005,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,9245562396997908308,5922421533736500619,4 --trace-process-track-uuid=3190708989122997041(dns block)/opt/google/chrome/chrome /usr/bin/google-chrome --headless --disable-gpu --no-sandbox --window-size=600,500 --screenshot=screenshot.png file:///tmp/checkbox-test/test.html(dns block)If you need me to access, download, or install something from one of these locations, you can either: