useNewToken.tsx 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. import { ConfigProvider, GlobalToken, theme, ThemeConfig } from "antd"
  2. import { useMemo } from "react"
  3. /**
  4. * 全局色使用
  5. * **/
  6. const { darkAlgorithm, compactAlgorithm, useToken } = theme
  7. /** 常用配置字段
  8. * colorTextBase 基础文字颜色
  9. * colorBgBase 基础背景色
  10. * colorPrimary 主题色
  11. * fontSize 文字大小
  12. * borderRadius 圆角
  13. * colorInfo 信息色
  14. * colorError 错误色
  15. * colorWarning 警告色
  16. * colorSuccess 成功色
  17. * */
  18. let themeConfig = {
  19. v: '1.0',
  20. type: 'light',//dark ||
  21. acPrimary: 'default',
  22. "acTextColor": "rgba(74,74,74,1)",
  23. "acLayout": "rgba(12,37,61,1)",
  24. "acContainer": "rgba(247,247,247,1)",
  25. "dfcolorBorder": "rgba(134,140,148,0.5)",
  26. "dfcolorBorderSecondary": "rgb(228, 228, 228)", //"rgba(152,196,245,0)",
  27. "dfcolorTextQuaternary": "rgba(0, 0, 0, 0.25)",
  28. "dfContentBgColor": "rgba(255,255,255,1)",
  29. "dfcolorLink": "#1677ff",
  30. "cardColorBorder": "#d5d5d5",
  31. "cardColorBorderSecondary": "rgba(155,155,155,0.1)",
  32. "cardColorBgContainer": "rgba(247,247,247,1)",
  33. "tableColorBgContainer": "rgb(255, 255, 255)",
  34. "tablePaddingXS": 4,
  35. "colorBgElevated": "rgba(255,255,255,1)",
  36. "colorBgMask": "rgba(0,0,0,0.45)",
  37. "myBgUrl": "",
  38. "colorInfo": "rgba(22,119,255,1)",
  39. "colorInfoBg": "rgba(250,173,20,0)",
  40. "colorInfoBorder": "rgba(255,255,255,0)",
  41. "colorError": "#ff4d4f",
  42. "colorErrorBg": "#fff2f0",
  43. "colorErrorBorder": "#ffccc7",
  44. "colorSuccess": "#52c41a",
  45. "colorSuccessBg": "#f6ffed",
  46. "colorSuccessBorder": "#b7eb8f",
  47. "colorWarning": "rgba(250,173,20,1)",
  48. "colorWarningBg": "#fffbe6",
  49. "colorWarningBorder": "#ffe58f",
  50. "controlItemBgActive": "rgba(0,21,40,0)",
  51. "controlItemBgActiveTable": "#e6f4ff",
  52. "controlItemBgActiveHover": "rgba(186,224,255,1)",
  53. "colorFillAlter": "rgba(0, 0, 0, 0.02)",
  54. "colorPrimaryBgHover": "rgba(186,224,255,0.4)",
  55. "colorMenuText": "rgba(255,255,255,1)",
  56. // acTextColor: '#000',//基础文字颜色
  57. // acLayout: 'rgba(247, 247, 247, 0.5)',//路由背景
  58. // acContainer: 'rgba(247, 247, 247, 0.6)',//输入容器背景
  59. // dfcolorBorder: 'rgba(175,175,175,1)',//外部边框颜色
  60. // dfcolorBorderSecondary: '#f0f0f0',//内部边框色
  61. // dfcolorTextQuaternary: 'rgba(0, 0, 0, 0.25)',//输入提示色
  62. // dfContentBgColor: 'rgba(247, 247, 247, 0.6)',//背景色
  63. // dfcolorLink: '#1677ff',//链接色
  64. // cardColorBorder: '#d5d5d5',//卡片外部边框色
  65. // cardColorBorderSecondary: '#d5d5d5',//卡片内部边框色
  66. // cardColorBgContainer: 'rgba(247, 247, 247, 0)',//卡片背景色
  67. // tableColorBgContainer: 'rgba(247, 247, 247, 0)',//表格背景色
  68. // tablePaddingXS: 4,//表格内边距
  69. // colorBgElevated: 'rgba(255,255,255,1)',//弹窗背景色
  70. // colorBgMask: 'rgba(0, 0, 0, 0.45)',//弹窗遮罩层颜色
  71. // myBgUrl: 'https://p9.qhimg.com/bdm/2560_1600_0/t01efb6b0204ffcaf78.jpg',//'https://p9.qhimg.com/bdm/2560_1600_0/t01efb6b0204ffcaf78.jpg'
  72. // colorInfo: '#1677ff',//用于表示操作信息的 Token 序列,如 Alert 、Tag、 Progress
  73. // colorInfoBg: '#e6f4ff',//信息背景色
  74. // colorInfoBorder: '#91caff',//信息边框色
  75. // colorError: '#ff4d4f',//失败背景色
  76. // colorErrorBg: '#fff2f0',//失败色
  77. // colorErrorBorder: '#ffccc7',//失败边框色
  78. // colorSuccess: '#52c41a',//成功色
  79. // colorSuccessBg: '#f6ffed',//成功背景色
  80. // colorSuccessBorder: '#b7eb8f',//成功边框色
  81. // colorWarning: '#faad14',//警戒色
  82. // colorWarningBg: '#fffbe6',//警戒背景色
  83. // colorWarningBorder: '#ffe58f',//警戒边框色
  84. // controlItemBgActive: '#e6f4ff',//menu被选中的背景色
  85. // controlItemBgActiveTable: '#e6f4ff',//table选中背景色
  86. // controlItemBgActiveHover: '#bae0ff',//table在被选中时的背景色
  87. // colorFillAlter: 'rgba(0, 0, 0, 0.02)',//Table控制区hover背景色
  88. // colorPrimaryBgHover: '#bae0ff',//主题悬浮色,
  89. // colorMenuText:'#000',//菜单文字颜色
  90. bgUrl: {
  91. green: 'https://gw.alipayobjects.com/mdn/rms_08e378/afts/img/A*XpGeRoZKGycAAAAAAAAAAAAAARQnAQ',
  92. yellow: 'https://gw.alipayobjects.com/mdn/rms_08e378/afts/img/A*1yydQLzw5nYAAAAAAAAAAAAAARQnAQ',
  93. orange: 'https://gw.alipayobjects.com/mdn/rms_08e378/afts/img/A*VWFOTbEyU9wAAAAAAAAAAAAAARQnAQ',
  94. red: 'https://gw.alipayobjects.com/mdn/rms_08e378/afts/img/A*w6xcR7MriwEAAAAAAAAAAAAAARQnAQ',
  95. pink: 'https://gw.alipayobjects.com/mdn/rms_08e378/afts/img/A*DGZXS4YOGp0AAAAAAAAAAAAAARQnAQ',
  96. purple: 'https://gw.alipayobjects.com/mdn/rms_08e378/afts/img/A*FMluR4vJhaQAAAAAAAAAAAAAARQnAQ',
  97. },
  98. colorPrimary: {
  99. default: '#1677FF',
  100. green: '#00B96B',
  101. yellow: '#F2BD27',
  102. orange: '#F4801A',
  103. red: '#E0282E',
  104. pink: '#ED4192',
  105. purple: '#9E339F'
  106. },
  107. fontfamilystyle:false,//字体样式
  108. default: {
  109. token: {
  110. 'colorTextWhite': '#FFFFFF',
  111. colorPrimary: '#1677FF',
  112. // colorBgContainer: 'rgba(247, 247, 247, 0.6)',//容器背景
  113. colorBgContainer: '#FFFFFF',//容器背景
  114. colorBgLayout: 'rgba(247, 247, 247, 0.5)',//路由背景
  115. colorTextBase: '#000',//基础文字色
  116. "wireframe": true,
  117. "fontSize": 14,
  118. "colortRansparency": 'rgba(247, 247, 247, 0)',//自定义透明色
  119. colorBorder: '#d5d5d5',//边框色
  120. colorBorderSecondary: "#f0f0f0",//内部边框色
  121. colorTextQuaternary: 'rgba(0, 0, 0, 0.25)',//输入提示色
  122. colorLink: "#1677ff",//链接色
  123. },
  124. components: {
  125. Table: {
  126. colorBgContainer: 'rgba(247, 247, 247, 0)',
  127. paddingXS: 4,
  128. },
  129. Aside: {
  130. borderRadiusSM: 0,
  131. },
  132. Layout: {
  133. borderRadiusSM: 0,
  134. },
  135. Menu: {
  136. borderRadiusSM: 0,
  137. },
  138. Card: {
  139. },
  140. },
  141. algorithm: []
  142. },
  143. dark: {
  144. token: {
  145. 'colorTextWhite': '#FFFFFF',
  146. colorPrimary: '#00B96B',
  147. "wireframe": true,
  148. "borderRadius": 6,
  149. "fontSize": 12,
  150. "colortRansparency": 'rgba(247, 247, 247, 0)',//自定义透明色
  151. lineHeight: 2,
  152. },
  153. components: {
  154. Card: {
  155. },
  156. Table: {
  157. },
  158. Button: {
  159. lineHeight: 1.4,
  160. }
  161. },
  162. algorithm: []
  163. },
  164. algorithm: [compactAlgorithm]
  165. }
  166. /**扩展自定义字段*/
  167. export interface NewGlobalToken extends GlobalToken {
  168. /**透明色*/
  169. colortRansparency?: string,
  170. colorTextWhite?: string
  171. }
  172. type Props = {
  173. theme: ThemeConfig | undefined,
  174. children: JSX.Element
  175. }
  176. export default function useNewToken() {
  177. const { token }: { token: NewGlobalToken } = useToken()
  178. const MyConfigProvider = (props: Props) => useMemo(() => {
  179. return <ConfigProvider
  180. theme={props.theme}
  181. >
  182. {props.children}
  183. </ConfigProvider>
  184. }, [])
  185. return { token, themeConfig, darkAlgorithm, MyConfigProvider }
  186. }