I am conducting browser tests on Safari and found that its behavior when rendering box-shadow spread-radius between two different values in a CSS (keyframes) animation does not match that of Chrome/Firefox/IE/Edge. It appears to also be an issue with CSS Transitions. I am not familiar with this detail of the box-shadow or animation specifications, but the (would one call this sub-pixel rendering, or tweening?) behaviors exhibited by other browsers make for markedly cleaner animations. My test case and examples can be found here: https://codepen.io/kbav/pen/eYOqKBQ?editors=0100#0 Tested in Safari Technology Preview, 13, 12, 11, & 10. Other browsers are using the latest public versions as of this writing. Let me know if I can provide any further detail or assistance.
<rdar://problem/55999988>
We've also noticed the issue with "sub-pixel stutter" on box-shadow animation in Safari. (So far confirmed in Mac OS 10.14 Safari Version 12.1.2 (14607.3.9) and Mac OS 10.15) Our demo of the issue: https://codepen.io/khawkins98/pen/ZEEaBME We've tried the usual `transformZ` and `will-change` techniques and none have helped.
Could you file that stutter as a new bug please.
We store and animate the spread value as an int, and it should be floating point.
Created attachment 382864 [details] Patch
Comment on attachment 382864 [details] Patch v.nice
https://trac.webkit.org/r252161
It looks like the changes in r252161 caused 3 tests to time out on Mac and iOS: transitions/multiple-shadow-transitions.html transitions/cubic-bezier-overflow-shadow.html legacy-animation-engine/transitions/cubic-bezier-overflow-shadow.html I was able to reproduce these timeouts using command: run-webkit-tests transitions/multiple-shadow-transitions.html transitions/cubic-bezier-overflow-shadow.html legacy-animation-engine/transitions/cubic-bezier-overflow-shadow.html --iterations 20 -f They reproduce on r252161 but not r252160. Tracking in: https://bugs.webkit.org/show_bug.cgi?id=203966
Fixed in https://trac.webkit.org/changeset/252203/webkit
I re-tested the attached test case URL/CodePen with Webkit r252161; while the spread animation isn’t quite as smooth as Chrome or Firefox’s (it appears they do something akin to anti-aliasing / allowing subpixel values to spread with partial opacity), it’s definitely a smoother animation overall. Thank you Simon & the WebKit team for addressing this!
This caused a regression, see https://bugs.webkit.org/show_bug.cgi?id=204348.
This caused another regression, see bug 211530.