Start/end the album art zoom fully zoomed out, not zoomed in

Swapped the keyframes so scale=1.0 (full frame) is the loop's start/end
state and the zoom-in happens at the midpoint, matching how it's meant to
read: settle on the full picture, breathe in, breathe back out.
This commit is contained in:
poprhythm committed 2026-09-29 15:52:55 -04:00
1 parent dc0c5019ca
commit 67c20e20e9
1 file changed
+8 -7
+8 -7
View File
@@ -86,10 +86,11 @@ def main(config):
return render.Root(child = content) return render.Root(child = content)
# Album art gets a slow "Ken Burns" breathing effect: eases from the full # Album art gets a slow "Ken Burns" breathing effect: starts and ends on
# frame in to a zoomed-in crop, then back out, on a continuous loop -- not # the full frame, easing in to a zoomed-in crop at the midpoint, on a
# a one-shot reveal. A one-shot version (start zoomed in, end on the full # continuous loop -- not a one-shot reveal. A one-shot version (start
# frame, then hold) looked jumpy: since the app re-renders on NOWPLAYING_TTL # zoomed in, end on the full frame, then hold) looked jumpy: since the app
# re-renders on NOWPLAYING_TTL
# and each fresh render restarts its own animation from tick 0, whatever the # and each fresh render restarts its own animation from tick 0, whatever the
# *previous* pushed image happened to be showing at that moment gets # *previous* pushed image happened to be showing at that moment gets
# abruptly replaced by a fresh zoomed-in frame. The back-and-forth loop # abruptly replaced by a fresh zoomed-in frame. The back-and-forth loop
@@ -129,16 +130,16 @@ def _art_widget(art_bytes):
keyframes = [ keyframes = [
animation.Keyframe( animation.Keyframe(
percentage = 0.0, percentage = 0.0,
transforms = [animation.Scale(ART_ZOOM_SCALE, ART_ZOOM_SCALE)], transforms = [animation.Scale(1.0, 1.0)],
), ),
animation.Keyframe( animation.Keyframe(
percentage = 0.5, percentage = 0.5,
transforms = [animation.Scale(1.0, 1.0)], transforms = [animation.Scale(ART_ZOOM_SCALE, ART_ZOOM_SCALE)],
curve = "ease_in_out", curve = "ease_in_out",
), ),
animation.Keyframe( animation.Keyframe(
percentage = 1.0, percentage = 1.0,
transforms = [animation.Scale(ART_ZOOM_SCALE, ART_ZOOM_SCALE)], transforms = [animation.Scale(1.0, 1.0)],
curve = "ease_in_out", curve = "ease_in_out",
), ),
], ],
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.