diff --git a/src/constants/professionalTheme.js b/src/constants/professionalTheme.js new file mode 100644 index 00000000..57a2ce5e --- /dev/null +++ b/src/constants/professionalTheme.js @@ -0,0 +1,118 @@ +// src/constants/professionalTheme.js +// 专业金融风格配色主题 - 黑色、灰色、金色 + +/** + * 专业配色方案 + * 主色调:黑色系 + 灰色系 + 金色点缀 + * 适用于金融、投资类产品 + */ +export const PROFESSIONAL_COLORS = { + // 背景色 + background: { + primary: '#0A0E17', // 深黑蓝 + secondary: '#151922', // 深灰 + card: '#1A1F2E', // 卡片背景 + cardHover: '#212633', // 卡片悬浮 + overlay: 'rgba(10, 14, 23, 0.95)', // 遮罩 + }, + + // 文字颜色 + text: { + primary: '#E8E9ED', // 主文字 - 浅灰白 + secondary: '#A0A4B8', // 次要文字 - 中灰 + tertiary: '#6B7280', // 三级文字 - 深灰 + muted: '#4B5563', // 弱化文字 + }, + + // 金色系 - 高端感 + gold: { + 50: '#FFF9E6', + 100: '#FFF3CC', + 200: '#FFE799', + 300: '#FFDB66', + 400: '#FFCF33', + 500: '#FFC300', // 主金色 + 600: '#CC9C00', + 700: '#997500', + 800: '#664E00', + 900: '#332700', + }, + + // 边框颜色 + border: { + light: '#2D3748', // 浅边框 + default: '#374151', // 默认边框 + dark: '#1F2937', // 深边框 + gold: '#FFC300', // 金色边框 + }, + + // 状态颜色 + status: { + success: '#10B981', // 成功/涨 + error: '#EF4444', // 错误/跌 + warning: '#F59E0B', // 警告 + info: '#3B82F6', // 信息 + }, + + // 渐变色 + gradients: { + gold: 'linear-gradient(135deg, #FFC300 0%, #FFD54F 100%)', + darkGold: 'linear-gradient(135deg, #997500 0%, #FFC300 100%)', + blackGold: 'linear-gradient(135deg, #0A0E17 0%, #2D2416 50%, #0A0E17 100%)', + card: 'linear-gradient(135deg, #1A1F2E 0%, #212633 100%)', + }, + + // 重要性等级金色配色 + importance: { + S: { + bg: 'rgba(255, 195, 0, 0.15)', + border: '#FFC300', + text: '#FFD54F', + badge: '#FFC300', + }, + A: { + bg: 'rgba(249, 115, 22, 0.15)', + border: '#F97316', + text: '#FB923C', + badge: '#F97316', + }, + B: { + bg: 'rgba(59, 130, 246, 0.15)', + border: '#3B82F6', + text: '#60A5FA', + badge: '#3B82F6', + }, + C: { + bg: 'rgba(107, 114, 128, 0.15)', + border: '#6B7280', + text: '#9CA3AF', + badge: '#6B7280', + }, + } +}; + +/** + * 获取专业配色 + * @param {string} category - 配色类别 + * @param {string} shade - 色阶 + */ +export const getProfessionalColor = (category, shade) => { + return PROFESSIONAL_COLORS[category]?.[shade] || '#E8E9ED'; +}; + +/** + * Chakra UI 主题扩展 + */ +export const professionalThemeExtension = { + colors: { + professional: PROFESSIONAL_COLORS, + }, + styles: { + global: { + body: { + bg: PROFESSIONAL_COLORS.background.primary, + color: PROFESSIONAL_COLORS.text.primary, + }, + }, + }, +}; diff --git a/src/views/Community/components/CompactSearchBox.js b/src/views/Community/components/CompactSearchBox.js index 5292cb5a..90d36431 100644 --- a/src/views/Community/components/CompactSearchBox.js +++ b/src/views/Community/components/CompactSearchBox.js @@ -17,6 +17,7 @@ import { fetchIndustryData, selectIndustryData, selectIndustryLoading } from '.. import { stockService } from '../../../services/stockService'; import { logger } from '../../../utils/logger'; import TradingTimeFilter from './TradingTimeFilter'; +import { PROFESSIONAL_COLORS } from '../../../constants/professionalTheme'; const { Option } = AntSelect; @@ -423,10 +424,10 @@ const CompactSearchBox = ({ return (