less / less.js

Less. The dynamic stylesheet language.
http://lesscss.org
Apache License 2.0
17.02k stars 3.41k forks source link

Lazy variables of css custom properties with less functions (even if it's overwritten) will break building #3563

Open weareoutman opened 3 years ago

weareoutman commented 3 years ago

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.

kpaxqin commented 3 years ago

Same issue in my project.

IMO the darken() should not been called since its already overridden.

srfaytkn commented 3 years ago

+1

FengShangWuQi commented 3 years ago

+1

lucataglia commented 3 years ago

Same issue, any news ? I also posted a question on stack overflow but no solution nor workaround yet.

da-anda commented 3 years ago

same issue

iChenLei commented 3 years ago

Sorry for slow response, I will investgate this issue. 🕵️

snoweastcn commented 3 years ago

same issue

tusharrathi1993 commented 2 years ago

same issue

crossan007 commented 2 years ago

I'm having a similar issue: https://github.com/less/less.js/issues/3611#issuecomment-1172325438

crossan007 commented 2 years ago

Looks like https://github.com/less/less.js/pull/3721

imaliouris commented 1 month ago

Looks like https://github.com/less/less.js/issues/4275. Do we have any update this? It really blocks much of our work..