React Native CSS Modules with variables and theme support
const upstreamTransformer = require('metro/src/reactNativeTransformer');
const uenoCssModulesTransformer = require('react-native-ueno-css-modules/transformer');
module.exports.transform = ({ src, filename, options }) => {
if (filename.endsWith('.css') || filename.endsWith('.styl') || filename.endsWith('.scss') || filename.endsWith('.sass') || filename.endsWith('.less')) {
return uenoCssModulesTransformer.transform({ src, filename, options });
}
return upstreamTransformer.transform({ src, filename, options });
};
import { setThemeVars, setVars } from 'react-native-ueno-css-modules';
setThemeVars('light', { '--background-color': 'orange' });
setVars({
'--hairline-width': StyleSheet.hairlineWidth,
'--mobx-value': [MobxStore, 'propertyName'],
});
import { setTheme } from 'react-native-ueno-css-modules';
setTheme('dark');
Refer to the classNames documentation
const styles = require('mystyle.css');
styles.foo;
styles({ foo: true });
styles('foo', 'bar', { baz: true });