material-ui
Version:
Material Design UI components built with React
253 lines (239 loc) • 7.99 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = getMuiTheme;
var _lodash = require('lodash.merge');
var _lodash2 = _interopRequireDefault(_lodash);
var _colors = require('./colors');
var _colors2 = _interopRequireDefault(_colors);
var _colorManipulator = require('../utils/color-manipulator');
var _colorManipulator2 = _interopRequireDefault(_colorManipulator);
var _lightBaseTheme = require('./baseThemes/lightBaseTheme');
var _lightBaseTheme2 = _interopRequireDefault(_lightBaseTheme);
var _zIndex = require('./zIndex');
var _zIndex2 = _interopRequireDefault(_zIndex);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Get the MUI theme corresponding to a base theme.
* It's possible to override the computed theme values
* by providing a second argument. The calculated
* theme will be deeply merged with the second argument.
*/
function getMuiTheme(baseTheme, muiTheme) {
baseTheme = (0, _lodash2.default)({}, _lightBaseTheme2.default, baseTheme);
var _baseTheme = baseTheme;
var palette = _baseTheme.palette;
var spacing = _baseTheme.spacing;
return (0, _lodash2.default)({
isRtl: false,
zIndex: _zIndex2.default,
baseTheme: baseTheme,
rawTheme: baseTheme, // To provide backward compatibility.
appBar: {
color: palette.primary1Color,
textColor: palette.alternateTextColor,
height: spacing.desktopKeylineIncrement
},
avatar: {
borderColor: 'rgba(0, 0, 0, 0.08)'
},
badge: {
color: palette.alternateTextColor,
textColor: palette.textColor,
primaryColor: palette.accent1Color,
primaryTextColor: palette.alternateTextColor,
secondaryColor: palette.primary1Color,
secondaryTextColor: palette.alternateTextColor
},
button: {
height: 36,
minWidth: 88,
iconButtonSize: spacing.iconSize * 2
},
cardText: {
textColor: palette.textColor
},
checkbox: {
boxColor: palette.textColor,
checkedColor: palette.primary1Color,
requiredColor: palette.primary1Color,
disabledColor: palette.disabledColor,
labelColor: palette.textColor,
labelDisabledColor: palette.disabledColor
},
datePicker: {
color: palette.primary1Color,
textColor: palette.alternateTextColor,
calendarTextColor: palette.textColor,
selectColor: palette.primary2Color,
selectTextColor: palette.alternateTextColor
},
dropDownMenu: {
accentColor: palette.borderColor
},
flatButton: {
color: _colors2.default.transparent,
buttonFilterColor: '#999999',
disabledTextColor: _colorManipulator2.default.fade(palette.textColor, 0.3),
textColor: palette.textColor,
primaryTextColor: palette.accent1Color,
secondaryTextColor: palette.primary1Color
},
floatingActionButton: {
buttonSize: 56,
miniSize: 40,
color: palette.accent1Color,
iconColor: palette.alternateTextColor,
secondaryColor: palette.primary1Color,
secondaryIconColor: palette.alternateTextColor,
disabledTextColor: palette.disabledColor
},
gridTile: {
textColor: _colors2.default.white
},
inkBar: {
backgroundColor: palette.accent1Color
},
leftNav: {
width: spacing.desktopKeylineIncrement * 4,
color: palette.canvasColor
},
listItem: {
nestedLevelDepth: 18
},
menu: {
backgroundColor: palette.canvasColor,
containerBackgroundColor: palette.canvasColor
},
menuItem: {
dataHeight: 32,
height: 48,
hoverColor: 'rgba(0, 0, 0, .035)',
padding: spacing.desktopGutter,
selectedTextColor: palette.accent1Color
},
menuSubheader: {
padding: spacing.desktopGutter,
borderColor: palette.borderColor,
textColor: palette.primary1Color
},
paper: {
backgroundColor: palette.canvasColor
},
radioButton: {
borderColor: palette.textColor,
backgroundColor: palette.alternateTextColor,
checkedColor: palette.primary1Color,
requiredColor: palette.primary1Color,
disabledColor: palette.disabledColor,
size: 24,
labelColor: palette.textColor,
labelDisabledColor: palette.disabledColor
},
raisedButton: {
color: palette.alternateTextColor,
textColor: palette.textColor,
primaryColor: palette.accent1Color,
primaryTextColor: palette.alternateTextColor,
secondaryColor: palette.primary1Color,
secondaryTextColor: palette.alternateTextColor,
disabledColor: _colorManipulator2.default.darken(palette.alternateTextColor, 0.1),
disabledTextColor: _colorManipulator2.default.fade(palette.textColor, 0.3)
},
refreshIndicator: {
strokeColor: palette.borderColor,
loadingStrokeColor: palette.primary1Color
},
slider: {
trackSize: 2,
trackColor: palette.primary3Color,
trackColorSelected: palette.accent3Color,
handleSize: 12,
handleSizeDisabled: 8,
handleSizeActive: 18,
handleColorZero: palette.primary3Color,
handleFillColor: palette.alternateTextColor,
selectionColor: palette.primary1Color,
rippleColor: palette.primary1Color
},
snackbar: {
textColor: palette.alternateTextColor,
backgroundColor: palette.textColor,
actionColor: palette.accent1Color
},
table: {
backgroundColor: palette.canvasColor
},
tableHeader: {
borderColor: palette.borderColor
},
tableHeaderColumn: {
textColor: palette.accent3Color,
height: 56,
spacing: 24
},
tableFooter: {
borderColor: palette.borderColor,
textColor: palette.accent3Color
},
tableRow: {
hoverColor: palette.accent2Color,
stripeColor: _colorManipulator2.default.lighten(palette.primary1Color, 0.55),
selectedColor: palette.borderColor,
textColor: palette.textColor,
borderColor: palette.borderColor,
height: 48
},
tableRowColumn: {
height: 48,
spacing: 24
},
timePicker: {
color: palette.alternateTextColor,
textColor: palette.accent3Color,
accentColor: palette.primary1Color,
clockColor: palette.textColor,
clockCircleColor: palette.clockCircleColor,
headerColor: palette.pickerHeaderColor || palette.primary1Color,
selectColor: palette.primary2Color,
selectTextColor: palette.alternateTextColor
},
toggle: {
thumbOnColor: palette.primary1Color,
thumbOffColor: palette.accent2Color,
thumbDisabledColor: palette.borderColor,
thumbRequiredColor: palette.primary1Color,
trackOnColor: _colorManipulator2.default.fade(palette.primary1Color, 0.5),
trackOffColor: palette.primary3Color,
trackDisabledColor: palette.primary3Color,
labelColor: palette.textColor,
labelDisabledColor: palette.disabledColor,
trackRequiredColor: _colorManipulator2.default.fade(palette.primary1Color, 0.5)
},
toolbar: {
backgroundColor: _colorManipulator2.default.darken(palette.accent2Color, 0.05),
height: 56,
titleFontSize: 20,
iconColor: 'rgba(0, 0, 0, .40)',
separatorColor: 'rgba(0, 0, 0, .175)',
menuHoverColor: 'rgba(0, 0, 0, .10)'
},
tabs: {
backgroundColor: palette.primary1Color,
textColor: _colorManipulator2.default.fade(palette.alternateTextColor, 0.6),
selectedTextColor: palette.alternateTextColor
},
textField: {
textColor: palette.textColor,
hintColor: palette.disabledColor,
floatingLabelColor: palette.textColor,
disabledTextColor: palette.disabledColor,
errorColor: _colors2.default.red500,
focusColor: palette.primary1Color,
backgroundColor: 'transparent',
borderColor: palette.borderColor
}
}, muiTheme);
}
module.exports = exports['default'];