- From: Bramus via GitHub <sysbot+gh@w3.org>
- Date: Thu, 20 Mar 2025 21:30:15 +0000
- To: public-css-archive@w3.org
bramus has just created a new issue for https://github.com/w3c/csswg-drafts: == [css-easing] Allow `steps()` to accept an easing function as the `<step-position>` == Recently Vasilis [asked](https://front-end.social/@vasilis@social.vasilis.nl/114174299342016142): > Dearest CSS working group, I want to be able to define a transition between the steps in an animation-timing-function. Can you please fix this? They needed this create the seconds hand of this clock which uses an `ease` between every second it ticks: https://vasilis.nl/clocks/station-clock/01/ As a workaround I [pointed](https://front-end.social/@bramus/114174411047664584) them to creating a bunch of keyframes and setting the `animation-timing-function` per keyframe, which they did, resulting in _a lot_ of code.: ```css /* Very annoying, but this is, for now, the only way to transition between steps() in a keyframe animation. Had to write out every percentage. */ @keyframes ticking { 0% { rotate: 0deg; animation-timing-function: ease; } 1.66666666% { rotate: 6deg; animation-timing-function: ease; } 3.33333333% { rotate: 12deg; animation-timing-function: ease; } … 98.33333333% { rotate: 354deg; animation-timing-function: ease; } 100% { rotate: 360deg; animation-timing-function: ease; } } .seconds { animation: ticking 58s linear; } ``` _(Not sure why they chose `58s`, though)_ If [`steps()`](https://www.w3.org/TR/css-easing-2/#step-easing-function) were to accept another easing function as the `<step-position>`, the code could be simplified to the following: ```css @keyframes ticking { to { rotate: 360deg; } } .seconds { animation: ticking 60s steps(60, ease); } ``` Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/11970 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Thursday, 20 March 2025 21:30:16 UTC