I want to change a less variable on client side. Say I have a less file
@color1: #123456;
@color2: @color1 + #111111;
.title { color: @color1; }
.text { color: @color2; }
I want that user yo pick a color and change the value of @color1 and recompile css without reloading the page.
Basically I'm looking for a js function, something like this
less_again({color1: '#ff0000'})
Because less is a great tool to compile css in a programming way and css variable has the feature of dynamtic value and is a good way to switch theme. It's true that is less can't use css variables in less function.
CSS Variables to the Rescue CSS variables is a standard which enables you to have variables in CSS. SCSS is compiled to CSS during compile time, and SCSS variables are replaced with resolved value during compile time, which means there is no way to change the variable during run time.
LESS allows variables to be defined with an @ symbol.
Marvin, I wrote a function that does exactly what you're looking for, last night.
I have created a fork on Github; https://github.com/hbi99/less.js/commit/6508fe89a6210ae3cd8fffb8e998334644e7dcdc
Take a look at it. Since this is a recent addition, I'd like to hear your comments on the addition. This solution fits my needs perfectly and I think it will do the same for you.
Here is a basic sample;
@bgColor: black;
@textColor: yellow;
body {background: @bgColor; color: @textColor;}
less.modifyVars({
'@bgColor': 'blue',
'@textColor': 'red'
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With