Files
xiaoxia-saas/apps/web/src/components/layout/PageHead/PageHead.css
T
xiaoxia e27d6d9429
CI/CD Pipeline / Check if frontend-only change (push) Has been skipped
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 1m56s
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 2m23s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 2m59s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 5m21s
CI/CD Pipeline / Frontend Lint (push) Has been skipped
CI/CD Pipeline / PR Build API Image (push) Has been skipped
CI/CD Pipeline / PR Build Web Image (push) Has been skipped
CI/CD Pipeline / PR Build Worker Image (push) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 1m34s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 8m30s
CI/CD Pipeline / Integration Tests (push) Successful in 3m24s
CI/CD Pipeline / Unit Tests (push) Failing after 7m46s
CI/CD Pipeline / Build Production API Image (push) Has been skipped
CI/CD Pipeline / Build Production Web Image (push) Has been skipped
CI/CD Pipeline / Build Production Worker Image (push) Has been skipped
CI/CD Pipeline / CI Gate (push) Has been skipped
CI/CD Pipeline / Build Staging API Image (push) Successful in 19m35s
CI/CD Pipeline / Deploy Production (push) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 1m45s
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 42s
CI/CD Pipeline / Staging E2E Tests (push) Successful in 2m32s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 4m17s
CI/CD Pipeline / Canary Release to Production (push) Has been cancelled
test(wave219): template_clip_config +33测 (#1194)
2026-07-30 09:59:59 +08:00

162 lines
4.4 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.
/* ============================================================
PageHead.css - 页面头部扩展样式(Task 1.4)
基础样式复用 global.css 中的 .xx-page-head
本文件补充面包屑、标题区、操作区等扩展样式。
结构:
.xx-page-head 头部容器(global.css 定义)
├── .xx-page-head-left 左侧区域
│ ├── .xx-page-breadcrumb 面包屑导航
│ │ └── .xx-page-breadcrumb-item 面包屑项
│ │ ├── .xx-page-breadcrumb-separator 分隔符
│ │ ├── .xx-page-breadcrumb-link 可点击链接
│ │ ├── .xx-page-breadcrumb-current 当前页(不可点击)
│ │ └── .xx-page-breadcrumb-home 首页图标
│ └── .xx-page-head-title 标题 + 描述
└── .xx-page-head-actions 右侧操作按钮区
============================================================ */
/* ── 左侧区域 ─────────────────────────────────────────────── */
.xx-page-head-left {
display: flex;
flex-direction: column;
gap: var(--space-xs);
min-width: 0; /* 允许内容收缩,防止溢出 */
}
/* ── 面包屑导航 ───────────────────────────────────────────── */
.xx-page-breadcrumb {
margin: 0;
padding: 0;
}
.xx-page-breadcrumb ol {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: var(--space-xxs);
margin: 0;
padding: 0;
list-style: none;
}
.xx-page-breadcrumb-item {
display: flex;
align-items: center;
gap: var(--space-xxs);
font-size: var(--font-size-sm);
color: var(--text-tertiary);
line-height: var(--line-height-tight);
}
/* 分隔符 */
.xx-page-breadcrumb-separator {
font-size: 10px;
color: var(--text-quaternary);
flex-shrink: 0;
}
/* 可点击链接 */
.xx-page-breadcrumb-link {
display: inline-flex;
align-items: center;
gap: var(--space-xxs);
color: var(--text-secondary);
text-decoration: none;
transition: var(--transition-colors);
border-radius: var(--radius-xs);
padding: 2px 4px;
margin: -2px -4px;
}
.xx-page-breadcrumb-link:hover {
color: var(--primary-color);
background: var(--primary-soft);
}
/* 当前页(不可点击) */
.xx-page-breadcrumb-current {
display: inline-flex;
align-items: center;
gap: var(--space-xxs);
color: var(--text-primary);
font-weight: var(--font-weight-medium);
}
/* 首页图标 */
.xx-page-breadcrumb-home {
font-size: 12px;
}
/* ── 标题区 ───────────────────────────────────────────────── */
.xx-page-head-title h2 {
margin: 0;
}
.xx-page-head-title p {
margin: var(--space-xxs) 0 0;
}
/* ── 右侧操作区 ───────────────────────────────────────────── */
.xx-page-head-actions {
display: flex;
align-items: center;
gap: var(--space-sm);
flex-shrink: 0;
margin-left: var(--space-lg);
}
/* ============================================================
响应式 —— 平板(≤1024px)
操作区按钮紧凑排列
============================================================ */
@media (max-width: 1024px) {
.xx-page-head-actions {
gap: var(--space-xs);
margin-left: var(--space-md);
}
}
/* ============================================================
响应式 —— 移动端(≤768px)
隐藏面包屑,简化布局
============================================================ */
@media (max-width: 768px) {
/* 隐藏面包屑 */
.xx-page-breadcrumb {
display: none;
}
/* 标题区占满宽度 */
.xx-page-head-left {
flex: 1;
}
/* 操作区换行显示 */
.xx-page-head {
flex-wrap: wrap;
gap: var(--space-sm);
}
.xx-page-head-actions {
margin-left: 0;
width: 100%;
justify-content: flex-start;
}
}
/* ============================================================
响应式 —— 小屏手机(≤480px)
标题缩小,操作区堆叠
============================================================ */
@media (max-width: 480px) {
.xx-page-head-title h2 {
font-size: 20px;
}
.xx-page-head-actions {
flex-wrap: wrap;
}
}