index.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. /**
  2. |--------------------------------------------------
  3. | app theme class
  4. |--------------------------------------------------
  5. */
  6. export const keys = ['white', 'black']
  7. export const langs = ['zh-Hans-US', 'en']
  8. export default class AppTheme {
  9. static colorMap = {}
  10. static switchTheme = (map = keys[1]) => {
  11. return AppTheme.colorMap[map]
  12. }
  13. static setTheme = theme => {
  14. return (AppTheme.currentMap = theme)
  15. }
  16. //Index map for memr
  17. static currentMap
  18. static currentTheme = keys[1]
  19. }
  20. //common base style
  21. AppTheme.baseMap = {
  22. brandColor: '#008BFF',
  23. font: {
  24. // 字体尺寸
  25. font_size_icontext: 10,
  26. font_size_caption_sm: 12,
  27. font_size_base: 14,
  28. font_size_subhead: 15,
  29. font_size_caption: 16,
  30. font_size_heading: 17,
  31. },
  32. radius: {
  33. // 圆角
  34. radius_xs: 2,
  35. radius_sm: 3,
  36. radius_md: 5,
  37. radius_lg: 7,
  38. },
  39. spacing: {
  40. // 间距
  41. // 水平间距
  42. h_spacing_sm: 5,
  43. h_spacing_md: 8,
  44. h_spacing_lg: 15,
  45. // 垂直间距
  46. v_spacing_xs: 3,
  47. v_spacing_sm: 6,
  48. v_spacing_md: 9,
  49. v_spacing_lg: 15,
  50. v_spacing_xl: 21,
  51. },
  52. color: {
  53. title: 'rgba(0,0,0,.85)',
  54. primaryText: 'rgba(0,0,0,.65)',
  55. seconddaryText: 'rgba(0,0,0,.45)',
  56. disabled: 'rgba(0,0,0,.25)',
  57. border: 'rgba(0,0,0,.15)',
  58. dividers: 'rgba(0,0,0,.09)',
  59. background: 'rgba(0,0,0,.04)',
  60. tableHeader: 'rgba(0,0,0,.02)',
  61. },
  62. }
  63. //abstract style
  64. AppTheme.colorMap[keys[0]] = {
  65. barStyle: 'light-content',
  66. backgroundColor: '#F5F5F5',
  67. header: {
  68. backgroundColor: '#E14C46',
  69. color: '#fff',
  70. },
  71. tabBar: {
  72. backgroundColor: 'rgba(255,255,255,.9)',
  73. color: '#666',
  74. colorActive: '#E14C46',
  75. borderColor: '#eee',
  76. },
  77. normal: {
  78. title1: {
  79. color: '#333',
  80. },
  81. title2: {
  82. color: '#555',
  83. },
  84. title3: {
  85. color: '#666',
  86. },
  87. item1: {
  88. backgroundColor: '#fffffc',
  89. },
  90. item2: {
  91. backgroundColor: '#fff',
  92. },
  93. border1: {
  94. color: '#eee',
  95. },
  96. border2: {
  97. color: '#ddd',
  98. },
  99. border3: {
  100. color: '#ddd',
  101. },
  102. },
  103. modal: {
  104. title1: {
  105. color: '#333',
  106. },
  107. title2: {
  108. color: '#ccc',
  109. },
  110. border1: {
  111. color: '#ddd',
  112. },
  113. border2: {
  114. color: '#ccc',
  115. },
  116. },
  117. extra: {
  118. red: {
  119. color: '#E14C46',
  120. },
  121. yellow: {
  122. color: '#FAAF1E',
  123. },
  124. blue: {
  125. color: '#0090D5',
  126. },
  127. green: {
  128. color: '#59C152',
  129. },
  130. purple: {
  131. color: '#A856F8',
  132. },
  133. white: {
  134. color: '#fff',
  135. },
  136. coffee: {
  137. color: 'rgba(250,175,30,0.50)',
  138. },
  139. brown: {
  140. color: 'rgba(225,76,70,0.50)',
  141. },
  142. },
  143. }
  144. AppTheme.colorMap[keys[1]] = {
  145. barStyle: 'light-content',
  146. backgroundColor: '#1C1F2C',
  147. header: {
  148. backgroundColor: '#12141C',
  149. color: '#fff',
  150. },
  151. tabBar: {
  152. backgroundColor: '#12141C',
  153. color: '#CFD2E6',
  154. colorActive: '#E14C46',
  155. borderColor: 'rgba(255,255,255,.1)',
  156. },
  157. normal: {
  158. title1: {
  159. color: '#fff',
  160. },
  161. title2: {
  162. color: '#CFD2E6',
  163. },
  164. title3: {
  165. color: '#8A8C99',
  166. },
  167. item1: {
  168. backgroundColor: '#262935',
  169. },
  170. item2: {
  171. backgroundColor: '#232632',
  172. },
  173. border1: {
  174. color: 'rgba(255,255,255,.1)',
  175. },
  176. border2: {
  177. color: 'rgba(255,255,255,.2)',
  178. },
  179. border3: {
  180. color: 'rgba(255,255,255,.5)',
  181. },
  182. },
  183. modal: {
  184. title1: {
  185. color: '#333',
  186. },
  187. title2: {
  188. color: '#ccc',
  189. },
  190. border1: {
  191. color: '#ddd',
  192. },
  193. border2: {
  194. color: '#ccc',
  195. },
  196. },
  197. extra: {
  198. red: {
  199. color: '#E14C46',
  200. },
  201. yellow: {
  202. color: '#FAAF1E',
  203. },
  204. blue: {
  205. color: '#0090D5',
  206. },
  207. green: {
  208. color: '#59C152',
  209. },
  210. purple: {
  211. color: '#A856F8',
  212. },
  213. white: {
  214. color: '#fff',
  215. },
  216. coffee: {
  217. color: 'rgba(250,175,30,0.50)',
  218. },
  219. brown: {
  220. color: 'rgba(225,76,70,0.50)',
  221. },
  222. },
  223. }
  224. AppTheme.currentMap = AppTheme.switchTheme()