- From: Matt Perry via GitHub <sysbot+gh@w3.org>
- Date: Tue, 01 Feb 2022 14:39:46 +0000
- To: public-css-archive@w3.org
Hey @graouts This came out of a discussion between @okikio and myself about the limitations custom effects leaves us with. I'm super excited about custom effects but I think there's a remaining black hole when talking about interpolating complex values like `KeyframeEffect` that would limit the ability for many JS libraries to leverage existing interpolators already present in the browser. My first thought was having `CustomEffect` also optionally support keyframes but I think this limits what is clearly a low-level API. For example, it wouldn't allow for custom easing functions like `circIn` etc. Whereas a stand-alone interpolator API would: ```javascript const mixColors = new Interpolation("#f00", "rgba(255,255,255,0.5)") document.timeline.animate(p => { arbitraryElement.innerHTML = mixColors(circIn(p)) }) ``` Ideally the interpolator would support unclamped progress values so we could support overshoot easing. Supported interpolators that would be helpful: - Number - Unit numbers (`20px` ↔️ `5px`, `100%` ↔️ `0`) - Colors (`blue` ↔️ `rgba(0,0,0, .5)`) - Transforms (`none` ↔️ `scale(3) translateX(100px)`) - Shadows (`5px 5px rgba(0,0,0,0.1)` ↔️ `10px 10px rgba(0,0,0,0.05), 2px 2px 2px rgba(0,0,0,0.2)` ) - Complex strings with matching number formatting, like complex path types All of these (and more) are already leveraged within browsers, I think direct access would pair very well with `CustomEffect`. -- GitHub Notification of comment by mattgperry Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/6861#issuecomment-1026914054 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Tuesday, 1 February 2022 14:39:48 UTC