Skip to content

Leadership1 publisherNot yet confirmed elsewhere2 min readPublished

eslint-plugin-unicorn 77 moves 11 CSS rules into a package that requires ESLint 10.4 and ESM

eslint-plugin-unicorn 77 moves 11 CSS rules to eslint-cssicorn and removes its deprecated flat configs. Keeping those checks after the upgrade means adopting a version 0.1 package with its own ESLint and ESM requirements that does not accept pull requests.

The Board Room · Leadership desk

How we use AISend a correction

What happened

  • Configs that used the removed flat/recommended or flat/all presets are told to switch to the recommended and all presets.
  • Some moved rules lose 'css' from their names as well, so unicorn/no-duplicate-css-selectors becomes cssicorn/no-duplicate-selectors.
  • Version 77 also adds new rules, among them no-javascript-url, no-loss-of-precision and indent.
  • eslint-disable comments now suppress a rule's reports, where before they made the rule skip the code and the directive could look unused.

Compiled by The Board RoomSomething wrong?How this is made

Why it matters

  • decision Teams that relied on the CSS rules now have to choose between adopting cssicorn and letting those 11 checks lapse when they upgrade.
  • exposure Teams that adopt cssicorn depend on rules they cannot patch upstream by pull request, so a false positive waits on the maintainers or gets switched off in the team's own config.
  • cost The upgrade takes two rounds of work: config edits first, then code fixes for whatever the changed recommended preset now flags.

Every change here ships in version 77.0.0 [2], so the break arrives when a team chooses to install it. The work comes in two sizes. The config fix is a rename of two preset names [4]. Of the 11 CSS rules that left the plugin [14], seven change only their prefix, from unicorn/ to cssicorn/ [15]. The other four also drop "css" from the rule name. A search-and-replace on the prefix alone leaves those four pointing at names eslint-cssicorn does not use [15][3].

The larger cost sits in the new package's install line. eslint-cssicorn runs through the @eslint/css language plugin, which goes in next to it as a dev dependency [9]. Its README lists ESLint 10.4 or later, flat config and ESM as requirements [10]. Its presets cover `**/*.css` files and set up the language plugin themselves [11]. For a team already on that stack, the case for calling version 77 routine holds: two packages and a preset. A team on an older ESLint, or with a config that is not ESM, has to finish that migration before it can run version 77 and its CSS checks at once.

A team that lets the CSS rules go at the upgrade keeps some coverage. The cssicorn README says unicorn still has rules that lint CSS, naming no-zero-fractions and no-shorthand-property-overrides [1]. Version 77 also adds a recommended-css preset, one of six new presets for languages other than JavaScript [5].

The new package is young, and it does not take outside code. It is at version 0.1 [13], and its README states: "We do not accept pull requests because of too much AI slop." [12]

The recommended preset also changes for teams that make every edit. The rule number-literal-case moves into it from the unopinionated preset, and no-asterisk-prefix-in-documentation-comments, which now also covers CSS and JSON, is enabled in it [7]. The release notes list 28 new rules [16] without saying which of them recommended turns on.

What to watch

  • A cssicorn release past 0.1, or any change to the README's policy on pull requests.
  • Unicorn documentation stating which of the 28 new rules the recommended preset enables.
  • Other rule families leaving unicorn for standalone packages, as the CSS rules did with eslint-cssicorn.

Clarity's read

What the record supports and how the coverage leans. The claims behind it follow.

Reality

Evidence85
Adoption
Insufficient
Hype gap+5
Incentives
Insufficient
Confidence80
Why these scores

Claim ledger

Ranked by verification strength, evidence, and original report placement.

  1. [1]

    The eslint-cssicorn README says eslint-plugin-unicorn has more rules that also lint CSS, such as no-zero-fractions and no-shorthand-property-overrides, and describes unicorn as having more than 300 rules.

    ReportedSupportedSource: eslint-cssicorn README2 sources— create a free account to open themView cited source
  2. [2]

    eslint-plugin-unicorn published release v77.0.0, which lists under 'Breaking' the move of CSS-only rules to the eslint-cssicorn package (#3811).

    ReportedSupportedSource: eslint-plugin-unicorn v77.0.0 release notesView cited source
  3. [3]

    Moved rules: unicorn/no-deprecated-css-features to cssicorn/no-deprecated-features; unicorn/no-duplicate-css-selectors to cssicorn/no-duplicate-selectors; unicorn/no-duplicate-font-family-names to cssicorn/no-duplicate-font-family-names; unicorn/no-invalid-media-features to cssicorn/no-invalid-media-features; unicorn/no-nesting-with-mixed-specificity to cssicorn/no-nesting-with-mixed-specificity; unicorn/no-redundant-nested-style-rules to cssicorn/no-redundant-nested-style-rules; unicorn/no-unknown-css-annotations to cssicorn/no-unknown-annotations; unicorn/no-unknown-pseudo-selectors to cssicorn/no-unknown-pseudo-selectors; unicorn/no-unscoped-css-nesting-selector to cssicorn/no-unscoped-nesting-selector; unicorn/prefer-explicit-viewport-units to cssicorn/prefer-explicit-viewport-units; unicorn/prefer-media-feature-range-syntax to cssicorn/prefer-media-feature-range-syntax.

    ReportedSupportedSource: eslint-plugin-unicorn v77.0.0 release notesView cited source

Sources

1 independent publisher whose own reporting we read for this story.

  1. github.com

    2 articles · October 6, 2026

    eslint-plugin-unicorn

Share your take

Let Clarity write the post for you.

Signed-in readers get a short post drafted on this story in the register they choose — narrative, analytical, or a direct position — editable to the last word before it goes anywhere. The share buttons at the top of this story work without an account.

Topics and entities

Follow any of these and your For You feed starts watching them — no settings page required.

Topics

Entities

Loading related stories