add forum

This commit is contained in:
2025-11-15 09:10:26 +08:00
parent 2753fbc37f
commit 05b497de29
13 changed files with 2693 additions and 11 deletions

227
src/theme/forumTheme.js Normal file
View File

@@ -0,0 +1,227 @@
/**
* 价值论坛黑金主题配置
* 采用深色背景 + 金色点缀的高端配色方案
*/
export const forumColors = {
// 主色调 - 黑金渐变
primary: {
50: '#FFF9E6',
100: '#FFEEBA',
200: '#FFE38D',
300: '#FFD860',
400: '#FFCD33',
500: '#FFC107', // 主金色
600: '#FFB300',
700: '#FFA000',
800: '#FF8F00',
900: '#FF6F00',
},
// 背景色系 - 深黑渐变
background: {
main: '#0A0A0A', // 主背景 - 极黑
secondary: '#121212', // 次级背景
card: '#1A1A1A', // 卡片背景
hover: '#222222', // 悬停背景
elevated: '#2A2A2A', // 提升背景(模态框等)
},
// 文字色系
text: {
primary: '#FFFFFF', // 主文字 - 纯白
secondary: '#B8B8B8', // 次要文字 - 灰色
tertiary: '#808080', // 三级文字 - 深灰
muted: '#5A5A5A', // 弱化文字
gold: '#FFC107', // 金色强调文字
goldGradient: 'linear-gradient(135deg, #FFD700 0%, #FFA500 100%)', // 金色渐变
},
// 边框色系
border: {
default: '#333333',
light: '#404040',
gold: '#FFC107',
goldGlow: 'rgba(255, 193, 7, 0.3)',
},
// 功能色
semantic: {
success: '#4CAF50',
warning: '#FF9800',
error: '#F44336',
info: '#2196F3',
},
// 金色渐变系列
gradients: {
goldPrimary: 'linear-gradient(135deg, #FFD700 0%, #FFA500 100%)',
goldSecondary: 'linear-gradient(135deg, #FFC107 0%, #FF8F00 100%)',
goldSubtle: 'linear-gradient(135deg, rgba(255, 215, 0, 0.1) 0%, rgba(255, 165, 0, 0.05) 100%)',
blackGold: 'linear-gradient(135deg, #0A0A0A 0%, #1A1A1A 50%, #2A2020 100%)',
cardHover: 'linear-gradient(135deg, #1A1A1A 0%, #252525 100%)',
},
// 阴影色系
shadows: {
sm: '0 1px 2px 0 rgba(0, 0, 0, 0.5)',
md: '0 4px 6px -1px rgba(0, 0, 0, 0.6), 0 2px 4px -1px rgba(0, 0, 0, 0.4)',
lg: '0 10px 15px -3px rgba(0, 0, 0, 0.7), 0 4px 6px -2px rgba(0, 0, 0, 0.5)',
xl: '0 20px 25px -5px rgba(0, 0, 0, 0.8), 0 10px 10px -5px rgba(0, 0, 0, 0.6)',
gold: '0 0 20px rgba(255, 193, 7, 0.3), 0 0 40px rgba(255, 193, 7, 0.1)',
goldHover: '0 0 30px rgba(255, 193, 7, 0.5), 0 0 60px rgba(255, 193, 7, 0.2)',
},
};
/**
* 论坛组件样式配置
*/
export const forumComponentStyles = {
// 按钮样式
Button: {
baseStyle: {
fontWeight: '600',
borderRadius: 'md',
transition: 'all 0.3s ease',
},
variants: {
gold: {
bg: forumColors.gradients.goldPrimary,
color: '#0A0A0A',
_hover: {
transform: 'translateY(-2px)',
boxShadow: forumColors.shadows.goldHover,
_disabled: {
transform: 'none',
},
},
_active: {
transform: 'translateY(0)',
},
},
goldOutline: {
bg: 'transparent',
color: forumColors.primary[500],
border: '2px solid',
borderColor: forumColors.primary[500],
_hover: {
bg: forumColors.gradients.goldSubtle,
boxShadow: forumColors.shadows.gold,
},
},
dark: {
bg: forumColors.background.card,
color: forumColors.text.primary,
border: '1px solid',
borderColor: forumColors.border.default,
_hover: {
bg: forumColors.background.hover,
borderColor: forumColors.border.light,
},
},
},
},
// 卡片样式
Card: {
baseStyle: {
container: {
bg: forumColors.background.card,
borderRadius: 'lg',
border: '1px solid',
borderColor: forumColors.border.default,
transition: 'all 0.3s ease',
_hover: {
borderColor: forumColors.border.gold,
boxShadow: forumColors.shadows.gold,
transform: 'translateY(-4px)',
},
},
},
},
// 输入框样式
Input: {
variants: {
forum: {
field: {
bg: forumColors.background.secondary,
border: '1px solid',
borderColor: forumColors.border.default,
color: forumColors.text.primary,
_placeholder: {
color: forumColors.text.tertiary,
},
_hover: {
borderColor: forumColors.border.light,
},
_focus: {
borderColor: forumColors.border.gold,
boxShadow: `0 0 0 1px ${forumColors.border.goldGlow}`,
},
},
},
},
},
// 标签样式
Tag: {
variants: {
gold: {
container: {
bg: forumColors.gradients.goldSubtle,
color: forumColors.primary[500],
border: '1px solid',
borderColor: forumColors.border.gold,
},
},
},
},
};
/**
* 论坛专用动画配置
*/
export const forumAnimations = {
fadeIn: {
initial: { opacity: 0, y: 20 },
animate: { opacity: 1, y: 0 },
exit: { opacity: 0, y: -20 },
transition: { duration: 0.3 },
},
slideIn: {
initial: { opacity: 0, x: -20 },
animate: { opacity: 1, x: 0 },
exit: { opacity: 0, x: 20 },
transition: { duration: 0.3 },
},
scaleIn: {
initial: { opacity: 0, scale: 0.9 },
animate: { opacity: 1, scale: 1 },
exit: { opacity: 0, scale: 0.9 },
transition: { duration: 0.2 },
},
goldGlow: {
animate: {
boxShadow: [
forumColors.shadows.gold,
forumColors.shadows.goldHover,
forumColors.shadows.gold,
],
},
transition: {
duration: 2,
repeat: Infinity,
repeatType: 'reverse',
},
},
};
export default {
colors: forumColors,
components: forumComponentStyles,
animations: forumAnimations,
};