- 删除目标管理演示页面的代码,简化项目结构 - 更新底部导航,移除目标管理演示页面的路由 - 调整相关组件的样式和逻辑,确保界面一致性 - 优化颜色常量的使用,提升视觉效果
213 lines
6.0 KiB
TypeScript
213 lines
6.0 KiB
TypeScript
/**
|
||
* 应用全局配色规范(基于设计规范图)。
|
||
* 包含完整的语义化颜色系统:灰色、紫色、成功色、错误色、警告色和基础色。
|
||
*/
|
||
|
||
// 原子调色板(与设计图一致)
|
||
export const palette = {
|
||
// 灰色系统 - 中性色,UI设计的基础
|
||
gray: {
|
||
25: '#fcfcfd',
|
||
50: '#ebecee',
|
||
100: '#c0c4ca',
|
||
200: '#a2a7b0',
|
||
300: '#777f8c',
|
||
400: '#5d6676',
|
||
500: '#344054',
|
||
600: '#2f3a4c',
|
||
700: '#252d3c',
|
||
800: '#1d232e',
|
||
900: '#161b23',
|
||
},
|
||
|
||
// 紫色系统 - 品牌主色,用于交互元素
|
||
purple: {
|
||
25: '#fafaff',
|
||
50: '#f4f3ff',
|
||
100: '#ebe9fe',
|
||
200: '#d9d6fe',
|
||
300: '#bdb4fe',
|
||
400: '#9b8afb',
|
||
500: '#7a5af8',
|
||
600: '#6938ef',
|
||
700: '#5925dc',
|
||
800: '#4a1fb8',
|
||
900: '#3e1c96',
|
||
},
|
||
|
||
// 成功色系统 - 绿色,用于正面反馈
|
||
success: {
|
||
25: '#f6fef9',
|
||
50: '#e8f7f1',
|
||
100: '#b8e7d2',
|
||
200: '#95dcbc',
|
||
300: '#65cc9e',
|
||
400: '#47c28b',
|
||
500: '#19b36e',
|
||
600: '#17a364',
|
||
700: '#127f4e',
|
||
800: '#0e623d',
|
||
900: '#0b4b2e',
|
||
},
|
||
|
||
// 错误色系统 - 红色,用于错误状态和破坏性操作
|
||
error: {
|
||
25: '#fffbfa',
|
||
50: '#feeeee',
|
||
100: '#fdcaca',
|
||
200: '#fcb1b1',
|
||
300: '#fb8d8d',
|
||
400: '#fa7777',
|
||
500: '#f95555',
|
||
600: '#e34d4d',
|
||
700: '#b13c3c',
|
||
800: '#892f2f',
|
||
900: '#692424',
|
||
},
|
||
|
||
// 警告色系统 - 黄色/橙色,用于警告和确认
|
||
warning: {
|
||
25: '#fff7ec',
|
||
50: '#fff7ec',
|
||
100: '#ffe6c4',
|
||
200: '#ffd9a8',
|
||
300: '#ffc880',
|
||
400: '#ffbd68',
|
||
500: '#ffad42',
|
||
600: '#e89d3c',
|
||
700: '#b57b2f',
|
||
800: '#8c5f24',
|
||
900: '#6b491c',
|
||
},
|
||
|
||
// 基础色
|
||
base: {
|
||
white: '#ffffff',
|
||
black: '#1d232e',
|
||
}
|
||
} as const;
|
||
|
||
// 主色调定义
|
||
const primaryColor = palette.purple[500]; // 紫色500作为主色
|
||
const tintColorLight = primaryColor;
|
||
const tintColorDark = palette.base.white;
|
||
|
||
export const Colors = {
|
||
light: {
|
||
// 基础文本/背景
|
||
text: palette.gray[900], // 最深灰色用于主要文本
|
||
textSecondary: palette.gray[600], // 中等灰色用于次要文本
|
||
textMuted: palette.gray[400], // 浅灰色用于静音文本
|
||
background: palette.base.white,
|
||
surface: palette.base.white,
|
||
card: palette.gray[25], // 最浅灰色用于卡片背景
|
||
|
||
// 品牌与可交互主色
|
||
tint: tintColorLight,
|
||
primary: primaryColor,
|
||
onPrimary: palette.base.white, // 主色上的文字/图标颜色
|
||
|
||
// 中性色与辅助
|
||
neutral100: palette.gray[100],
|
||
neutral200: palette.gray[200],
|
||
neutral300: palette.gray[300],
|
||
|
||
// 状态/反馈色
|
||
success: palette.success[500],
|
||
successLight: palette.success[100],
|
||
successDark: palette.success[700],
|
||
warning: palette.warning[500],
|
||
warningLight: palette.warning[100],
|
||
warningDark: palette.warning[700],
|
||
danger: palette.error[500],
|
||
dangerLight: palette.error[100],
|
||
dangerDark: palette.error[700],
|
||
info: palette.purple[500],
|
||
accentPurple: palette.purple[400],
|
||
accentGreen: palette.success[400],
|
||
|
||
// 日期选择器主题色
|
||
datePickerNormal: palette.purple[500],
|
||
datePickerSelected: palette.success[500],
|
||
|
||
// 结构色
|
||
border: palette.gray[200], // 浅灰色边框
|
||
separator: palette.gray[100], // 更浅的分隔线
|
||
icon: palette.gray[500], // 中等灰色图标
|
||
|
||
// Tab 相关
|
||
tabIconDefault: palette.gray[400],
|
||
tabIconSelected: palette.base.white, // 选中时使用白色文字/图标,确保在紫色背景上清晰可见
|
||
tabBarBackground: palette.base.white,
|
||
tabBarActiveBackground: palette.purple[500], // 使用主色作为选中背景
|
||
|
||
// 页面氛围与装饰
|
||
pageBackgroundEmphasis: palette.gray[25],
|
||
heroSurfaceTint: palette.purple[25],
|
||
ornamentPrimary: palette.purple[100],
|
||
ornamentAccent: palette.success[100],
|
||
|
||
// 背景渐变色
|
||
backgroundGradientStart: palette.gray[25],
|
||
backgroundGradientEnd: palette.base.white,
|
||
},
|
||
dark: {
|
||
// 基础文本/背景
|
||
text: palette.gray[25], // 最浅灰色用于主要文本
|
||
textSecondary: palette.gray[100], // 浅灰色用于次要文本
|
||
textMuted: palette.gray[300], // 中等灰色用于静音文本
|
||
background: palette.gray[900],
|
||
surface: palette.gray[800],
|
||
card: palette.gray[800],
|
||
|
||
// 品牌与可交互主色
|
||
tint: tintColorDark,
|
||
primary: primaryColor,
|
||
onPrimary: palette.base.white,
|
||
|
||
// 中性色与辅助
|
||
neutral100: palette.gray[100],
|
||
neutral200: palette.gray[200],
|
||
neutral300: palette.gray[300],
|
||
|
||
// 状态/反馈色
|
||
success: palette.success[400], // 深色模式下使用较亮的成功色
|
||
successLight: palette.success[200],
|
||
successDark: palette.success[600],
|
||
warning: palette.warning[400],
|
||
warningLight: palette.warning[200],
|
||
warningDark: palette.warning[600],
|
||
danger: palette.error[400],
|
||
dangerLight: palette.error[200],
|
||
dangerDark: palette.error[600],
|
||
info: palette.purple[400],
|
||
accentPurple: palette.purple[300],
|
||
accentGreen: palette.success[300],
|
||
|
||
// 日期选择器主题色
|
||
datePickerNormal: palette.purple[400],
|
||
datePickerSelected: palette.success[400],
|
||
|
||
// 结构色
|
||
border: palette.gray[700],
|
||
separator: palette.gray[700],
|
||
icon: palette.gray[300],
|
||
|
||
// Tab 相关
|
||
tabIconDefault: palette.gray[400],
|
||
tabIconSelected: palette.base.white, // 选中时使用白色文字/图标,确保在紫色背景上清晰可见
|
||
tabBarBackground: palette.gray[800],
|
||
tabBarActiveBackground: palette.purple[500], // 使用主色作为选中背景,在深色模式下更突出
|
||
|
||
// 页面氛围与装饰
|
||
pageBackgroundEmphasis: palette.gray[800],
|
||
heroSurfaceTint: palette.purple[900],
|
||
ornamentPrimary: palette.purple[800],
|
||
ornamentAccent: palette.success[800],
|
||
|
||
// 背景渐变色
|
||
backgroundGradientStart: palette.gray[900],
|
||
backgroundGradientEnd: palette.gray[800],
|
||
},
|
||
} as const;
|