From 02d60eb824cad0b8c09cb5685a6c2dbe02e16c4f Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Sun, 2 Aug 2026 23:26:38 -0700 Subject: Tab carousel, login avatar fix, signer callback hint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tab changes no longer flash the whole page: only the content pane below the tab strip slides sideways with a soft cross-fade — swipe direction when a gesture caused it, index order for taps — while the balance card and strip stay planted. Full-page entrances remain for real page changes (settings, chat, profile, takeovers). After a nostr sign-in the header briefly wore the wallet key's face: nostrLoginIdentity now reports a just-connected live signer immediately instead of waiting for the persisted link that only lands after the wallet opens. The nostrconnect URI carries a callbackUrl hint (NIP-55 style) so signer apps that honor it can bounce back to the PWA after approval — apps that don't will still find the session signed in when the user returns, since the handshake completes over the relay in the background. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01Wvj4aoeMZwA7VUGdJP9Swi --- src/style.css | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src/style.css') diff --git a/src/style.css b/src/style.css index 1325118..9b6558e 100644 --- a/src/style.css +++ b/src/style.css @@ -467,10 +467,11 @@ body::after { } @media (prefers-reduced-motion: reduce) { - .anim-page, .anim-menu, .anim-unfold, .anim-slide-left, .anim-slide-right, .amt-flash, .check-badge, .balance::before { animation: none !important; } + .anim-page, .anim-menu, .anim-unfold, .anim-tab-left, .anim-tab-right, .amt-flash, .check-badge, .balance::before { animation: none !important; } *, *::before, *::after { transition-duration: .01ms !important; } } -@keyframes slide-in-left { from { opacity: 0; transform: translateX(30px); } } -@keyframes slide-in-right { from { opacity: 0; transform: translateX(-30px); } } -.anim-slide-left { animation: slide-in-left .28s cubic-bezier(.16, .84, .3, 1) both; } -.anim-slide-right { animation: slide-in-right .28s cubic-bezier(.16, .84, .3, 1) both; } +/* tab carousel: only the content pane moves, with a soft cross-fade */ +@keyframes tab-in-left { from { opacity: .2; transform: translateX(26px); } } +@keyframes tab-in-right { from { opacity: .2; transform: translateX(-26px); } } +.anim-tab-left { animation: tab-in-left .26s cubic-bezier(.25, .8, .35, 1) both; } +.anim-tab-right { animation: tab-in-right .26s cubic-bezier(.25, .8, .35, 1) both; } -- cgit v1.2.3