123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- // @flow
-
- import { createMuiTheme } from '@material-ui/core/styles';
-
- import { createColorTokens } from './utils';
-
- /**
- * Creates a MUI theme based on local UI tokens.
- *
- * @param {Object} arg - The ui tokens.
- * @returns {Object}
- */
- export function createWebTheme({ font, colors, colorMap, shape, spacing, typography }: Object) {
- return createMuiTheme({
- props: {
- // disable ripple effect on buttons globally
- MuiButtonBase: {
- disableRipple: true
- }
- },
-
- // use token spacing array
- spacing
- }, {
- palette: createColorTokens(colorMap, colors),
- shape,
- typography: {
- font,
- ...typography
- }
- });
- }
-
- /**
- * Formats the common styles object to be interpreted as proper CSS.
- *
- * @param {Object} stylesObj - The styles object.
- * @returns {Object}
- */
- export function formatCommonClasses(stylesObj: Object) {
- const formatted = {};
-
- for (const [ key, value ] of Object.entries(stylesObj)) {
- formatted[`.${key}`] = value;
- }
-
- return formatted;
- }
|