UNPKG

@ysmood/material-ui

Version:

Material Design UI components built with React

42 lines (32 loc) 1.08 kB
var Spacing = require('./spacing'); var Extend = require('../utils/extend'); var Types = { LIGHT: require('./themes/light-theme'), DARK: require('./themes/dark-theme') }; var ThemeManager = function() { return { types: Types, template: Types.LIGHT, spacing: Spacing, contentFontFamily: 'Roboto, sans-serif', palette: Types.LIGHT.getPalette(), component: Types.LIGHT.getComponentThemes(Types.LIGHT.getPalette()), getCurrentTheme: function() { return this; }, // Component gets updated to reflect palette changes. setTheme: function(newTheme) { this.setPalette(newTheme.getPalette()); this.setComponentThemes(newTheme.getComponentThemes(newTheme.getPalette())); }, setPalette: function(newPalette) { this.palette = Extend(this.palette, newPalette); this.component = Extend(this.component, this.template.getComponentThemes(this.palette)); }, setComponentThemes: function(overrides) { this.component = Extend(this.component, overrides); } }; }; module.exports = ThemeManager;