less.js
less.js copied to clipboard
Lazy variables of css custom properties with less functions (even if it's overwritten) will break building
To simplify the issue, let's assume a third-party-library which contains:
// `library/style.less`
@base-color: green;
@dark-color: darken(@base-color, 50%);
.some-class {
color: @base-color;
backgroundColor: @dark-color;
}
And my app would like to override the colors to css custom properties:
// app.less
import "~library/style.less";
@base-color: var(--primary-color);
@dark-color: var(--bg-color);
:root {
--primary-color: #fff;
--bg-color: #000;
}
html[data-theme="dark"] {
--primary-color: #000;
--bg-color: #fff;
}
In which I want to override both the @base-color
and @dark-color
less variables. However, the less will fail with LessError: error evaluating function `darken`: Argument cannot be evaluated to a color
, even if the @dark-color
in library is actually overridden in my app, and no darken()
function should be called.
Same issue in my project.
IMO the darken()
should not been called since its already overridden.
+1
+1
Same issue, any news ? I also posted a question on stack overflow but no solution nor workaround yet.
same issue
Sorry for slow response, I will investgate this issue. 🕵️
same issue
same issue
I'm having a similar issue: https://github.com/less/less.js/issues/3611#issuecomment-1172325438
Looks like https://github.com/less/less.js/pull/3721