Skip to content

Releases: mizdra/css-modules-kit

Release 2026-02-23T13:25Z

23 Feb 13:25
Immutable release. Only release title and notes can be modified.
6b82694

Choose a tag to compare

@css-modules-kit/codegen@0.10.0

Patch Changes

@css-modules-kit/core@0.10.0

Patch Changes

@css-modules-kit/eslint-plugin@0.10.0

Patch Changes

@css-modules-kit/stylelint-plugin@0.10.0

Minor Changes

Patch Changes

@css-modules-kit/ts-plugin@0.10.0

Patch Changes

  • #337 b857cc8 - docs(ts-plugin): improve Neovim/Emacs setup guide in README

  • #343 727f295 - chore: migrate from ESLint to oxlint

  • #341 70660f4 - chore: migrate from Prettier to oxfmt

  • Updated dependencies [727f295, 70660f4]:

    • @css-modules-kit/core@0.10.0

css-modules-kit-vscode@0.10.0

Patch Changes

Release 2026-02-07T14:32Z

07 Feb 14:32
Immutable release. Only release title and notes can be modified.
634fa56

Choose a tag to compare

Notable Changes

Support non-JavaScript identifier token in default export (#330)

Previously, CSS Modules Kit did not allow tokens with names that were invalid as JavaScript identifiers. For example, class selectors containing hyphens, such as .a-1 {...}, could not be used.

Starting with this version, this is now permitted only when cmkOptions.namedExports is set to false. You can reference class selectors with hyphens, like styles['a-1'].

However, note that these tokens remain disallowed when cmkOptions.namedExports is set to true. Additionally, case conversion is not supported (meaning .foo-bar {...} will not be exported as fooBar). We hope to relax these restrictions in the future, though the technical feasibility remains unclear.

@apple-yagi created a proof of concept in #309 and #320, demonstrating that this feature is feasible. He also provided key ideas for implementing this feature, specifically the concept of multiple mapping objects, alongside me (ref: #309 (comment)). Thank you!

Ignore node_modules and .git directories in watch mode (#335)

We fixed an issue where node_modules and .git were watched in watch mode, causing EMFILE errors.

@css-modules-kit/codegen@0.9.0

Patch Changes

  • #335 01e89eb - fix(codegen): ignore node_modules and .git directories in watch mode to prevent EMFILE errors

  • Updated dependencies [d89f583, 9b9aeae, 9ca81da, 61f228a]:

    • @css-modules-kit/core@0.9.0

@css-modules-kit/core@0.9.0

Minor Changes

  • #330 d89f583 - feat(core, ts-plugin): support non-JavaScript identifier token in default export

Patch Changes

  • #333 9b9aeae - fix(core): use matchAll instead of exec in findUsedTokenNames to avoid potential lastIndex state issues

  • #334 9ca81da - fix(core): support styles['foo'] and styles["foo"] bracket notation in findUsedTokenNames

  • #326 61f228a - fix(core): fix the incorrect position of the diagnostics for the escaped class selectors

@css-modules-kit/eslint-plugin@0.9.0

Patch Changes

@css-modules-kit/stylelint-plugin@0.9.0

Patch Changes

@css-modules-kit/ts-plugin@0.9.0

Minor Changes

  • #330 d89f583 - feat(core, ts-plugin): support non-JavaScript identifier token in default export

Patch Changes

css-modules-kit-vscode@0.9.0

Patch Changes

  • Updated dependencies [d89f583, 6115ee6]:
    • @css-modules-kit/ts-plugin@0.9.0

Release 2026-01-25T10:42Z

25 Jan 10:42
Immutable release. Only release title and notes can be modified.
ba39c97

Choose a tag to compare

Notable Changes

The package versioning rules are changed (#318)

We have changed the package versioning rules. Previously, only packages that had changes were bumped. However, going forward, if any of core, codegen, ts-plugin, stylelint-plugin, or eslint-plugin has changes, all of them will be bumped. Additionally, they will be released with the same version number.

For the detailed background, see #318.

@css-modules-kit/codegen@0.8.1

Patch Changes

@css-modules-kit/core@0.8.1

Patch Changes

  • #306 61cb7a5 - chore: disable complexity and max-params ESLint rules

  • #311 df01b95 - fix(core): fix the issue where *.css import resolution fails

  • #317 707df0c - fix(core): remove unnecessary mappings

  • #318 ece6603 - chore: synchronize versions across all packages (except zed)

@css-modules-kit/eslint-plugin@0.8.1

Patch Changes

@css-modules-kit/stylelint-plugin@0.8.1

Patch Changes

@css-modules-kit/ts-plugin@0.8.1

Patch Changes

css-modules-kit-vscode@0.8.1

Patch Changes

  • #318 ece6603 - chore: synchronize versions across all packages (except zed)

  • Updated dependencies [61cb7a5, f5a008a, ece6603]:

    • @css-modules-kit/ts-plugin@0.8.1

Release 2026-01-13T01:47Z

13 Jan 01:47
Immutable release. Only release title and notes can be modified.
a998b29

Choose a tag to compare

Notable Changes

Add --preserveWatchOutput option (#288)

An option has been added to prevent the terminal from being cleared each time a file change is detected in watch mode.

Change how to resolve specifiers (#296, #298 #297)

The resolution method for specifiers in @import '<specifier>' and @value ... from '<specifier>' has been modified. For detailed information, please refer to issues #296, #298, and #297.

As a result, @import statements that previously did not produce errors may now generate the diagnostic message "Cannot import module". To avoid this issue, please refer to the instructions in the "Limitations" section.

Prevent tsserver from crashing when adding new files (#305)

Previously, tsserver would crash when new files were added. This issue affected projects not using CSS Modules as well, meaning many users may have experienced this problem.

This issue has been resolved in #305.

Add cmkOptions.enabled (#290, #299)

Currently, the language features of ts-plugin are enabled automatically. This means they are enabled in all TypeScript projects. Consequently, Code Actions for CSS Modules appear in projects not using CSS Modules Kit, such as the following:

Image

This can be annoying for some users.

We have now added the cmkOptions.enabled configuration option, which allows disabling both the ts-plugin and codegen. When cmkOptions.enabled is omitted, codegen will issue a warning.

Currently, omitting cmkOptions.enabled still enables both the ts-plugin and codegen, but this behavior may change in the future, requiring explicit setting to true for functionality to continue.

@css-modules-kit/codegen@0.8.0

Minor Changes

  • #288 89f11a5 - feat: add --preserveWatchOutput option

  • #290 d75f75f - feat: exit with error when cmkOptions.enabled is false

  • #302 32ecdc2 - feat!: include types in .d.ts files for unresolved or unmatched module imports

  • #290 d75f75f - feat: warn when cmkOptions.enabled is not set

  • #286 352f53c - chore: migrate from CJS to ESM

Patch Changes

@css-modules-kit/core@0.8.0

Minor Changes

  • #296 b5cdd4a - feat!: remove unused isAbsolute

  • #302 32ecdc2 - feat!: include types in .d.ts files for unresolved or unmatched module imports

  • #295 4318015 - refactor: consolidate checkCSSModule arguments into CheckerArgs

  • #286 352f53c - chore: migrate from CJS to ESM

Patch Changes

  • #297 673b45a - fix: prevent URL specifiers from being resolved by import aliases

  • #298 92d7918 - fix: fix .d.ts generation regression from #296

  • #303 0128985 - fix: prevent styles from becoming any type when importing unresolvable or unmatched modules

  • #296 b5cdd4a - fix: report "Cannot import module" diagnostic for unresolvable bare specifiers

  • #296 b5cdd4a - fix: return undefined for non-existent CSS module paths in resolver

@css-modules-kit/eslint-plugin@0.4.0

Minor Changes

Patch Changes

@css-modules-kit/stylelint-plugin@0.5.0

Minor Changes

Patch Changes

@css-modules-kit/ts-plugin@0.8.0

Minor Changes

  • #299 4c604fe - feat: disable ts-plugin if cmkConfig.enabled is false

  • #286 352f53c - chore: migrate modules other than entry points from CJS to ESM

  • #302 32ecdc2 - feat!: include types in .d.ts files for unresolved or unmatched module imports

Patch Changes

Read more

Release 2025-12-21T09:41Z

21 Dec 09:41
Immutable release. Only release title and notes can be modified.
0bf647b

Choose a tag to compare

Notable Changes

Watch Mode coming to cmk command (#278)

Previously, the cmk command lacked a watch mode feature. As a result, during development, the contents of *.module.css.d.ts files could become outdated.

This typically isn't problematic because tsserver performs type checking based on *.module.css content rather than *.module.css.d.ts. However, tools like the ESLint Language Server perform type checking based on *.module.css.d.ts. Consequently, this leads to inconsistent type checking results between ESLint Language Server and tsserver, which can confuse users.

To address this issue, we have added a watch mode feature to the cmk command, available via cmk --watch. In watch mode, the tool watches changes to *.module.css files and automatically generates corresponding *.module.css.d.ts files whenever changes are detected.

2025-12-21.19.26.32.mov

Enable cmkOptions completion in tsconfig.json for VS Code (#277)

cmkOptions is now supported for completion. Thanks to @Gehbt for implementing this feature!

image

@css-modules-kit/codegen@0.7.0

Minor Changes

  • #269 60b7515 - feat: generate .d.ts files even if syntax or semantic errors are found

  • #278 f33b0a6 - feat: add --watch option

  • #272 c36be81 - feat!: report an error diagnostic when no files found by include/exclude pattern

Patch Changes

@css-modules-kit/core@0.7.0

Minor Changes

  • #273 d1c2051 - refactor: rename from createDts to generateDts

  • #269 60b7515 - feat: generate .d.ts files even if syntax or semantic errors are found

  • #262 4d661a1 - feat: add wildcardDirectories in CMKConfig

  • #274 87e1aef - refactor: include diagnostics within CSSModule object

  • #272 c36be81 - feat!: report an error diagnostic when no files found by include/exclude pattern

@css-modules-kit/eslint-plugin@0.3.1

Patch Changes

@css-modules-kit/stylelint-plugin@0.4.1

Patch Changes

@css-modules-kit/ts-plugin@0.7.0

Minor Changes

  • #269 60b7515 - feat: generate .d.ts files even if syntax or semantic errors are found

  • #272 c36be81 - feat!: report an error diagnostic when no files found by include/exclude pattern

Patch Changes

css-modules-kit-zed@0.1.1

Patch Changes

css-modules-kit-vscode@0.4.0

Minor Changes

Patch Changes

Release 2025-09-03T01:27Z

03 Sep 01:27
Immutable release. Only release title and notes can be modified.
a5c42d4

Choose a tag to compare

css-modules-kit-vscode@0.3.0

Minor Changes

  • e669052: deps: update bundled ts-plugin version

Release 2025-09-02T12:38Z

02 Sep 12:39
Immutable release. Only release title and notes can be modified.
381c67f

Choose a tag to compare

@css-modules-kit/codegen@0.6.0

Minor Changes

  • f559992: chore!: make codegen internal API private
  • 1f44d73: feat: add cmkOptions.keyframes option

Patch Changes

  • Updated dependencies [b167f2c]
  • Updated dependencies [1f44d73]
    • @css-modules-kit/core@0.6.0

@css-modules-kit/core@0.6.0

Minor Changes

  • 1f44d73: feat: add cmkOptions.keyframes option

Patch Changes

  • b167f2c: fix: fix an issue where prioritizeNamedImports is ignored when used with extends of tsconfig.json

@css-modules-kit/eslint-plugin@0.3.0

Minor Changes

  • 2df5729: chore!: make eslint-plugin internal API private

Patch Changes

  • f81c8a8: fix: fix eslint crashing due to composes property
  • Updated dependencies [b167f2c]
  • Updated dependencies [1f44d73]
    • @css-modules-kit/core@0.6.0

@css-modules-kit/stylelint-plugin@0.4.0

Minor Changes

  • 66ea122: feat: allow require('@css-modules-kit/stylelint-plugin')

Patch Changes

  • f81c8a8: refactor: refactor the syntax definition of composes property in stylelint-plugin
  • Updated dependencies [b167f2c]
  • Updated dependencies [1f44d73]
    • @css-modules-kit/core@0.6.0

@css-modules-kit/ts-plugin@0.6.0

Minor Changes

  • 1f44d73: feat: add cmkOptions.keyframes option

Patch Changes

  • Updated dependencies [b167f2c]
  • Updated dependencies [1f44d73]
    • @css-modules-kit/core@0.6.0

css-modules-kit-vscode@0.2.3

Patch Changes

  • Updated dependencies [1f44d73]
    • @css-modules-kit/ts-plugin@0.6.0

Release 2025-08-11T06:54Z

11 Aug 06:54
bd15fb9

Choose a tag to compare

Notable Changes

Fix missing quick fix actions in *.ts (#228)

Missing items of Quick Fix Action for *.ts have been fixed.

Add logo (#241)

We added the css-modules-kit logo :)

Logo

@css-modules-kit/core@0.5.1

Patch Changes

  • d6566f3: deps: update dependencies

@css-modules-kit/ts-plugin@0.5.1

Patch Changes

  • e0ebb5b: fix: fix missing quick fix actions
  • d6566f3: deps: update dependencies
  • Updated dependencies [d6566f3]
    • @css-modules-kit/core@0.5.1

css-modules-kit-vscode@0.2.2

Patch Changes

  • 6533c2b: chore: change categories
  • 6533c2b: chore: remove unused settings
  • 48818ca: chore: add logo for vscode extension
  • Updated dependencies [e0ebb5b]
  • Updated dependencies [d6566f3]
    • @css-modules-kit/ts-plugin@0.5.1

css-modules-kit-zed@0.1.0

11 Aug 02:55
css-modules-kit-zed@0.1.0
13a3fa7

Choose a tag to compare

Minor Changes

  • e22cae6: feat: supports CMK_LOAD_LOCAL_TS_PLUGIN for loading local ts-plugin

Patch Changes

  • e22cae6: fix: fix Zed Extension breaking when package.json is not present in workspace root

Release 2025-08-08T14:44Z

08 Aug 14:44
7f61546

Choose a tag to compare

Notable Changes

Support @keyframes (#218)

Names defined with @keyframes are now included in styles. Go to Definition and rename are now available for keyframe names.

2025-08-04.17.28.44.mov

@css-modules-kit/codegen@0.5.0

Minor Changes

  • 9c20f15: fix: default is not allowed as names when namedExports is true
  • 9c20f15: fix: __proto__ is not allowed as names

Patch Changes

  • Updated dependencies [9c20f15]
  • Updated dependencies [9c20f15]
  • Updated dependencies [61e053d]
  • Updated dependencies [15dcba8]
  • Updated dependencies [b38f9d3]
  • Updated dependencies [d0a6685]
    • @css-modules-kit/core@0.5.0

@css-modules-kit/core@0.5.0

Minor Changes

  • 9c20f15: fix: default is not allowed as names when namedExports is true
  • 9c20f15: fix: __proto__ is not allowed as names
  • 15dcba8, 61e053d: feat: improve non-JS identifier error message
  • b38f9d3, 69095b7: feat: support @keyframes

Patch Changes

  • d0a6685: fix: disallow non-JavaScript identifier @value

@css-modules-kit/eslint-plugin@0.2.2

Patch Changes

  • Updated dependencies [9c20f15]
  • Updated dependencies [9c20f15]
  • Updated dependencies [61e053d]
  • Updated dependencies [15dcba8]
  • Updated dependencies [b38f9d3]
  • Updated dependencies [d0a6685]
    • @css-modules-kit/core@0.5.0

@css-modules-kit/stylelint-plugin@0.3.2

Patch Changes

  • Updated dependencies [9c20f15]
  • Updated dependencies [9c20f15]
  • Updated dependencies [61e053d]
  • Updated dependencies [15dcba8]
  • Updated dependencies [b38f9d3]
  • Updated dependencies [d0a6685]
    • @css-modules-kit/core@0.5.0

@css-modules-kit/ts-plugin@0.5.0

Minor Changes

  • 9c20f15: fix: default is not allowed as names when namedExports is true
  • 9c20f15: fix: __proto__ is not allowed as names

Patch Changes

  • Updated dependencies [9c20f15]
  • Updated dependencies [9c20f15]
  • Updated dependencies [61e053d]
  • Updated dependencies [15dcba8]
  • Updated dependencies [b38f9d3]
  • Updated dependencies [d0a6685]
    • @css-modules-kit/core@0.5.0

css-modules-kit-vscode@0.2.1

Patch Changes

  • Updated dependencies [9c20f15]
  • Updated dependencies [9c20f15]
    • @css-modules-kit/ts-plugin@0.5.0