Bug 19421
Summary: | [Transforms] Certain rotation angles cause borders to expand | ||
---|---|---|---|
Product: | WebKit | Reporter: | mitz |
Component: | Layout and Rendering | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED CONFIGURATION CHANGED | ||
Severity: | Normal | CC: | ahmad.saleem792, hyatt, simon.fraser |
Priority: | P2 | ||
Version: | 528+ (Nightly build) | ||
Hardware: | Mac | ||
OS: | OS X 10.5 | ||
URL: | data:text/html,<div style="width: 50px; height: 50px; border: 1px solid; -webkit-transform: rotate(0.001deg);"></div> |
mitz
In the URL, the vertical borders are rendered as 3px wide rectangles, but they should be 1px wide. It seems like antialiasing doesn't kick in at that angle, and the coordinates get rounded to two integers 3px apart.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
mitz
This is especially problematic when slowly easing in or out of 0deg rotation, because then the borders momentarily jump right at the end or the beginning of the transition.
Dave Hyatt
"It seems like antialiasing doesn't kick in at that angle'
We don't antialias border line drawing. It caused problematic artifacts at border joins and stuff and made CSS artwork using borders differ from other browsers.
mitz
(In reply to comment #2)
> We don't antialias border line drawing.
I don't mean WebKit, I mean Core Graphics. See the antialiasing in this example:
data:text/html,div style="width: 50px; height: 50px; border: 1px solid; -webkit-transform: rotate(30deg);"></div>
Ahmad Saleem
Is this still an issue, using the example from Comment 03 does not seems to show any difference between Safari 16.2, Chrome Canary 111 and Firefox Nightly 110.
JSFiddle - https://jsfiddle.net/8bu3edrs/show
Appreciate if someone can confirm. Thanks!
mitz
Thanks for testing. This is not an issue with the examples in this report, as of Safari 16.2 (17614.3.7.1.7, 17614) on macOS Monterey 12.6.2 (21G320).