feat(neode-ui): mobile app-launch UX — store-driven panel, loader, ElectrumX icon
- Mobile launches use the store-driven panel (no route push) so the background tab no longer changes and closing returns to where you launched from. - Tab-only apps open directly (in-app WebView on companion / new tab on PWA) — no "this app opens in a tab" interstitial. - Shared AppLoadingScreen (app icon + progress bar) on the app session and the legacy iframe overlay instead of a black screen. - Pin the dashboard to 100dvh on mobile so the mesh chat/tools panes stop sliding under the bottom tab bar in mobile browsers (no-op in the companion WebView). - ElectrumX/electrs/electrs-ui ids now resolve to the real ElectrumX icon in My Apps. - isMobile made reactive so overlay/footer/teleport decisions track the viewport. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
db7d424bff
commit
a7c7c44843
@@ -164,6 +164,20 @@ select:focus-visible {
|
||||
|
||||
/* Mobile: override with tab bar clearance */
|
||||
@media (max-width: 767px) {
|
||||
/* Mobile web browsers report 100vh taller than the visible area (the dynamic
|
||||
URL/toolbar chrome). The dashboard is the containing block for the fixed,
|
||||
container-relative panes (the mesh chat/tools panes), so a 100vh-tall
|
||||
container pushes their `bottom` offset below the visible viewport — they
|
||||
slide under the bottom tab bar (which is body-teleported and viewport-fixed,
|
||||
so it stays put). Pin the dashboard to the *dynamic* viewport so the two
|
||||
reference frames line up. No-op in the companion WebView (no browser chrome
|
||||
→ dvh == vh), so its layout is unchanged. Doubled class beats Tailwind's
|
||||
`.min-h-screen` (100vh) utility on specificity. */
|
||||
.dashboard-view.dashboard-view {
|
||||
height: 100dvh;
|
||||
min-height: 100dvh;
|
||||
}
|
||||
|
||||
.mobile-scroll-pad {
|
||||
padding-bottom: calc(var(--mobile-tab-bar-height, 88px) + var(--safe-area-bottom, env(safe-area-inset-bottom, 0px)) + var(--audio-player-height, 0px) + 16px);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user