-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Used color-mod() in CSS variable is not working #41
Comments
Any update on this? I'm having the same issue. |
Not really, this plugin is not going to be continued since the spec has been discontinued and there are other plugins we're maintaining. I'd be keen to review something that'd fix this but I'm not so sure we'll get to do this on our own |
Hi, Tried a few things, including Also noticed Finally fixed all by installing
import Color from 'color'
export default {
darken: (value, frac) => Color(value).darken(frac),
lighten: (value, frac) => Color(value).lighten(frac),
alpha:(value, frac) => Color(value).alpha(frac).hsl()
}
:root {
--myvar: #1BB749;
}
.test1 { color: darken(var(--myvar), 0.2); }
.test2 { color: alpha(var(--myvar), 0.75); } Output: .test1 {
color: #16923a;
}
.test2 {
color: #1bb749bf;
} Posted this in the hope it helps others find a quick fix to this |
@GeneralBaduar a quick question, is the var being set on another (imported) file? |
Yes, in my actual project I'm using a shared file imported with "postcss-custom-properties": {
preserve: false,
importFrom: "styles/definitions/variables.pcss",
}, |
Then this might not be the case, I've just found an issue which is rather serious: csstools/postcss-plugins#132 I've found that when combined with Releasing a bugfix asap |
Interesting find. Thank you for the update! |
@GeneralBaduar It has been released as 12.0.4, could you try in the event it solves the issue for you? |
Got version :root{
--color-red: red;
}
.test1{
color: color-mod(var(--color-red) a(50%));
} Previously it wouldn't convert, now it throws: Using an inline color works: --brand-red: color-mod(yellow blend(red 50%)); |
What version were you on for postcss? |
Version |
So checking this, it could be actually conflicting since the plugin is done in a way that tries to do part of the work that custom properties does and uses a library that we don't use anymore and very old. Are you testing using main branch or are you using 3.0.3? |
Using version |
Any progress? Same issue with |
@JackieCheung unfortunately no progress, this plugin is discontinued so the effort is put elsewhere. |
Anyone know what the most up-to-date, not-discontinued approach for shading/modifying a CSS var with PostCSS is? i.e. in a way that transforms the value for old browsers:
|
For devs coming from SCSS and switched over to PostCSS and seeing no progress here anymore, maybe it would good to check out the lighten/darken methods from scss, reuse them and live with that for now. But this seems out of scope of this plugin and not related to any specification. |
@HolisticPeanut You should totally just make a missing color functions plugin from people converting from SASS! I'm coming from SASS, and I definitely miss those color functions like blending and darken etc, etc. |
Consider this webpack example
webpack.config.js
postcss.config.js
file.css
Output is
Why color-mod() in
.test2
is not processed? I have correct plugins order where postcss-custom-properties firstly process variable and secondly postcss-color-mod-function should process color-mod() but it is not processed.The solution is only to use postcss-color-mod-function in webpack plugins section not in module.rules section but it have negative performance impact to process whole bundle with postcss-color-mod-function during watch or dev server with hot reload. So I would like it works in module.rules section as expected. Thanks.
The text was updated successfully, but these errors were encountered: