1.0.2 • Published 6 years ago

css-runtime-theme v1.0.2

Weekly downloads
3
License
ISC
Repository
github
Last release
6 years ago

css-runtime-theme

This script allows you to generate a less file color.less which you can import in your index.html file and then you can change color specific theme on runtime in browser without any new build.

const options = {
    source: path.join(__dirname, './src/index.css'), // File or css string,
    variables: {
        '@color1': '#cccccc', // must add @ sign 
        '@color2': '#343312'
    },
    stylesDir: path.join(__dirname, './src'), // if your styles are in multiple files, specifiy the directory
    output: path.join(__dirname, './dist/color.less'), // output file path, filename should have .less extension and folder should be there, omit if you don't want to create file, it will return generated less
    withoutGrey: false, // set to true to remove rules that only have grey colors
    withoutMonochrome: false, // set to true to remove rules that only have grey, black, or white colors
};

generateTheme(options).then(less => {
  console.log('Theme generated successfully');
})
.catch(error => {
  console.log('Error', error);
});

Add following lines in your main html file

<link rel="stylesheet/less" type="text/css" href="/color.less" />
<script>
  window.less = {
    async: false,
    env: 'production'
  };
</script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/less.js/2.7.2/less.min.js"></script>

Now you can update colors by updating less avriables like this

window.less.modifyVars({
  '@primary-color': '#0035ff'
})