Skip to content
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

[Bug]: preset-advanced destroys counter-set name #1471

Open
scottbert opened this issue Mar 8, 2023 · 1 comment
Open

[Bug]: preset-advanced destroys counter-set name #1471

scottbert opened this issue Mar 8, 2023 · 1 comment
Labels

Comments

@scottbert
Copy link

Describe the bug

Using preset advanced, my css counter-set name gets minified away

Expected behaviour

Correct minification.

Steps to reproduce

In playground with Preset Advanced. https://cssnano.co/playground/#eyJpbnB1dCI6IlxuICAuY29oLWxpc3QtY29udGFpbmVyIHtcbiAgICBjb3VudGVyLXNldDogY3MtbmJyO1xuXG5cbiAgICAuY29oLWxpc3QtaXRlbSB7XG4gICAgICBjb3VudGVyLWluY3JlbWVudDogY3MtbmJyO1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBjb3VudGVyKGNzLW5iciwgZGVjaW1hbC1sZWFkaW5nLXplcm8pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4iLCJjb25maWciOiJjc3NuYW5vLXByZXNldC1hZHZhbmNlZCJ9

Version

latest

Preset

advanced

Environment

Not system specific.

Package details

+-- autoprefixer@10.4.13
| `-- postcss@8.4.21 deduped
+-- cssnano-preset-advanced@5.3.10
| +-- cssnano-preset-default@5.2.14
| | +-- css-declaration-sorter@6.3.1
| | | `-- postcss@8.4.21 deduped
| | +-- postcss-calc@8.2.4
| | | `-- postcss@8.4.21 deduped
| | +-- postcss-colormin@5.3.1
| | | `-- postcss@8.4.21 deduped
| | +-- postcss-convert-values@5.1.3
| | | `-- postcss@8.4.21 deduped
| | +-- postcss-discard-duplicates@5.1.0
| | | `-- postcss@8.4.21 deduped
| | +-- postcss-discard-overridden@5.1.0
| | | `-- postcss@8.4.21 deduped
| | +-- postcss-merge-longhand@5.1.7
| | | +-- postcss@8.4.21 deduped
| | | `-- stylehacks@5.1.1
| | |   `-- postcss@8.4.21 deduped
| | +-- postcss-merge-rules@5.1.4
| | | `-- postcss@8.4.21 deduped
| | +-- postcss-minify-font-values@5.1.0
| | | `-- postcss@8.4.21 deduped
| | +-- postcss-minify-gradients@5.1.1
| | | `-- postcss@8.4.21 deduped
| | +-- postcss-minify-params@5.1.4
| | | `-- postcss@8.4.21 deduped
| | +-- postcss-minify-selectors@5.2.1
| | | `-- postcss@8.4.21 deduped
| | +-- postcss-normalize-charset@5.1.0
| | | `-- postcss@8.4.21 deduped
| | +-- postcss-normalize-display-values@5.1.0
| | | `-- postcss@8.4.21 deduped
| | +-- postcss-normalize-positions@5.1.1
| | | `-- postcss@8.4.21 deduped
| | +-- postcss-normalize-repeat-style@5.1.1
| | | `-- postcss@8.4.21 deduped
| | +-- postcss-normalize-string@5.1.0
| | | `-- postcss@8.4.21 deduped
| | +-- postcss-normalize-timing-functions@5.1.0
| | | `-- postcss@8.4.21 deduped
| | +-- postcss-normalize-unicode@5.1.1
| | | `-- postcss@8.4.21 deduped
| | +-- postcss-normalize-url@5.1.0
| | | `-- postcss@8.4.21 deduped
| | +-- postcss-ordered-values@5.1.3
| | | `-- postcss@8.4.21 deduped
| | +-- postcss-reduce-initial@5.1.2
| | | `-- postcss@8.4.21 deduped
| | +-- postcss-reduce-transforms@5.1.0
| | | `-- postcss@8.4.21 deduped
| | +-- postcss-svgo@5.1.0
| | | `-- postcss@8.4.21 deduped
| | +-- postcss-unique-selectors@5.1.1
| | | `-- postcss@8.4.21 deduped
| | `-- postcss@8.4.21 deduped
| +-- postcss-discard-unused@5.1.0
| | `-- postcss@8.4.21 deduped
| +-- postcss-merge-idents@5.1.1
| | `-- postcss@8.4.21 deduped
| +-- postcss-reduce-idents@5.2.0
| | `-- postcss@8.4.21 deduped
| +-- postcss-zindex@5.1.0
| | `-- postcss@8.4.21 deduped
| `-- postcss@8.4.21 deduped
+-- cssnano-preset-lite@2.1.3
| +-- cssnano-utils@3.1.0
| | `-- postcss@8.4.21 deduped
| +-- postcss-discard-comments@5.1.2
| | `-- postcss@8.4.21 deduped
| +-- postcss-discard-empty@5.1.1
| | `-- postcss@8.4.21 deduped
| +-- postcss-normalize-whitespace@5.1.1
| | `-- postcss@8.4.21 deduped
| `-- postcss@8.4.21 deduped
+-- cssnano@5.1.15
| `-- postcss@8.4.21 deduped
+-- gulp-jsdoc3@3.0.0
| `-- ink-docstrap@1.3.2
|   `-- sanitize-html@1.27.5
|     `-- postcss@7.0.39
+-- gulp-postcss@9.0.1
| +-- postcss-load-config@3.1.4
| | `-- postcss@8.4.21 deduped
| `-- postcss@8.4.21 deduped
+-- gulp-sourcemaps@3.0.0
| `-- @gulp-sourcemaps/identity-map@2.0.1
|   `-- postcss@7.0.39
+-- postcss-assets@6.0.0
| +-- postcss-functions@4.0.2
| | `-- postcss@8.4.21 deduped
| `-- postcss@8.4.21 deduped
+-- postcss-combine-media-query@1.0.1
| `-- postcss@7.0.39
+-- postcss-import@15.1.0
| `-- postcss@8.4.21 deduped
+-- postcss-normalize@10.0.1
| +-- postcss-browser-comments@4.0.0
| | `-- postcss@8.4.21 deduped
| `-- postcss@8.4.21 deduped
+-- postcss-preset-env@8.0.1
| +-- @csstools/postcss-cascade-layers@3.0.1
| | `-- postcss@8.4.21 deduped
| +-- @csstools/postcss-color-function@2.1.0
| | `-- postcss@8.4.21 deduped
| +-- @csstools/postcss-font-format-keywords@2.0.2
| | `-- postcss@8.4.21 deduped
| +-- @csstools/postcss-hwb-function@2.1.1
| | `-- postcss@8.4.21 deduped
| +-- @csstools/postcss-ic-unit@2.0.2
| | `-- postcss@8.4.21 deduped
| +-- @csstools/postcss-is-pseudo-class@3.1.1
| | `-- postcss@8.4.21 deduped
| +-- @csstools/postcss-logical-float-and-clear@1.0.1
| | `-- postcss@8.4.21 deduped
| +-- @csstools/postcss-logical-resize@1.0.1
| | `-- postcss@8.4.21 deduped
| +-- @csstools/postcss-logical-viewport-units@1.0.2
| | `-- postcss@8.4.21 deduped
| +-- @csstools/postcss-media-queries-aspect-ratio-number-values@1.0.1
| | `-- postcss@8.4.21 deduped
| +-- @csstools/postcss-nested-calc@2.0.2
| | `-- postcss@8.4.21 deduped
| +-- @csstools/postcss-normalize-display-values@2.0.1
| | `-- postcss@8.4.21 deduped
| +-- @csstools/postcss-oklab-function@2.1.0
| | `-- postcss@8.4.21 deduped
| +-- @csstools/postcss-progressive-custom-properties@2.1.0
| | `-- postcss@8.4.21 deduped
| +-- @csstools/postcss-scope-pseudo-class@2.0.2
| | `-- postcss@8.4.21 deduped
| +-- @csstools/postcss-stepped-value-functions@2.1.0
| | `-- postcss@8.4.21 deduped
| +-- @csstools/postcss-text-decoration-shorthand@2.2.1
| | `-- postcss@8.4.21 deduped
| +-- @csstools/postcss-trigonometric-functions@2.0.1
| | `-- postcss@8.4.21 deduped
| +-- @csstools/postcss-unset-value@2.0.1
| | `-- postcss@8.4.21 deduped
| +-- css-blank-pseudo@5.0.2
| | `-- postcss@8.4.21 deduped
| +-- css-has-pseudo@5.0.2
| | `-- postcss@8.4.21 deduped
| +-- css-prefers-color-scheme@8.0.2
| | `-- postcss@8.4.21 deduped
| +-- postcss-attribute-case-insensitive@6.0.2
| | `-- postcss@8.4.21 deduped
| +-- postcss-clamp@4.1.0
| | `-- postcss@8.4.21 deduped
| +-- postcss-color-functional-notation@5.0.2
| | `-- postcss@8.4.21 deduped
| +-- postcss-color-hex-alpha@9.0.2
| | `-- postcss@8.4.21 deduped
| +-- postcss-color-rebeccapurple@8.0.2
| | `-- postcss@8.4.21 deduped
| +-- postcss-custom-media@9.1.2
| | `-- postcss@8.4.21 deduped
| +-- postcss-custom-properties@13.1.4
| | `-- postcss@8.4.21 deduped
| +-- postcss-custom-selectors@7.1.2
| | `-- postcss@8.4.21 deduped
| +-- postcss-dir-pseudo-class@7.0.2
| | `-- postcss@8.4.21 deduped
| +-- postcss-double-position-gradients@4.0.2
| | `-- postcss@8.4.21 deduped
| +-- postcss-focus-visible@8.0.2
| | `-- postcss@8.4.21 deduped
| +-- postcss-focus-within@7.0.2
| | `-- postcss@8.4.21 deduped
| +-- postcss-font-variant@5.0.0
| | `-- postcss@8.4.21 deduped
| +-- postcss-gap-properties@4.0.1
| | `-- postcss@8.4.21 deduped
| +-- postcss-image-set-function@5.0.2
| | `-- postcss@8.4.21 deduped
| +-- postcss-initial@4.0.1
| | `-- postcss@8.4.21 deduped
| +-- postcss-lab-function@5.1.0
| | `-- postcss@8.4.21 deduped
| +-- postcss-logical@6.1.0
| | `-- postcss@8.4.21 deduped
| +-- postcss-media-minmax@5.0.0
| | `-- postcss@8.4.21 deduped
| +-- postcss-nesting@11.2.1
| | `-- postcss@8.4.21 deduped
| +-- postcss-opacity-percentage@1.1.3
| | `-- postcss@8.4.21 deduped
| +-- postcss-overflow-shorthand@4.0.1
| | `-- postcss@8.4.21 deduped
| +-- postcss-page-break@3.0.4
| | `-- postcss@8.4.21 deduped
| +-- postcss-place@8.0.1
| | `-- postcss@8.4.21 deduped
| +-- postcss-pseudo-class-any-link@8.0.2
| | `-- postcss@8.4.21 deduped
| +-- postcss-replace-overflow-wrap@4.0.0
| | `-- postcss@8.4.21 deduped
| +-- postcss-selector-not@7.0.1
| | `-- postcss@8.4.21 deduped
| `-- postcss@8.4.21 deduped
+-- postcss-sort-media-queries@4.3.0
| `-- postcss@8.4.21 deduped
+-- postcss@8.4.21
+-- stylelint-config-recommended-scss@9.0.1
| +-- postcss-scss@4.0.6
| | `-- postcss@8.4.21 deduped
| `-- postcss@8.4.21 deduped
+-- stylelint-config-standard-scss@7.0.1
| `-- postcss@8.4.21 deduped
+-- stylelint-order@6.0.3
| +-- postcss-sorting@8.0.2
| | `-- postcss@8.4.21 deduped
| `-- postcss@8.4.21 deduped
`-- stylelint@15.2.0 invalid: ">= 11.x < 15" from node_modules/stylelint-config-prettier
  +-- @csstools/selector-specificity@2.1.1
  | `-- postcss@8.4.21 deduped
  +-- postcss-safe-parser@6.0.0
  | `-- postcss@8.4.21 deduped
  `-- postcss@8.4.21 deduped

