feat: admin frontend - React + Vite, auth pages, user management, roles, permissions, webhooks, devices, logs
This commit is contained in:
89
frontend/admin/src/app/providers/ThemeProvider.tsx
Normal file
89
frontend/admin/src/app/providers/ThemeProvider.tsx
Normal file
@@ -0,0 +1,89 @@
|
||||
/**
|
||||
* 主题配置 Provider
|
||||
* 使用 Ant Design 5 的 ConfigProvider 覆盖主题 Token
|
||||
*/
|
||||
|
||||
import { ConfigProvider, type ThemeConfig } from 'antd'
|
||||
import zhCN from 'antd/locale/zh_CN'
|
||||
import type { ReactNode } from 'react'
|
||||
|
||||
/**
|
||||
* Ant Design 主题配置
|
||||
* 基于 Mineral Console 视觉方向
|
||||
*/
|
||||
const themeConfig: ThemeConfig = {
|
||||
token: {
|
||||
// 主色
|
||||
colorPrimary: '#0e5a6a',
|
||||
colorPrimaryHover: '#0a4b59',
|
||||
colorPrimaryActive: '#083d4a',
|
||||
|
||||
// 成功色
|
||||
colorSuccess: '#217a5b',
|
||||
|
||||
// 警告色
|
||||
colorWarning: '#b7791f',
|
||||
|
||||
// 错误色
|
||||
colorError: '#b33a3a',
|
||||
|
||||
// 信息色
|
||||
colorInfo: '#2d6a9f',
|
||||
|
||||
// 字体
|
||||
fontFamily: '"IBM Plex Sans", "PingFang SC", "Microsoft YaHei", sans-serif',
|
||||
fontSize: 14,
|
||||
|
||||
// 圆角
|
||||
borderRadius: 10,
|
||||
borderRadiusLG: 16,
|
||||
borderRadiusSM: 6,
|
||||
|
||||
// 链接
|
||||
colorLink: '#0e5a6a',
|
||||
colorLinkHover: '#0a4b59',
|
||||
colorLinkActive: '#083d4a',
|
||||
},
|
||||
components: {
|
||||
// 表格组件定制
|
||||
Table: {
|
||||
headerBg: '#f8f5ef',
|
||||
borderColor: '#d6d0c3',
|
||||
rowHoverBg: 'rgba(14, 90, 106, 0.04)',
|
||||
},
|
||||
// 卡片组件定制
|
||||
Card: {
|
||||
borderRadiusLG: 16,
|
||||
boxShadowTertiary: '0 10px 30px rgba(23, 33, 43, 0.06)',
|
||||
},
|
||||
// 按钮组件定制
|
||||
Button: {
|
||||
borderRadius: 10,
|
||||
controlHeight: 36,
|
||||
controlHeightLG: 44,
|
||||
controlHeightSM: 28,
|
||||
},
|
||||
// 输入框组件定制
|
||||
Input: {
|
||||
borderRadius: 10,
|
||||
controlHeight: 36,
|
||||
},
|
||||
// 选择器组件定制
|
||||
Select: {
|
||||
borderRadius: 10,
|
||||
controlHeight: 36,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
interface ThemeProviderProps {
|
||||
children: ReactNode
|
||||
}
|
||||
|
||||
export function ThemeProvider({ children }: ThemeProviderProps) {
|
||||
return (
|
||||
<ConfigProvider theme={themeConfig} locale={zhCN}>
|
||||
{children}
|
||||
</ConfigProvider>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user