feat: 首页更新

This commit is contained in:
2025-11-12 00:13:26 +08:00
parent b48cce06f4
commit 9ef9233797
46 changed files with 660 additions and 369 deletions

162
theme/Colors/index.ts Normal file
View File

@@ -0,0 +1,162 @@
/**
* 主题颜色配置
*
* 可以通过 settingsStore 切换主题
*/
const tintColorLight = '#10c8e3';
const tintColorDark = '#ffd69f';
const tintColorOrange = '#bd9534';
export default {
light: {
// 文本颜色
text: '#000000',
textSecondary: '#666666',
textTertiary: '#999999',
textInverse: '#FFFFFF',
// 背景颜色
background: '#FFFFFF',
backgroundSecondary: '#F5F5F5',
backgroundTertiary: '#E5E5E5',
// 主题色
tint: tintColorLight,
primary: '#007AFF',
secondary: '#5856D6',
success: '#34C759',
warning: '#FF9500',
error: '#FF3B30',
info: '#5AC8FA',
// 边框颜色
border: '#E5E5E5',
borderSecondary: '#D1D1D6',
// Tab 图标
tabIconDefault: '#8E8E93',
tabIconSelected: tintColorLight,
// 卡片
card: '#FFFFFF',
cardShadow: 'rgba(0, 0, 0, 0.1)',
// 输入框
inputBackground: '#FFFFFF',
inputBorder: '#D1D1D6',
inputPlaceholder: '#C7C7CC',
// 按钮
buttonPrimary: '#007AFF',
buttonSecondary: '#5856D6',
buttonDisabled: '#E5E5E5',
buttonText: '#FFFFFF',
// 分隔线
separator: '#E5E5E5',
// 覆盖层
overlay: 'rgba(0, 0, 0, 0.5)',
},
orange: {
// 文本颜色
text: '#000000',
textSecondary: '#666666',
textTertiary: '#999999',
textInverse: '#FFFFFF',
// 背景颜色
background: '#FFFFFF',
backgroundSecondary: '#F5F5F5',
backgroundTertiary: '#E5E5E5',
// 主题色
tint: tintColorOrange,
primary: '#007AFF',
secondary: '#5856D6',
success: '#34C759',
warning: '#FF9500',
error: '#FF3B30',
info: '#5AC8FA',
// 边框颜色
border: '#E5E5E5',
borderSecondary: '#D1D1D6',
// Tab 图标
tabIconDefault: '#8E8E93',
tabIconSelected: tintColorOrange,
// 卡片
card: '#FFFFFF',
cardShadow: 'rgba(0, 0, 0, 0.1)',
// 输入框
inputBackground: '#FFFFFF',
inputBorder: '#D1D1D6',
inputPlaceholder: '#C7C7CC',
// 按钮
buttonPrimary: '#007AFF',
buttonSecondary: '#5856D6',
buttonDisabled: '#E5E5E5',
buttonText: '#FFFFFF',
// 分隔线
separator: '#E5E5E5',
// 覆盖层
overlay: 'rgba(0, 0, 0, 0.5)',
},
dark: {
// 文本颜色
text: '#FFFFFF',
textSecondary: '#AEAEB2',
textTertiary: '#8E8E93',
textInverse: '#000000',
// 背景颜色
background: '#000000',
backgroundSecondary: '#1C1C1E',
backgroundTertiary: '#2C2C2E',
// 主题色
tint: tintColorDark,
primary: '#0A84FF',
secondary: '#5E5CE6',
success: '#32D74B',
warning: '#FF9F0A',
error: '#FF453A',
info: '#64D2FF',
// 边框颜色
border: '#38383A',
borderSecondary: '#48484A',
// Tab 图标
tabIconDefault: '#8E8E93',
tabIconSelected: tintColorDark,
// 卡片
card: '#1C1C1E',
cardShadow: 'rgba(0, 0, 0, 0.3)',
// 输入框
inputBackground: '#1C1C1E',
inputBorder: '#38383A',
inputPlaceholder: '#636366',
// 按钮
buttonPrimary: '#0A84FF',
buttonSecondary: '#5E5CE6',
buttonDisabled: '#38383A',
buttonText: '#FFFFFF',
// 分隔线
separator: '#38383A',
// 覆盖层
overlay: 'rgba(0, 0, 0, 0.7)',
},
};

View File

@@ -1,11 +1,11 @@
/**
* 主题系统统一导出
*
*
* 提供主题配置、工具函数和类型定义
*/
// 导出颜色配置
export { default as Colors } from '@/constants/Colors';
export { default as Colors } from './Colors';
// 导出主题 Hooks
export {
@@ -23,6 +23,9 @@ export {
View as ThemeView,
} from '@/components/Themed';
// 导出主题类型
export { ThemeEnum } from '@/constants/theme';
export type {
ThemedTextProps,
ThemedViewProps,

View File

@@ -7,7 +7,7 @@
*/
import { StyleSheet, TextStyle, ViewStyle } from 'react-native';
import Colors from '@/constants/Colors';
import { Colors } from '@/theme';
import { ThemeEnum } from '@/constants/theme';
/**
@@ -53,7 +53,7 @@ export function createThemeStyles<T extends StyleSheet.NamedStyles<T>>(
return {
light: StyleSheet.create(createStyles(Colors.light)),
dark: StyleSheet.create(createStyles(Colors.dark)),
orange: StyleSheet.create(createStyles(Colors.light)),
orange: StyleSheet.create(createStyles(Colors.orange)),
};
}
@@ -89,7 +89,7 @@ export function createResponsiveThemeStyles<T extends StyleSheet.NamedStyles<T>>
return {
light: StyleSheet.create(lightStyles),
dark: StyleSheet.create(darkStyles),
orange: StyleSheet.create(lightStyles),
orange: StyleSheet.create(orangeStyles),
};
}

View File

@@ -4,7 +4,7 @@
* 提供主题相关的辅助函数
*/
import Colors from '@/constants/Colors';
import { Colors } from '@/theme';
import { ThemeEnum } from '@/constants/theme';
/**