Files
xiaoxia-saas/apps/web/src/components/layout/Sidebar.css
T
xiaoxia 3862996045
CI/CD Pipeline / Check if frontend-only change (push) Waiting to run
CI/CD Pipeline / Validate - Code Quality (push) Waiting to run
CI/CD Pipeline / Validate - Type Check (mypy) (push) Waiting to run
CI/CD Pipeline / Validate - Migration (alembic) (push) Waiting to run
CI/CD Pipeline / Unit Tests (push) Blocked by required conditions
CI/CD Pipeline / Integration Tests (push) Blocked by required conditions
CI/CD Pipeline / Frontend Lint (push) Waiting to run
CI/CD Pipeline / Frontend Unit Tests (push) Blocked by required conditions
CI/CD Pipeline / PR Build API Image (push) Waiting to run
CI/CD Pipeline / PR Build Web Image (push) Waiting to run
CI/CD Pipeline / PR Build Worker Image (push) Waiting to run
CI/CD Pipeline / Build Staging API Image (push) Waiting to run
CI/CD Pipeline / Build Staging Web Image (push) Waiting to run
CI/CD Pipeline / Build Staging Worker Image (push) Waiting to run
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Blocked by required conditions
CI/CD Pipeline / Staging E2E Tests (push) Blocked by required conditions
CI/CD Pipeline / Staging API Integration Tests (push) Blocked by required conditions
CI/CD Pipeline / Build Production API Image (push) Waiting to run
CI/CD Pipeline / Build Production Web Image (push) Waiting to run
CI/CD Pipeline / Build Production Worker Image (push) Waiting to run
CI/CD Pipeline / Deploy Production (push) Blocked by required conditions
CI/CD Pipeline / Production Browser E2E (push) Blocked by required conditions
CI/CD Pipeline / ACR Image Cleanup (push) Blocked by required conditions
refactor(#783): 统一API文件命名风格为kebab-case (#788)
2026-07-23 22:34:56 +08:00

159 lines
4.9 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* ============================================================
Sidebar.css - 侧边栏导航样式(Task 1.3
结构:
.xx-sidebar-nav 导航容器
├── .xx-sidebar-group 分组
│ ├── .xx-sidebar-group-title 分组标题(折叠时隐藏)
│ └── .xx-sidebar-menu 菜单列表
│ └── .xx-sidebar-menu-item 菜单项
│ ├── .xx-sidebar-menu-icon 图标
│ └── .xx-sidebar-menu-label 文字标签(折叠时隐藏)
└── .xx-sidebar-nav--collapsed 折叠态修饰类
所有样式使用 global.css 设计系统变量
============================================================ */
/* ── 导航容器 ─────────────────────────────────────────────── */
.xx-sidebar-nav {
display: flex;
flex-direction: column;
gap: var(--space-xs);
padding: var(--space-xs) 0;
}
/* ── 分组 ─────────────────────────────────────────────────── */
.xx-sidebar-group {
display: flex;
flex-direction: column;
}
/* 分组标题 */
.xx-sidebar-group-title {
padding: var(--space-sm) var(--space-md) var(--space-xs);
font-size: var(--font-size-xs);
font-weight: var(--font-weight-semibold);
color: var(--text-tertiary);
text-transform: uppercase;
letter-spacing: var(--letter-spacing-wide);
line-height: var(--line-height-tight);
white-space: nowrap;
overflow: hidden;
user-select: none;
}
/* ── 菜单列表 ─────────────────────────────────────────────── */
.xx-sidebar-menu {
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
gap: var(--space-xxs);
}
/* ── 菜单项 ───────────────────────────────────────────────── */
.xx-sidebar-menu-item {
display: flex;
align-items: center;
gap: var(--space-sm);
padding: var(--space-sm) var(--space-md);
margin: 0 var(--space-xs);
border-radius: var(--radius-sm);
cursor: pointer;
color: var(--text-secondary);
font-size: var(--font-size-base);
font-weight: var(--font-weight-medium);
line-height: var(--line-height-base);
transition: var(--transition-colors);
white-space: nowrap;
overflow: hidden;
user-select: none;
min-height: 40px;
box-sizing: border-box;
}
.xx-sidebar-menu-item:hover {
color: var(--text-primary);
background: var(--primary-soft);
}
/* 激活态 —— Indigo 高亮 */
.xx-sidebar-menu-item.xx-active {
color: var(--primary-color);
background: var(--primary-soft);
font-weight: var(--font-weight-semibold);
box-shadow: inset 3px 0 0 var(--primary-color);
}
.xx-sidebar-menu-item.xx-active:hover {
color: var(--primary-hover);
background: var(--primary-soft);
}
/* ── 菜单项图标 ───────────────────────────────────────────── */
.xx-sidebar-menu-icon {
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
width: 36px;
height: 36px;
border-radius: 10px;
background: #f1f5f9;
color: var(--text-secondary);
font-size: 18px;
line-height: 1;
transition: 0.15s ease;
}
.xx-sidebar-menu-item.xx-active .xx-sidebar-menu-icon {
background: var(--primary-color);
color: #fff;
}
.xx-sidebar-menu-item:hover .xx-sidebar-menu-icon {
color: var(--primary-color);
}
/* ── 菜单项文字 ───────────────────────────────────────────── */
.xx-sidebar-menu-label {
flex: 1;
overflow: hidden;
text-overflow: ellipsis;
}
/* ============================================================
折叠态 —— 仅显示图标
============================================================ */
.xx-sidebar-nav--collapsed {
padding: var(--space-xs) 0;
}
/* 折叠时菜单项居中,仅图标 */
.xx-sidebar-nav--collapsed .xx-sidebar-menu-item {
justify-content: center;
padding: var(--space-sm);
margin: 0 var(--space-xxs);
}
/* 折叠时隐藏分组标题 */
.xx-sidebar-nav--collapsed .xx-sidebar-group-title {
display: none;
}
/* ============================================================
响应式 —— 移动端(≤768px)
侧边栏整体由 MainLayout 控制显示/隐藏,
此处仅确保导航内容在移动端不溢出
============================================================ */
@media (max-width: 768px) {
.xx-sidebar-nav {
padding: var(--space-xs) 0;
}
.xx-sidebar-menu-item {
min-height: 44px; /* 移动端更大的点击区域 */
}
}