main
mula.liu 2026-08-09 03:10:11 +08:00
parent 9e7878b9c8
commit 416ef48395
4 changed files with 48 additions and 22 deletions

View File

@ -60,7 +60,7 @@
position: relative; position: relative;
height: 64px; height: 64px;
min-width: 360px; min-width: 360px;
padding-left: 70px; padding-left: 24px;
padding-right: 36px; padding-right: 36px;
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;

View File

@ -296,7 +296,7 @@ function AppSider({ collapsed, onToggle }) {
} }
const logoNode = ( const logoNode = (
<div style={{ display: 'flex', alignItems: 'center', gap: 12, paddingLeft: 8 }}> <div style={{ display: 'flex', alignItems: 'center', gap: 12 }}>
<img src="/favicon.svg" alt="logo" style={{ width: 32, height: 32 }} /> <img src="/favicon.svg" alt="logo" style={{ width: 32, height: 32 }} />
{!collapsed && ( {!collapsed && (
<span style={{ fontSize: 18, fontWeight: 'bold', color: 'var(--text-color)' }}>NexDocus</span> <span style={{ fontSize: 18, fontWeight: 'bold', color: 'var(--text-color)' }}>NexDocus</span>

View File

@ -15,11 +15,12 @@
/* Header */ /* Header */
.modern-sidebar-header { .modern-sidebar-header {
padding: 24px 20px; padding: 0 16px;
position: relative;
display: flex; display: flex;
align-items: center; align-items: center;
height: 80px; justify-content: space-between;
gap: 8px;
height: 64px;
flex-shrink: 0; flex-shrink: 0;
} }
@ -28,33 +29,46 @@
align-items: center; align-items: center;
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
flex: 1;
min-width: 0;
padding-left: 8px;
} }
.sidebar-collapse-trigger { .sidebar-collapse-trigger {
position: absolute; width: 36px;
right: -13px; height: 36px;
top: 32px; border: none;
z-index: 20; border-radius: 8px;
width: 26px; background: var(--bg-color-secondary);
height: 26px; color: var(--text-color-secondary);
border: 1px solid var(--border-color);
border-radius: 999px;
background: var(--header-bg);
color: #8a94a6;
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
box-shadow: 0 2px 8px rgba(0, 21, 41, 0.08);
cursor: pointer; cursor: pointer;
transform: translateY(-50%);
transition: all 0.2s; transition: all 0.2s;
font-size: 10px; font-size: 18px;
flex-shrink: 0;
} }
.sidebar-collapse-trigger:hover { .sidebar-collapse-trigger:hover {
color: #1677ff; color: #1677ff;
border-color: rgba(22, 119, 255, 0.28); background: rgba(22, 119, 255, 0.08);
background: var(--header-bg); }
/* Collapsed Header: logo on top, trigger below */
.ant-layout-sider-collapsed .modern-sidebar-header {
height: auto;
padding: 16px 0 8px;
flex-direction: column;
align-items: center;
justify-content: flex-start;
gap: 12px;
}
.ant-layout-sider-collapsed .logo-container {
justify-content: center;
padding-left: 0;
width: 100%;
} }
/* Menu Area */ /* Menu Area */
@ -141,6 +155,17 @@
border-radius: 12px; border-radius: 12px;
} }
/* 收起态下分组之间显示浅色间隔线 */
.ant-layout-sider-collapsed .menu-group {
margin-bottom: 12px;
}
.ant-layout-sider-collapsed .menu-group + .menu-group {
border-top: 1px solid var(--border-color);
padding-top: 12px;
margin-top: 12px;
}
/* Footer */ /* Footer */
.modern-sidebar-footer { .modern-sidebar-footer {
padding: 16px; padding: 16px;

View File

@ -4,7 +4,8 @@ import {
LogoutOutlined, LogoutOutlined,
QuestionCircleOutlined, QuestionCircleOutlined,
RightOutlined, RightOutlined,
LeftOutlined, MenuFoldOutlined,
MenuUnfoldOutlined,
} from '@ant-design/icons'; } from '@ant-design/icons';
import './ModernSidebar.css'; import './ModernSidebar.css';
@ -85,7 +86,7 @@ const ModernSidebar = ({
onClick={() => onCollapse && onCollapse(!collapsed)} onClick={() => onCollapse && onCollapse(!collapsed)}
aria-label={collapsed ? '展开侧边栏' : '收起侧边栏'} aria-label={collapsed ? '展开侧边栏' : '收起侧边栏'}
> >
{collapsed ? <RightOutlined /> : <LeftOutlined />} {collapsed ? <MenuUnfoldOutlined /> : <MenuFoldOutlined />}
</button> </button>
</div> </div>