Additional context

Reproducible in the playground using the following SASS:

  .coh-list-container {
    counter-set: cs-nbr;


    .coh-list-item {
      counter-increment: cs-nbr;

      &::before {
        content: counter(cs-nbr, decimal-leading-zero);
      }
    }
  }

Which, using the default preset, gets turned into:

.coh-list-container{counter-set:cs-nbr;.coh-list-item{counter-increment:cs-nbr;&:before{content:counter(cs-nbr,decimal-leading-zero)}}}

But using the advanced preset gets turned into:

.coh-list-container{counter-set:cs-nbr;.coh-list-item{counter-increment:a;&:before{content:counter(a,decimal-leading-zero)}}}
@ludofischer ludofischer changed the title [Bug]: [Bug]: preset-advanced destroys counter-set name Mar 19, 2023
@ludofischer
Copy link
Collaborator

ludofischer commented Mar 19, 2023

Confirmed. It's probably postcss-reduce-idents which act inconsistently. For reference the input is:

  .coh-list-container {
    counter-set: cs-nbr;


    .coh-list-item {
      counter-increment: cs-nbr;

      &::before {
        content: counter(cs-nbr, decimal-leading-zero);
      }
    }
  }

The incorrect output is:

.coh-list-container{counter-set:cs-nbr;.coh-list-item{counter-increment:a;&:before{content:counter(a,decimal-leading-zero)}}}

The last two occurrences get minified to a but the first one remains cs-nbr.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants