From 16d3baff5daeaa7419d6f261fde1c452640467b3 Mon Sep 17 00:00:00 2001 From: Eli Bosley Date: Sat, 11 Jul 2026 23:20:41 -0400 Subject: [PATCH] fix(ui): smooth notification drawer slide-in/out The Sheet primitive animated with a blanket 'transition ease-in-out' running alongside the reka enter/exit keyframes, so every property (box-shadow, filter, transform) transitioned each frame and the panel was never promoted to its own compositor layer. Opening the notification drawer then mounted the full tab/list body synchronously, stalling the slide's first frames. - sheet.variants.ts: drop the blanket transition; animate only via the transform/opacity keyframes; add will-change-transform so the slide runs on the compositor; snappier, symmetric timing (300ms open / 200ms close, ease-out/in). - SheetContent.vue: match the overlay fade duration to the panel. - Notifications/Sidebar.vue: defer mounting the tab/list body until a couple frames after open so the panel's first paint is cheap and the slide starts immediately; the body stays mounted through the exit slide. Benefits every Sheet/ResponsiveModal, not just notifications. --- .../components/common/sheet/SheetContent.vue | 2 +- .../components/common/sheet/sheet.variants.ts | 7 +++++- web/src/components/Notifications/Sidebar.vue | 25 +++++++++++++++++-- 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/unraid-ui/src/components/common/sheet/SheetContent.vue b/unraid-ui/src/components/common/sheet/SheetContent.vue index f797bbe47d..4703293bc5 100644 --- a/unraid-ui/src/components/common/sheet/SheetContent.vue +++ b/unraid-ui/src/components/common/sheet/SheetContent.vue @@ -47,7 +47,7 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits);