-
Notifications
You must be signed in to change notification settings - Fork 16
fix(checkbox): ensure correct rendering on iOS & macOS 26 #3698
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
Conversation
|
Important Review skippedAuto incremental reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the 📝 WalkthroughWalkthroughReplaced multiple CSS :has() selectors with adjacency-based selectors in checkbox and boolean-input styles to avoid Safari rendering issues. Updated checked, focus-visible, hover, and active state rules, and adjusted the check-mark transition selector. Added detailed comments explaining rationale and potential rollback paths. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Documentation has been published to https://lundalogik.github.io/lime-elements/versions/PR-3698/ |
Safari (macOS & iOS, tested on Safari 26) & probably even earlier versions have a rendering bug where transitions on descendants whose end state is triggered ONLY via a parent selector using `:has()` may not animate. Instead, Safari sometimes jumps directly to the final state (or never paints the transition) until a subsequent layout invalidation (e.g. tab switch, resize) happens. Now we are using an equivalent selector that does NOT rely on `:has()`, using the adjacency between the input and the visual box. This ensures the transitions for the check mark & background color run reliably in Safari while keeping the simpler `:has()` version commented for future re-implementation or cleanup.
79c1ce0 to
400a1f7
Compare
|
🎉 This PR is included in version 38.26.1 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Safari (macOS & iOS, tested on Safari 26) & probably even earlier versions have a rendering bug where transitions on descendants whose end state is triggered ONLY via a parent selector using
:has()may not animate. Instead, Safari sometimes jumps directly to the final state (or never paints the transition) until a subsequent layout invalidation (e.g. tab switch, resize) happens. Now we are using an equivalent selector that does NOT rely on:has(), using the adjacency between the input and the visual box. This ensures the transitions for the check mark & background color run reliably in Safari while keeping the simpler:has()version commented for future re-implementation or cleanup.fix #3684
Summary by CodeRabbit
Review:
Browsers tested:
(Check any that applies, it's ok to leave boxes unchecked if testing something didn't seem relevant.)
Windows:
Linux:
macOS:
Mobile: