@indoqa/style-system
Version:
A style system for React with Typescript typed theme support and several base components.
33 lines • 1.31 kB
JavaScript
import monolithic from 'fela-monolithic';
import namedKeys from 'fela-plugin-named-keys';
import validator from 'fela-plugin-validator';
import webPreset from 'fela-preset-web';
import sortMediaQueryMobileFirst from 'fela-sort-media-query-mobile-first';
import { baseTheme } from '../theming/baseTheme';
import { toMediaQueryMap } from '../theming/mediaQueryHelper';
function createNamedKeys(breakpoints) {
return namedKeys({
...toMediaQueryMap(breakpoints),
print: '@media print',
});
}
export function createFelaConfig(breakpoints = baseTheme.breakpoints, filterClassName, selectorPrefix, disableDevMode) {
const config = {
plugins: [...webPreset, createNamedKeys(breakpoints)],
enhancers: [sortMediaQueryMobileFirst()],
devMode: false,
};
if (process.env.NODE_ENV === 'development' && !disableDevMode) {
config.plugins = [...webPreset, createNamedKeys(breakpoints), validator()];
config.enhancers = [monolithic({ prettySelectors: true }), sortMediaQueryMobileFirst()];
config.devMode = true;
}
if (selectorPrefix) {
config.selectorPrefix = selectorPrefix;
}
if (filterClassName) {
config.filterClassName = filterClassName;
}
return config;
}
//# sourceMappingURL=createFelaConfig.js.map