/** * 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: 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; } /* ============ 深色主题 ============ */ [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; } /* ============ 通用工具类 ============ */ /* 文字 */ .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); }