diff --git a/server/public/home.html b/server/public/home.html index 27007f7..c9fa032 100644 --- a/server/public/home.html +++ b/server/public/home.html @@ -1113,8 +1113,8 @@ /* OPEN = instant position + a quick opacity fade. No transform, no parallax, no list-column display toggle → there is literally nothing to reflow when it finishes, so the old ~40ms end-of-slide settle is gone by construction. The list (chatcol) stays display:none throughout; content fades in over the bg. */ - body.chat-opening .content{display:block!important;opacity:0;} - body.chat-opening .content.chat-fadein{opacity:1;transition:opacity .14s ease-out;} + body.chat-opening .content{display:block!important;opacity:0;transform:translateX(12%);} + body.chat-opening .content.chat-fadein{opacity:1;transform:translateX(0);transition:opacity .18s ease-out, transform .24s cubic-bezier(.32,.72,0,1);} /* real slide-in from the right + fade. The list column (.chatcol) is NEVER shown during the open — it stays display:none throughout — so there is no display toggle and therefore no reflow when the slide ends. Content is already on its own GPU layer (will-change on body.chat-open), so this is a pure compositor transform. */ /* CLOSE / drag-back: reveal the list underneath (parallax in) while the conversation slides off right (.content moved by an inline transform in showWelcome()/the edge-drag gesture). */ body.chat-closing .content, body.chat-dragging .content{display:block!important;z-index:2;box-shadow:-12px 0 30px rgba(15,23,42,.18);will-change:transform;} @@ -1146,7 +1146,7 @@
-