Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 

382 righe
13 KiB

  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
  6. var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
  7. exports.default = getMuiTheme;
  8. var _lodash = require('lodash.merge');
  9. var _lodash2 = _interopRequireDefault(_lodash);
  10. var _colorManipulator = require('../utils/colorManipulator');
  11. var _lightBaseTheme = require('./baseThemes/lightBaseTheme');
  12. var _lightBaseTheme2 = _interopRequireDefault(_lightBaseTheme);
  13. var _zIndex = require('./zIndex');
  14. var _zIndex2 = _interopRequireDefault(_zIndex);
  15. var _autoprefixer = require('../utils/autoprefixer');
  16. var _autoprefixer2 = _interopRequireDefault(_autoprefixer);
  17. var _callOnce = require('../utils/callOnce');
  18. var _callOnce2 = _interopRequireDefault(_callOnce);
  19. var _rtl = require('../utils/rtl');
  20. var _rtl2 = _interopRequireDefault(_rtl);
  21. var _compose = require('recompose/compose');
  22. var _compose2 = _interopRequireDefault(_compose);
  23. var _typography = require('./typography');
  24. var _typography2 = _interopRequireDefault(_typography);
  25. var _colors = require('./colors');
  26. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  27. /**
  28. * Get the MUI theme corresponding to a base theme.
  29. * It's possible to override the computed theme values
  30. * by providing a second argument. The calculated
  31. * theme will be deeply merged with the second argument.
  32. */
  33. function getMuiTheme(muiTheme) {
  34. for (var _len = arguments.length, more = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
  35. more[_key - 1] = arguments[_key];
  36. }
  37. muiTheme = _lodash2.default.apply(undefined, [{
  38. zIndex: _zIndex2.default,
  39. isRtl: false,
  40. userAgent: undefined
  41. }, _lightBaseTheme2.default, muiTheme].concat(more));
  42. var _muiTheme = muiTheme,
  43. spacing = _muiTheme.spacing,
  44. fontFamily = _muiTheme.fontFamily,
  45. palette = _muiTheme.palette;
  46. var baseTheme = { spacing: spacing, fontFamily: fontFamily, palette: palette };
  47. muiTheme = (0, _lodash2.default)({
  48. appBar: {
  49. color: palette.primary1Color,
  50. textColor: palette.alternateTextColor,
  51. height: spacing.desktopKeylineIncrement,
  52. titleFontWeight: _typography2.default.fontWeightNormal,
  53. padding: spacing.desktopGutter
  54. },
  55. avatar: {
  56. color: palette.canvasColor,
  57. backgroundColor: (0, _colorManipulator.emphasize)(palette.canvasColor, 0.26)
  58. },
  59. badge: {
  60. color: palette.alternateTextColor,
  61. textColor: palette.textColor,
  62. primaryColor: palette.primary1Color,
  63. primaryTextColor: palette.alternateTextColor,
  64. secondaryColor: palette.accent1Color,
  65. secondaryTextColor: palette.alternateTextColor,
  66. fontWeight: _typography2.default.fontWeightMedium
  67. },
  68. bottomNavigation: {
  69. backgroundColor: palette.canvasColor,
  70. unselectedColor: (0, _colorManipulator.fade)(palette.textColor, 0.54),
  71. selectedColor: palette.primary1Color,
  72. height: 56,
  73. unselectedFontSize: 12,
  74. selectedFontSize: 14
  75. },
  76. button: {
  77. height: 36,
  78. minWidth: 88,
  79. iconButtonSize: spacing.iconSize * 2
  80. },
  81. card: {
  82. titleColor: (0, _colorManipulator.fade)(palette.textColor, 0.87),
  83. subtitleColor: (0, _colorManipulator.fade)(palette.textColor, 0.54),
  84. fontWeight: _typography2.default.fontWeightMedium
  85. },
  86. cardMedia: {
  87. color: _colors.darkWhite,
  88. overlayContentBackground: _colors.lightBlack,
  89. titleColor: _colors.darkWhite,
  90. subtitleColor: _colors.lightWhite
  91. },
  92. cardText: {
  93. textColor: palette.textColor
  94. },
  95. checkbox: {
  96. boxColor: palette.textColor,
  97. checkedColor: palette.primary1Color,
  98. requiredColor: palette.primary1Color,
  99. disabledColor: palette.disabledColor,
  100. labelColor: palette.textColor,
  101. labelDisabledColor: palette.disabledColor
  102. },
  103. chip: {
  104. backgroundColor: (0, _colorManipulator.emphasize)(palette.canvasColor, 0.12),
  105. deleteIconColor: (0, _colorManipulator.fade)(palette.textColor, 0.26),
  106. textColor: (0, _colorManipulator.fade)(palette.textColor, 0.87),
  107. fontSize: 14,
  108. fontWeight: _typography2.default.fontWeightNormal,
  109. shadow: '0 1px 6px ' + (0, _colorManipulator.fade)(palette.shadowColor, 0.12) + ',\n 0 1px 4px ' + (0, _colorManipulator.fade)(palette.shadowColor, 0.12)
  110. },
  111. datePicker: {
  112. color: palette.primary1Color,
  113. textColor: palette.alternateTextColor,
  114. calendarTextColor: palette.textColor,
  115. selectColor: palette.primary2Color,
  116. selectTextColor: palette.alternateTextColor,
  117. calendarYearBackgroundColor: palette.canvasColor,
  118. headerColor: palette.pickerHeaderColor || palette.primary1Color
  119. },
  120. dialog: {
  121. titleFontSize: 22,
  122. bodyFontSize: 16,
  123. bodyColor: (0, _colorManipulator.fade)(palette.textColor, 0.6)
  124. },
  125. dropDownMenu: {
  126. accentColor: palette.borderColor
  127. },
  128. enhancedButton: {
  129. tapHighlightColor: _colors.transparent
  130. },
  131. flatButton: {
  132. color: _colors.transparent,
  133. buttonFilterColor: '#999999',
  134. disabledTextColor: (0, _colorManipulator.fade)(palette.textColor, 0.3),
  135. textColor: palette.textColor,
  136. primaryTextColor: palette.primary1Color,
  137. secondaryTextColor: palette.accent1Color,
  138. fontSize: _typography2.default.fontStyleButtonFontSize,
  139. fontWeight: _typography2.default.fontWeightMedium
  140. },
  141. floatingActionButton: {
  142. buttonSize: 56,
  143. miniSize: 40,
  144. color: palette.primary1Color,
  145. iconColor: palette.alternateTextColor,
  146. secondaryColor: palette.accent1Color,
  147. secondaryIconColor: palette.alternateTextColor,
  148. disabledTextColor: palette.disabledColor,
  149. disabledColor: (0, _colorManipulator.emphasize)(palette.canvasColor, 0.12)
  150. },
  151. gridTile: {
  152. textColor: _colors.white
  153. },
  154. icon: {
  155. color: palette.canvasColor,
  156. backgroundColor: palette.primary1Color
  157. },
  158. inkBar: {
  159. backgroundColor: palette.accent1Color
  160. },
  161. drawer: {
  162. width: spacing.desktopKeylineIncrement * 4,
  163. color: palette.canvasColor
  164. },
  165. listItem: {
  166. nestedLevelDepth: 18,
  167. secondaryTextColor: palette.secondaryTextColor,
  168. leftIconColor: _colors.grey600,
  169. rightIconColor: _colors.grey600
  170. },
  171. menu: {
  172. backgroundColor: palette.canvasColor,
  173. containerBackgroundColor: palette.canvasColor
  174. },
  175. menuItem: {
  176. dataHeight: 32,
  177. height: 48,
  178. hoverColor: (0, _colorManipulator.fade)(palette.textColor, 0.1),
  179. padding: spacing.desktopGutter,
  180. selectedTextColor: palette.accent1Color,
  181. rightIconDesktopFill: _colors.grey600
  182. },
  183. menuSubheader: {
  184. padding: spacing.desktopGutter,
  185. borderColor: palette.borderColor,
  186. textColor: palette.primary1Color
  187. },
  188. overlay: {
  189. backgroundColor: _colors.lightBlack
  190. },
  191. paper: {
  192. color: palette.textColor,
  193. backgroundColor: palette.canvasColor,
  194. zDepthShadows: [[1, 6, 0.12, 1, 4, 0.12], [3, 10, 0.16, 3, 10, 0.23], [10, 30, 0.19, 6, 10, 0.23], [14, 45, 0.25, 10, 18, 0.22], [19, 60, 0.30, 15, 20, 0.22]].map(function (d) {
  195. return '0 ' + d[0] + 'px ' + d[1] + 'px ' + (0, _colorManipulator.fade)(palette.shadowColor, d[2]) + ',\n 0 ' + d[3] + 'px ' + d[4] + 'px ' + (0, _colorManipulator.fade)(palette.shadowColor, d[5]);
  196. })
  197. },
  198. radioButton: {
  199. borderColor: palette.textColor,
  200. backgroundColor: palette.alternateTextColor,
  201. checkedColor: palette.primary1Color,
  202. requiredColor: palette.primary1Color,
  203. disabledColor: palette.disabledColor,
  204. size: 24,
  205. labelColor: palette.textColor,
  206. labelDisabledColor: palette.disabledColor
  207. },
  208. raisedButton: {
  209. color: palette.alternateTextColor,
  210. textColor: palette.textColor,
  211. primaryColor: palette.primary1Color,
  212. primaryTextColor: palette.alternateTextColor,
  213. secondaryColor: palette.accent1Color,
  214. secondaryTextColor: palette.alternateTextColor,
  215. disabledColor: (0, _colorManipulator.darken)(palette.alternateTextColor, 0.1),
  216. disabledTextColor: (0, _colorManipulator.fade)(palette.textColor, 0.3),
  217. fontSize: _typography2.default.fontStyleButtonFontSize,
  218. fontWeight: _typography2.default.fontWeightMedium
  219. },
  220. refreshIndicator: {
  221. strokeColor: palette.borderColor,
  222. loadingStrokeColor: palette.primary1Color
  223. },
  224. ripple: {
  225. color: (0, _colorManipulator.fade)(palette.textColor, 0.87)
  226. },
  227. slider: {
  228. trackSize: 2,
  229. trackColor: palette.primary3Color,
  230. trackColorSelected: palette.accent3Color,
  231. handleSize: 12,
  232. handleSizeDisabled: 8,
  233. handleSizeActive: 18,
  234. handleColorZero: palette.primary3Color,
  235. handleFillColor: palette.alternateTextColor,
  236. selectionColor: palette.primary1Color,
  237. rippleColor: palette.primary1Color
  238. },
  239. snackbar: {
  240. textColor: palette.alternateTextColor,
  241. backgroundColor: palette.textColor,
  242. actionColor: palette.accent1Color
  243. },
  244. subheader: {
  245. color: (0, _colorManipulator.fade)(palette.textColor, 0.54),
  246. fontWeight: _typography2.default.fontWeightMedium
  247. },
  248. stepper: {
  249. backgroundColor: 'transparent',
  250. hoverBackgroundColor: (0, _colorManipulator.fade)(_colors.black, 0.06),
  251. iconColor: palette.primary1Color,
  252. hoveredIconColor: _colors.grey700,
  253. inactiveIconColor: _colors.grey500,
  254. textColor: (0, _colorManipulator.fade)(_colors.black, 0.87),
  255. disabledTextColor: (0, _colorManipulator.fade)(_colors.black, 0.26),
  256. connectorLineColor: _colors.grey400
  257. },
  258. svgIcon: {
  259. color: palette.textColor
  260. },
  261. table: {
  262. backgroundColor: palette.canvasColor
  263. },
  264. tableFooter: {
  265. borderColor: palette.borderColor,
  266. textColor: palette.accent3Color
  267. },
  268. tableHeader: {
  269. borderColor: palette.borderColor
  270. },
  271. tableHeaderColumn: {
  272. textColor: palette.accent3Color,
  273. height: 56,
  274. spacing: 24
  275. },
  276. tableRow: {
  277. hoverColor: palette.accent2Color,
  278. stripeColor: (0, _colorManipulator.fade)((0, _colorManipulator.lighten)(palette.primary1Color, 0.5), 0.4),
  279. selectedColor: palette.borderColor,
  280. textColor: palette.textColor,
  281. borderColor: palette.borderColor,
  282. height: 48
  283. },
  284. tableRowColumn: {
  285. height: 48,
  286. spacing: 24
  287. },
  288. tabs: {
  289. backgroundColor: palette.primary1Color,
  290. textColor: (0, _colorManipulator.fade)(palette.alternateTextColor, 0.7),
  291. selectedTextColor: palette.alternateTextColor
  292. },
  293. textField: {
  294. textColor: palette.textColor,
  295. hintColor: palette.disabledColor,
  296. floatingLabelColor: palette.disabledColor,
  297. disabledTextColor: palette.disabledColor,
  298. errorColor: _colors.red500,
  299. focusColor: palette.primary1Color,
  300. backgroundColor: 'transparent',
  301. borderColor: palette.borderColor
  302. },
  303. timePicker: {
  304. color: palette.alternateTextColor,
  305. textColor: palette.alternateTextColor,
  306. accentColor: palette.primary1Color,
  307. clockColor: palette.textColor,
  308. clockCircleColor: palette.clockCircleColor,
  309. headerColor: palette.pickerHeaderColor || palette.primary1Color,
  310. selectColor: palette.primary2Color,
  311. selectTextColor: palette.alternateTextColor
  312. },
  313. toggle: {
  314. thumbOnColor: palette.primary1Color,
  315. thumbOffColor: palette.accent2Color,
  316. thumbDisabledColor: palette.borderColor,
  317. thumbRequiredColor: palette.primary1Color,
  318. trackOnColor: (0, _colorManipulator.fade)(palette.primary1Color, 0.5),
  319. trackOffColor: palette.primary3Color,
  320. trackDisabledColor: palette.primary3Color,
  321. labelColor: palette.textColor,
  322. labelDisabledColor: palette.disabledColor,
  323. trackRequiredColor: (0, _colorManipulator.fade)(palette.primary1Color, 0.5)
  324. },
  325. toolbar: {
  326. color: (0, _colorManipulator.fade)(palette.textColor, 0.54),
  327. hoverColor: (0, _colorManipulator.fade)(palette.textColor, 0.87),
  328. backgroundColor: (0, _colorManipulator.darken)(palette.accent2Color, 0.05),
  329. height: 56,
  330. titleFontSize: 20,
  331. iconColor: (0, _colorManipulator.fade)(palette.textColor, 0.4),
  332. separatorColor: (0, _colorManipulator.fade)(palette.textColor, 0.175),
  333. menuHoverColor: (0, _colorManipulator.fade)(palette.textColor, 0.1)
  334. },
  335. tooltip: {
  336. color: _colors.white,
  337. rippleBackgroundColor: _colors.grey700,
  338. opacity: 0.9
  339. }
  340. }, muiTheme, {
  341. baseTheme: baseTheme, // To provide backward compatibility.
  342. rawTheme: baseTheme // To provide backward compatibility.
  343. });
  344. var transformers = [_autoprefixer2.default, _rtl2.default, _callOnce2.default].map(function (t) {
  345. return t(muiTheme);
  346. }).filter(function (t) {
  347. return t;
  348. });
  349. muiTheme.prepareStyles = _compose2.default.apply(undefined, (0, _toConsumableArray3.default)(transformers));
  350. return muiTheme;
  351. }