csstools / postcss-extend-rule

Use the @extend at-rule and functional selectors in CSS
https://jonathantneal.github.io/postcss-extend-rule/
Creative Commons Zero v1.0 Universal
51 stars 7 forks source link

⚠️ Unmaintained #16

Open Antonio-Laguna opened 2 years ago

Antonio-Laguna commented 2 years ago

This is just a notice that this plugin is mostly unmaintained. This means that there's no one actively developing new features or fixes for it.

While I see this plugin is popular I just want to acknowledge the situation so it's clear up front. That said, I'm happy to review pull requests that address any bug and do all of the publish process moving forward however as my time (and other's) is limited, we're mostly focusing on plugins under https://github.com/csstools/postcss-plugins

Thank you for your understanding

openmindculture commented 1 year ago

Thanks for pointing out! I just learned from a colleague that extends are "somehow de-facto deprecated" although wecould not find any authoritative source for that. Anyway, as I failed to use the postcss-extend-rule in a new project in 2023, I found postcss-mixins to be a practical alternative. But thanks for your work and maintenance so far!

wesleyboar commented 1 year ago

@openmindculture, I looked at postcss-mixins as a replacement, but a mere install + find-replace seems inadequate to begin using it. How did you transition to postcss-mixins? Do you find the overhead acceptable compared to @extend?

openmindculture commented 1 year ago

@wesleyboar I didn't use much of it, but I found it worked better for me than extend. I can't remember the precise reason, but there must have been some problem or inconvenience. Only syntax I have been using so far:

@define-mixin typography-heading-h1 $className {
  $(className) {
    font-size: var(--font-size-40);
    @mixin-content;
  }
}

@mixin typography-heading-h1 .example__headline {
  color: green;
}
wesleyboar commented 1 year ago

Thank you. Yup, that's all I would need to do with it. It's verbose, but at least its official and not near as outdated.

I also looked at postcss-nested-import, but it would require a file for every import, and postcss-css-modules, but it would not allow tag selectors nor complex selectors.

romainmenke commented 8 months ago

Having gone over both the speculative specification and the implementation in this plugin I think this feature is a bit problematic in the current state of CSS.

This feature was a lot less complex before nesting and before @container, @scope, @layer, ...

I don't think something like this will ever become a native feature and I also don't think it is pure/powerful enough as meta programming.

I think we will deprecate this plugin if we encounter serious issues in the future.