diff --git a/frontend/src/components/AppSidebar.css b/frontend/src/components/AppSidebar.css index 85f66d6f..39a595c4 100644 --- a/frontend/src/components/AppSidebar.css +++ b/frontend/src/components/AppSidebar.css @@ -10,7 +10,7 @@ font-weight: 600; font-size: 18px; letter-spacing: 0.5px; - color: rgba(0, 0, 0, 0.88); + color: var(--ant-color-text); } .sider-brand { @@ -19,7 +19,7 @@ justify-content: space-between; gap: 8px; padding: 14px 14px; - border-bottom: 1px solid rgba(128, 128, 128, 0.15); + border-bottom: 1px solid var(--ant-color-border-secondary); user-select: none; } @@ -74,7 +74,7 @@ display: inline-flex; align-items: center; justify-content: center; - color: rgba(0, 0, 0, 0.75); + color: var(--ant-color-text-secondary); text-decoration: none; flex-shrink: 0; transition: background-color 0.2s, transform 0.15s, color 0.2s; @@ -102,7 +102,7 @@ align-items: center; justify-content: center; cursor: pointer; - color: rgba(0, 0, 0, 0.75); + color: var(--ant-color-text-secondary); padding: 0; flex-shrink: 0; transition: background-color 0.2s, transform 0.15s, color 0.2s; @@ -110,15 +110,14 @@ .sidebar-theme-cycle:hover, .sidebar-theme-cycle:focus-visible { - background-color: rgba(64, 150, 255, 0.1); - color: #4096ff; + background-color: color-mix(in srgb, var(--ant-color-primary) 12%, transparent); + color: var(--ant-color-primary); transform: scale(1.08); outline: none; } -.sidebar-theme-cycle svg { - width: 16px; - height: 16px; +.sidebar-theme-cycle .anticon { + font-size: 16px; } .drawer-header-actions { @@ -151,7 +150,7 @@ align-items: center; justify-content: space-between; padding: 14px 16px; - border-bottom: 1px solid rgba(128, 128, 128, 0.15); + border-bottom: 1px solid var(--ant-color-border-secondary); } .drawer-close { @@ -165,12 +164,12 @@ justify-content: center; cursor: pointer; font-size: 16px; - color: rgba(0, 0, 0, 0.65); + color: var(--ant-color-text-secondary); } .drawer-close:hover, .drawer-close:focus-visible { - background: rgba(128, 128, 128, 0.18); + background: var(--ant-color-fill-tertiary); } .drawer-menu .ant-menu-item { @@ -186,7 +185,7 @@ .drawer-utility { margin-top: auto; - border-top: 1px solid rgba(128, 128, 128, 0.15); + border-top: 1px solid var(--ant-color-border-secondary); } .ant-sidebar > .ant-layout-sider .ant-layout-sider-children { @@ -204,7 +203,7 @@ .sider-utility { flex: 0 0 auto; - border-top: 1px solid rgba(128, 128, 128, 0.15); + border-top: 1px solid var(--ant-color-border-secondary); } @media (max-width: 768px) { @@ -225,55 +224,11 @@ } } -body.dark .drawer-brand, -body.dark .sider-brand { - color: rgba(255, 255, 255, 0.92); -} - -html[data-theme='ultra-dark'] .drawer-brand, -html[data-theme='ultra-dark'] .sider-brand { - color: #ffffff; -} - -body.dark .drawer-close { - color: rgba(255, 255, 255, 0.75); -} - -html[data-theme='ultra-dark'] .drawer-close { - color: rgba(255, 255, 255, 0.85); -} - -body.dark .sidebar-theme-cycle { - color: rgba(255, 255, 255, 0.85); -} - -html[data-theme='ultra-dark'] .sidebar-theme-cycle { - color: rgba(255, 255, 255, 0.92); -} - -body.dark .sidebar-donate { - color: rgba(255, 255, 255, 0.85); -} - -html[data-theme='ultra-dark'] .sidebar-donate { - color: rgba(255, 255, 255, 0.92); -} - -body.dark .ant-drawer .ant-drawer-content, -body.dark .ant-drawer .ant-drawer-body { - background: #252526 !important; -} - -html[data-theme='ultra-dark'] .ant-drawer .ant-drawer-content, -html[data-theme='ultra-dark'] .ant-drawer .ant-drawer-body { - background: #0a0a0a !important; -} - .sider-nav .ant-menu-item-selected, .sider-utility .ant-menu-item-selected, .drawer-menu .ant-menu-item-selected { - background-color: rgba(64, 150, 255, 0.2) !important; - color: #4096ff !important; + background-color: color-mix(in srgb, var(--ant-color-primary) 20%, transparent) !important; + color: var(--ant-color-primary) !important; } .sider-nav .ant-menu-item-active:not(.ant-menu-item-selected), @@ -282,6 +237,6 @@ html[data-theme='ultra-dark'] .ant-drawer .ant-drawer-body { .sider-nav .ant-menu-item:not(.ant-menu-item-selected):not(.ant-menu-item-disabled):hover, .sider-utility .ant-menu-item:not(.ant-menu-item-selected):not(.ant-menu-item-disabled):hover, .drawer-menu .ant-menu-item:not(.ant-menu-item-selected):not(.ant-menu-item-disabled):hover { - background-color: rgba(64, 150, 255, 0.1) !important; - color: #4096ff !important; + background-color: color-mix(in srgb, var(--ant-color-primary) 10%, transparent) !important; + color: var(--ant-color-primary) !important; } diff --git a/frontend/src/components/AppSidebar.tsx b/frontend/src/components/AppSidebar.tsx index 0c19b773..03c11b45 100644 --- a/frontend/src/components/AppSidebar.tsx +++ b/frontend/src/components/AppSidebar.tsx @@ -12,7 +12,10 @@ import { HeartOutlined, LogoutOutlined, MenuOutlined, + MoonFilled, + MoonOutlined, SettingOutlined, + SunOutlined, TeamOutlined, ToolOutlined, UserOutlined, @@ -69,6 +72,7 @@ function ThemeCycleButton({ id, isDark, isUltra, onCycle, ariaLabel }: { onCycle: () => void; ariaLabel: string; }) { + const icon = !isDark ? : !isUltra ? : ; return ( ); }