/** * 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; /* ============ 布局变量 ============ */ /* 间距 */ --spacing-xs: 2px; --spacing-sm: 4px; --spacing-md: 8px; --spacing-lg: 12px; --spacing-xl: 16px; --spacing-2xl: 20px; --spacing-3xl: 24px; /* 圆角 */ --radius-sm: 8px; --radius-md: 12px; --radius-lg: 12px; --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; /* 分段控制器 (Segmented Control) - From .pans/v2.pen NDWwE */ --segmented-bg: #f4f4f5; --segmented-active-bg: #ffffff; } /* ============ 深色主题 ============ */ [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; /* 强调色 (深色主题调整) */ --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; /* 分段控制器 (Segmented Control) - From .pans/v2.pen NDWwE */ --segmented-bg: #27272a; --segmented-active-bg: #3f3f46; } /* ============ 通用工具类 ============ */ /* 文字 */ .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); } /* 布局容器 */ .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); }