158 lines
2.8 KiB
CSS
158 lines
2.8 KiB
CSS
.main-layout {
|
|
min-height: 100vh;
|
|
}
|
|
|
|
.main-sider {
|
|
background: var(--sider-bg) !important;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.sidebar-header {
|
|
padding: 24px 20px;
|
|
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
|
text-align: center;
|
|
transition: padding 0.2s ease;
|
|
}
|
|
|
|
/* 折叠态收窄水平留白,与宽度动画同步 */
|
|
.ant-layout-sider-collapsed .sidebar-header {
|
|
padding: 20px 8px;
|
|
}
|
|
|
|
.logo {
|
|
position: relative;
|
|
height: 31px;
|
|
line-height: 31px;
|
|
font-size: 22px;
|
|
font-weight: 700;
|
|
color: white;
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
/* 全称与缩写叠加存放,折叠时交叉淡入淡出 */
|
|
.logo-full,
|
|
.logo-short {
|
|
display: block;
|
|
white-space: nowrap;
|
|
transition:
|
|
opacity 0.2s ease,
|
|
transform 0.2s ease;
|
|
}
|
|
|
|
.logo-short {
|
|
position: absolute;
|
|
inset: 0;
|
|
opacity: 0;
|
|
transform: scale(0.5);
|
|
}
|
|
|
|
.ant-layout-sider-collapsed .logo-full {
|
|
opacity: 0;
|
|
transform: scale(0.5);
|
|
}
|
|
|
|
.ant-layout-sider-collapsed .logo-short {
|
|
opacity: 1;
|
|
transform: scale(1);
|
|
}
|
|
|
|
/* 副标题折叠时渐隐并收起占位高度 */
|
|
.logo-subtitle {
|
|
max-height: 18px;
|
|
overflow: hidden;
|
|
opacity: 1;
|
|
font-size: 12px;
|
|
color: rgba(255, 255, 255, 0.8);
|
|
transition:
|
|
opacity 0.2s ease,
|
|
max-height 0.2s ease;
|
|
}
|
|
|
|
.ant-layout-sider-collapsed .logo-subtitle {
|
|
max-height: 0;
|
|
opacity: 0;
|
|
}
|
|
|
|
.main-header {
|
|
background: white !important;
|
|
padding: 0 24px !important;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
box-shadow:
|
|
0 1px 3px 0 rgba(0, 0, 0, 0.1),
|
|
0 1px 2px 0 rgba(0, 0, 0, 0.06);
|
|
position: sticky;
|
|
top: 0;
|
|
z-index: 100;
|
|
height: 50px;
|
|
line-height: 1;
|
|
}
|
|
|
|
.header-left {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
}
|
|
|
|
.collapse-trigger,
|
|
.mobile-menu-trigger {
|
|
font-size: 16px;
|
|
cursor: pointer;
|
|
color: #1f2937;
|
|
border-radius: 4px;
|
|
transition: background 0.2s;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 28px;
|
|
height: 28px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.collapse-trigger:hover,
|
|
.mobile-menu-trigger:hover {
|
|
background: #f9fafb;
|
|
}
|
|
|
|
.page-breadcrumb {
|
|
font-size: 14px;
|
|
line-height: 1;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.page-breadcrumb .ant-breadcrumb-link {
|
|
color: #1f2937;
|
|
}
|
|
|
|
.breadcrumb-crumb {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
}
|
|
|
|
.breadcrumb-crumb .anticon {
|
|
font-size: 15px;
|
|
}
|
|
|
|
.page-breadcrumb .ant-breadcrumb-separator {
|
|
color: #9ca3af;
|
|
}
|
|
|
|
.main-content {
|
|
padding: 20px;
|
|
background: #f3f4f6;
|
|
min-height: calc(100vh - 50px);
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.main-content {
|
|
padding: 16px;
|
|
}
|
|
|
|
.main-header {
|
|
padding: 0 16px !important;
|
|
}
|
|
}
|