@@ -112,8 +112,11 @@
protected override void OnInitialized()
{
ThemeService.OnThemeChanged += HandleThemeChanged;
+ StateService.OnBarsHiddenChanged += HandleBarsHiddenChanged;
}
+ private Task HandleBarsHiddenChanged() => InvokeAsync(StateHasChanged);
+
private void HandleThemeChanged(ThemeMode mode) => InvokeAsync(StateHasChanged);
private double GetDashOffset()
@@ -160,5 +163,6 @@
public void Dispose()
{
ThemeService.OnThemeChanged -= HandleThemeChanged;
+ StateService.OnBarsHiddenChanged -= HandleBarsHiddenChanged;
}
}
diff --git a/src/NexusReader.UI.Shared/Components/Organisms/MobileReaderToolbar.razor.css b/src/NexusReader.UI.Shared/Components/Organisms/MobileReaderToolbar.razor.css
index 092943c..cb17128 100644
--- a/src/NexusReader.UI.Shared/Components/Organisms/MobileReaderToolbar.razor.css
+++ b/src/NexusReader.UI.Shared/Components/Organisms/MobileReaderToolbar.razor.css
@@ -13,8 +13,16 @@
box-sizing: border-box;
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
overflow: visible; /* Critical to show elevated FAB */
+ transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease;
}
+.nexus-unified-mobile-toolbar.immersive-zen-mode {
+ transform: translateY(calc(100% + 24px)) !important;
+ opacity: 0;
+ pointer-events: none;
+}
+
+
/* Light Mode: Premium Paper Look */
.nexus-unified-mobile-toolbar.theme-light {
background: rgba(244, 241, 234, 0.9);
diff --git a/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor b/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor
index f179a9b..dd7510a 100644
--- a/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor
+++ b/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor
@@ -20,10 +20,10 @@
@inject NavigationManager Navigation
@inject ILogger
Logger
-
+
@if (_isMobile && ViewModel != null)
{
-