2026-01-30 10:41:19 +08:00
|
|
|
/**
|
|
|
|
|
* EmailBill 主题系统 - 根据 v2.pen 设计稿
|
|
|
|
|
* 用于保持整个应用色彩和布局一致性
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
:root {
|
|
|
|
|
/* ============ 颜色变量 - 浅色主题 ============ */
|
2026-02-15 10:10:28 +08:00
|
|
|
|
2026-01-30 10:41:19 +08:00
|
|
|
/* 背景色 */
|
2026-02-15 10:10:28 +08:00
|
|
|
--bg-primary: #ffffff;
|
|
|
|
|
--bg-secondary: #f6f7f8;
|
|
|
|
|
--bg-tertiary: #f3f4f6;
|
|
|
|
|
--bg-button: #f5f5f5;
|
|
|
|
|
|
2026-01-30 10:41:19 +08:00
|
|
|
/* 文字颜色 */
|
2026-02-15 10:10:28 +08:00
|
|
|
--text-primary: #1a1a1a;
|
|
|
|
|
--text-secondary: #6b7280;
|
|
|
|
|
--text-tertiary: #9ca3af;
|
|
|
|
|
|
2026-01-30 10:41:19 +08:00
|
|
|
/* 强调色 */
|
2026-02-15 10:10:28 +08:00
|
|
|
--accent-primary: #ff6b6b;
|
|
|
|
|
--accent-danger: #ef4444;
|
|
|
|
|
--accent-warning: #d97706;
|
|
|
|
|
--accent-warning-bg: #fffbeb;
|
|
|
|
|
--accent-success: #22c55e;
|
|
|
|
|
--accent-success-bg: #f0fdf4;
|
|
|
|
|
--accent-info: #6366f1;
|
|
|
|
|
--accent-info-bg: #e0e7ff;
|
|
|
|
|
|
2026-01-30 10:41:19 +08:00
|
|
|
/* 图标色 */
|
2026-02-15 10:10:28 +08:00
|
|
|
--icon-star: #ff6b6b;
|
|
|
|
|
--icon-coffee: #fcd34d;
|
2026-02-11 15:19:30 +08:00
|
|
|
|
|
|
|
|
/* 边框颜色 */
|
2026-02-15 10:10:28 +08:00
|
|
|
--border-color: #e5e7eb;
|
2026-02-11 15:19:30 +08:00
|
|
|
|
2026-01-30 10:41:19 +08:00
|
|
|
/* ============ 布局变量 ============ */
|
2026-02-15 10:10:28 +08:00
|
|
|
|
2026-01-30 10:41:19 +08:00
|
|
|
/* 间距 */
|
|
|
|
|
--spacing-xs: 2px;
|
|
|
|
|
--spacing-sm: 4px;
|
2026-02-11 15:19:30 +08:00
|
|
|
--spacing-md: 8px;
|
2026-01-30 10:41:19 +08:00
|
|
|
--spacing-lg: 12px;
|
|
|
|
|
--spacing-xl: 16px;
|
|
|
|
|
--spacing-2xl: 20px;
|
|
|
|
|
--spacing-3xl: 24px;
|
2026-02-15 10:10:28 +08:00
|
|
|
|
2026-01-30 10:41:19 +08:00
|
|
|
/* 圆角 */
|
2026-02-18 20:44:58 +08:00
|
|
|
--radius-sm: 8px;
|
|
|
|
|
--radius-md: 12px;
|
|
|
|
|
--radius-lg: 12px;
|
2026-01-30 10:41:19 +08:00
|
|
|
--radius-full: 22px;
|
2026-02-15 10:10:28 +08:00
|
|
|
|
2026-01-30 10:41:19 +08:00
|
|
|
/* 字体大小 */
|
|
|
|
|
--font-xs: 9px;
|
|
|
|
|
--font-sm: 11px;
|
|
|
|
|
--font-base: 12px;
|
|
|
|
|
--font-md: 13px;
|
|
|
|
|
--font-lg: 15px;
|
|
|
|
|
--font-xl: 18px;
|
|
|
|
|
--font-2xl: 24px;
|
|
|
|
|
--font-3xl: 32px;
|
2026-02-15 10:10:28 +08:00
|
|
|
|
2026-01-30 10:41:19 +08:00
|
|
|
/* 字体粗细 */
|
|
|
|
|
--font-medium: 500;
|
|
|
|
|
--font-semibold: 600;
|
|
|
|
|
--font-bold: 700;
|
|
|
|
|
--font-extrabold: 800;
|
2026-02-15 10:10:28 +08:00
|
|
|
|
2026-01-30 10:41:19 +08:00
|
|
|
/* 字体 */
|
|
|
|
|
--font-primary: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
|
|
|
--font-display: 'Bricolage Grotesque', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
2026-02-15 10:10:28 +08:00
|
|
|
|
2026-01-30 10:41:19 +08:00
|
|
|
/* 阴影 (可选) */
|
|
|
|
|
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
|
|
|
|
|
--shadow-md: 0 4px 6px rgba(0, 0, 0, 0.05);
|
|
|
|
|
--shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.05);
|
2026-02-15 10:10:28 +08:00
|
|
|
|
2026-02-11 15:19:30 +08:00
|
|
|
/* 边框颜色 */
|
2026-02-15 10:10:28 +08:00
|
|
|
--border-color: #e5e7eb;
|
2026-02-12 21:39:27 +08:00
|
|
|
|
|
|
|
|
/* 分段控制器 (Segmented Control) - From .pans/v2.pen NDWwE */
|
2026-02-15 10:10:28 +08:00
|
|
|
--segmented-bg: #f4f4f5;
|
|
|
|
|
--segmented-active-bg: #ffffff;
|
2026-01-30 10:41:19 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* ============ 深色主题 ============ */
|
2026-02-15 10:10:28 +08:00
|
|
|
[data-theme='dark'] {
|
2026-01-30 10:41:19 +08:00
|
|
|
/* 背景色 */
|
2026-02-15 10:10:28 +08:00
|
|
|
--bg-primary: #09090b;
|
2026-01-30 10:41:19 +08:00
|
|
|
--bg-secondary: #18181b;
|
|
|
|
|
--bg-tertiary: #27272a;
|
|
|
|
|
--bg-button: #27272a;
|
2026-02-15 10:10:28 +08:00
|
|
|
|
2026-01-30 10:41:19 +08:00
|
|
|
/* 文字颜色 */
|
|
|
|
|
--text-primary: #f4f4f5;
|
|
|
|
|
--text-secondary: #a1a1aa;
|
|
|
|
|
--text-tertiary: #71717a;
|
2026-02-15 10:10:28 +08:00
|
|
|
|
2026-02-10 19:47:55 +08:00
|
|
|
/* 边框颜色 */
|
|
|
|
|
--border-color: #3f3f46;
|
2026-02-15 10:10:28 +08:00
|
|
|
|
2026-01-30 10:41:19 +08:00
|
|
|
/* 强调色 (深色主题调整) */
|
2026-02-15 10:10:28 +08:00
|
|
|
--accent-primary: #ff6b6b;
|
2026-01-30 10:41:19 +08:00
|
|
|
--accent-danger: #f87171;
|
|
|
|
|
--accent-warning: #fbbf24;
|
|
|
|
|
--accent-warning-bg: #451a03;
|
|
|
|
|
--accent-success: #4ade80;
|
|
|
|
|
--accent-success-bg: #064e3b;
|
|
|
|
|
--accent-info: #818cf8;
|
|
|
|
|
--accent-info-bg: #312e81;
|
2026-02-15 10:10:28 +08:00
|
|
|
|
2026-01-30 10:41:19 +08:00
|
|
|
/* 图标色 (深色主题) */
|
2026-02-15 10:10:28 +08:00
|
|
|
--icon-star: #ff6b6b;
|
|
|
|
|
--icon-coffee: #fcd34d;
|
2026-02-12 21:39:27 +08:00
|
|
|
|
|
|
|
|
/* 分段控制器 (Segmented Control) - From .pans/v2.pen NDWwE */
|
|
|
|
|
--segmented-bg: #27272a;
|
|
|
|
|
--segmented-active-bg: #3f3f46;
|
2026-01-30 10:41:19 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* ============ 通用工具类 ============ */
|
|
|
|
|
|
|
|
|
|
/* 文字 */
|
|
|
|
|
.text-primary {
|
|
|
|
|
color: var(--text-primary);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.text-secondary {
|
|
|
|
|
color: var(--text-secondary);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.text-tertiary {
|
|
|
|
|
color: var(--text-tertiary);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.text-danger {
|
|
|
|
|
color: var(--accent-danger);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 背景 */
|
|
|
|
|
.bg-primary {
|
|
|
|
|
background-color: var(--bg-primary);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.bg-secondary {
|
|
|
|
|
background-color: var(--bg-secondary);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.bg-tertiary {
|
|
|
|
|
background-color: var(--bg-tertiary);
|
|
|
|
|
}
|
|
|
|
|
|
2026-02-15 10:10:28 +08:00
|
|
|
/* 布局容器 */
|
2026-01-30 10:41:19 +08:00
|
|
|
.container-fluid {
|
|
|
|
|
width: 100%;
|
|
|
|
|
max-width: 402px;
|
|
|
|
|
margin: 0 auto;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Flex 布局 */
|
|
|
|
|
.flex {
|
|
|
|
|
display: flex;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.flex-col {
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.items-center {
|
|
|
|
|
align-items: center;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.justify-between {
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.justify-center {
|
|
|
|
|
justify-content: center;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 间距 */
|
2026-02-15 10:10:28 +08:00
|
|
|
.gap-xs {
|
|
|
|
|
gap: var(--spacing-xs);
|
|
|
|
|
}
|
|
|
|
|
.gap-sm {
|
|
|
|
|
gap: var(--spacing-sm);
|
|
|
|
|
}
|
|
|
|
|
.gap-md {
|
|
|
|
|
gap: var(--spacing-md);
|
|
|
|
|
}
|
|
|
|
|
.gap-lg {
|
|
|
|
|
gap: var(--spacing-lg);
|
|
|
|
|
}
|
|
|
|
|
.gap-xl {
|
|
|
|
|
gap: var(--spacing-xl);
|
|
|
|
|
}
|
|
|
|
|
.gap-2xl {
|
|
|
|
|
gap: var(--spacing-2xl);
|
|
|
|
|
}
|
|
|
|
|
.gap-3xl {
|
|
|
|
|
gap: var(--spacing-3xl);
|
|
|
|
|
}
|
2026-01-30 10:41:19 +08:00
|
|
|
|
|
|
|
|
/* 内边距 */
|
2026-02-15 10:10:28 +08:00
|
|
|
.p-sm {
|
|
|
|
|
padding: var(--spacing-md);
|
|
|
|
|
}
|
|
|
|
|
.p-md {
|
|
|
|
|
padding: var(--spacing-xl);
|
|
|
|
|
}
|
|
|
|
|
.p-lg {
|
|
|
|
|
padding: var(--spacing-2xl);
|
|
|
|
|
}
|
|
|
|
|
.p-xl {
|
|
|
|
|
padding: var(--spacing-3xl);
|
|
|
|
|
}
|
2026-01-30 10:41:19 +08:00
|
|
|
|
|
|
|
|
/* 圆角 */
|
2026-02-15 10:10:28 +08:00
|
|
|
.rounded-sm {
|
|
|
|
|
border-radius: var(--radius-sm);
|
|
|
|
|
}
|
|
|
|
|
.rounded-md {
|
|
|
|
|
border-radius: var(--radius-md);
|
|
|
|
|
}
|
|
|
|
|
.rounded-lg {
|
|
|
|
|
border-radius: var(--radius-lg);
|
|
|
|
|
}
|
|
|
|
|
.rounded-full {
|
|
|
|
|
border-radius: var(--radius-full);
|
|
|
|
|
}
|