Files
EmailBill/Web/src/assets/theme.css

197 lines
3.9 KiB
CSS
Raw Normal View History

2026-01-30 10:41:19 +08:00
/**
* EmailBill 主题系统 - 根据 v2.pen 设计稿
* 用于保持整个应用色彩和布局一致性
*/
:root {
/* ============ 颜色变量 - 浅色主题 ============ */
/* 背景色 */
--bg-primary: #FFFFFF;
--bg-secondary: #F6F7F8;
--bg-tertiary: #F3F4F6;
--bg-button: #F5F5F5;
/* 文字颜色 */
--text-primary: #1A1A1A;
--text-secondary: #6B7280;
--text-tertiary: #9CA3AF;
/* 强调色 */
--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;
/* 图标色 */
--icon-star: #FF6B6B;
--icon-coffee: #FCD34D;
/* 边框颜色 */
--border-color: #E5E7EB;
2026-01-30 10:41:19 +08:00
/* ============ 布局变量 ============ */
/* 间距 */
--spacing-xs: 2px;
--spacing-sm: 4px;
--spacing-md: 8px;
2026-01-30 10:41:19 +08:00
--spacing-lg: 12px;
--spacing-xl: 16px;
--spacing-2xl: 20px;
--spacing-3xl: 24px;
/* 圆角 */
--radius-sm: 12px;
--radius-md: 16px;
--radius-lg: 20px;
--radius-full: 22px;
/* 字体大小 */
--font-xs: 9px;
--font-sm: 11px;
--font-base: 12px;
--font-md: 13px;
--font-lg: 15px;
--font-xl: 18px;
--font-2xl: 24px;
--font-3xl: 32px;
/* 字体粗细 */
--font-medium: 500;
--font-semibold: 600;
--font-bold: 700;
--font-extrabold: 800;
/* 字体 */
--font-primary: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
--font-display: 'Bricolage Grotesque', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
/* 阴影 (可选) */
--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);
/* 边框颜色 */
--border-color: #E5E7EB;
2026-01-30 10:41:19 +08:00
}
/* ============ 深色主题 ============ */
[data-theme="dark"] {
/* 背景色 */
--bg-primary: #09090B;
--bg-secondary: #18181b;
--bg-tertiary: #27272a;
--bg-button: #27272a;
/* 文字颜色 */
--text-primary: #f4f4f5;
--text-secondary: #a1a1aa;
--text-tertiary: #71717a;
/* 边框颜色 */
--border-color: #3f3f46;
2026-01-30 10:41:19 +08:00
/* 强调色 (深色主题调整) */
--accent-primary: #FF6B6B;
--accent-danger: #f87171;
--accent-warning: #fbbf24;
--accent-warning-bg: #451a03;
--accent-success: #4ade80;
--accent-success-bg: #064e3b;
--accent-info: #818cf8;
--accent-info-bg: #312e81;
/* 图标色 (深色主题) */
--icon-star: #FF6B6B;
--icon-coffee: #FCD34D;
}
/* ============ 通用工具类 ============ */
/* 文字 */
.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-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;
}
/* 间距 */
.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); }
/* 内边距 */
.p-sm { padding: var(--spacing-md); }
.p-md { padding: var(--spacing-xl); }
.p-lg { padding: var(--spacing-2xl); }
.p-xl { padding: var(--spacing-3xl); }
/* 圆角 */
.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); }