css-runtime-theme

1.0.2 • Public • Published

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'
})

Readme

Keywords

Package Sidebar

Install

npm i css-runtime-theme

Weekly Downloads

2

Version

1.0.2

License

ISC

Unpacked Size

35.3 kB

Total Files

9

Last publish

Collaborators

  • mzohaibqc