feat: add theme mode support with AppThemeMode enum and AppThemeState service
- Introduced AppThemeMode enum to define theme options: System, Light, Dark. - Updated AppSettingsDocument to include ThemeMode property. - Created AppThemeState service to manage current theme mode and handle changes. - Integrated theme mode handling in CouchbaseLiteAppSettingsService for persistence. - Added JavaScript for theme management in the frontend, supporting system preference detection. - Enhanced CSS with theme variables for consistent styling across light and dark modes. - Updated Playwright tests to ensure sidebar functionality and responsiveness.
This commit is contained in:
parent
b45eac8055
commit
158906fa28
19 changed files with 889 additions and 82 deletions
|
|
@ -4,15 +4,29 @@
|
|||
|
||||
@code {
|
||||
[Parameter] public bool IsCollapsed { get; set; }
|
||||
[Parameter] public EventCallback OnToggleSidebar { get; set; }
|
||||
|
||||
private Task ToggleSidebarAsync()
|
||||
{
|
||||
return OnToggleSidebar.InvokeAsync();
|
||||
}
|
||||
}
|
||||
|
||||
<div class="nav-menu-shell @(IsCollapsed ? "nav-menu-shell-collapsed" : string.Empty)" data-testid="sidebar-shell" data-collapsed="@(IsCollapsed ? "true" : "false")">
|
||||
<div class="top-row ps-3 navbar navbar-dark">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="" aria-label="WorkTracker home">
|
||||
<span class="sidebar-brand-full">WorkTracker</span>
|
||||
<span class="sidebar-brand-compact" aria-hidden="true">WT</span>
|
||||
</a>
|
||||
<div class="top-row ps-3 pe-3 navbar navbar-dark">
|
||||
<div class="container-fluid nav-menu-header">
|
||||
<button
|
||||
type="button"
|
||||
class="sidebar-toggle"
|
||||
@onclick="ToggleSidebarAsync"
|
||||
aria-label="Toggle sidebar"
|
||||
aria-controls="sidebar-navigation"
|
||||
aria-expanded="@(IsCollapsed ? "false" : "true")"
|
||||
title="Toggle sidebar">
|
||||
<span class="sidebar-toggle-bar"></span>
|
||||
<span class="sidebar-toggle-bar"></span>
|
||||
<span class="sidebar-toggle-bar"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue