diff options
| author | Adam Malczewski <[email protected]> | 2026-06-13 19:29:44 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-13 19:29:44 +0900 |
| commit | 46f5cb7e9fa479b551cb9281ebb0f075fada1b85 (patch) | |
| tree | 576b17f7a13837b00132981edaa072db977b47b3 /packages/kernel/tests/test_kernel.cpp | |
| parent | faf9d8c41ea87fe91f40af881ed1c920a82fac6f (diff) | |
| download | unbox-46f5cb7e9fa479b551cb9281ebb0f075fada1b85.tar.gz unbox-46f5cb7e9fa479b551cb9281ebb0f075fada1b85.zip | |
Slice 10 d1: RCSS animation — dock slide-in + per-slot settle
Layers animation on c2's static pipeline with zero data-model / contract change
(c2 glue test passes unchanged). The dock body slides in from the left edge on
empty->non-empty via an RCSS transition on transform:translateX driven by a bound
`open` bool (data-class-open); slide-out defers set_visible(false) until the
slide's transitionend so the close is seen. Each freshly instanced preview card
plays a one-shot @keyframes (scale 0.72->1.0 + fade, transform-origin top-left =
"scales down into a spot"). Dock stays a 240px left-edge strip (animation is a
transform inside the surface, never a resize) so windows stay clickable.
Key finding: RmlUi 6.2 dispatches animationend/transitionend as real events, and
the substrate's data-event-* path binds a listener for ANY registered event — so
data-event-transitionend routes into bind_event with NO kernel change. The ONLY
remaining gap for the literal cross-screen window->dock flight is a single
input-transparent UiSurfaceSpec flag (a kernel boundary decision, NOT built).
Restore stays instant in d1 (animated grow-back is e1's drag-out).
10/10 suites green on build + build-asan (asan clean). Visual feel is real-seat.
Diffstat (limited to 'packages/kernel/tests/test_kernel.cpp')
0 files changed, 0 insertions, 0 deletions
