Back to Explore

joe-bell/cva

GitHub
4 updates · last 90 days1 watchersOpen source

Last release:

Class Variance Authority (cva) is a CSS utility focused on managing class names with variants. It is useful for defining and reusing variant-based class name patterns in projects, with documentation available at https://cva.style.

Project status

  • The joe-bell/cva GitHub source shows clear ongoing maintenance, with an upstream push on 2026-07-15 and multiple v1.0.0-beta.x updates on 2026-07-10 through 2026-07-15, indicating active development rather than maintenance mode.
  • Apparent update cadence is currently fast, about every few days (beta.6 on 2026-07-10, beta.7 on 2026-07-13, beta.8 on 2026-07-15). Earlier history includes much longer gaps, but the most recent period is actively moving.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v1.0.0-beta.8

    v1.0.0-beta.8 introduces the concept of internal variants in `cva`, where variant keys prefixed with `_` are treated differently from public variants. Internals are still accepted by the generated component, but they are omitted from `VariantProps` and from `getSchema`. The release notes only mention the feature at a high level, while the code shows type-level and runtime behavior changes that can break existing TypeScript and tooling integrations.

    Features
  • v1.0.0-beta.7

    v1.0.0-beta.7 primarily migrates the build and publish pipeline to tsdown, and adds/extends performance benchmark automation with fork-safe sticky PR comment rendering. The release notes are high level and focus on CI and build tooling, but the code diff shows several concrete packaging and toolchain configuration changes, especially for `packages/class-variance-authority`.

    Features
  • v1.0.0-beta.6

    Release v1.0.0-beta.6 primarily updates the cva TypeScript type exports to ensure specific variant and component-related types are reachable in generated declarations for consumers. The release notes describe this as a portability fix for exported types in public signatures.

  • v1.0.0-beta.5

    v1.0.0-beta.5 introduces an experimental getSchema utility and a new composes property that replaces the compose function, along with build tooling cleanup and extensive documentation and agent tooling updates. The release notes also include a migration from bundlesize to size-limit and an upgrade to Node.js 24, plus major doc site and workflow refactors.

    BreakingFeatures
  • v1.0.0-beta.4

    v1.0.0-beta.4 is overwhelmingly documentation and developer-experience related, with no visible runtime code changes to the `cva` library API. The only package-level change in the diff is a reordering tweak to the `exports` map to ensure the `types` entry is resolved before `import` for tooling compatibility.

  • v1.0.0-beta.3

    v1.0.0-beta.3 release notes primarily describe type-related improvements, including expanding `ClassValue` to include `bigint`, exporting additional `Class*` types, and widening TypeScript and project dependency ranges. The diff provided, however, is dominated by documentation site and examples updates rather than visible changes to the core library source.

    Features
  • v1.0.0-beta.2

    Release v1.0.0-beta.2 is documented as a set of chores and documentation updates. However, the provided code diff shows only a package version field change in packages/cva/package.json, with no other code or dependency changes visible.

  • v0.7.1

    Release v0.7.1 has very limited release note coverage, documenting only (1) license comment additions and (2) a dependency range change for clsx. The provided code diff, however, shows a large number of repository-wide changes, dominated by new beta documentation site content and updates to contributor and CI tooling.

  • v0.7.0

    v0.7.0 upgrades the project dependency clsx from v1.2.1 to v2.0.0, with a corresponding code import adjustment to match clsx v2's module shape. The release notes only mention the dependency upgrade, but the diff also includes CI workflow changes, documentation site config changes, and Husky install behavior changes.

    Breaking
  • v0.6.1

    v0.6.1 release notes are minimal, mentioning only a missing `license` key in `package.json` and an upgrade to TypeScript 5.1.3. The code diff, however, shows additional changes beyond those notes, including new package additions and changes to package export maps.

  • v0.6.0

    v0.6.0 switches the internal implementation of `cx` to use the `clsx` library directly. Release notes claim this is functionally compatible for existing usage, while adding support for booleans and object-based class inputs.

    Features
  • v0.5.3

    v0.5.3 includes two targeted fixes: TypeScript type adjustments to better support `exactOptionalPropertyTypes`, and packaging changes to include missing ESM source maps. The code diff also contains additional repository changes around documentation tooling that are not mentioned in the release notes.

  • v0.5.2

    v0.5.2 primarily improves TypeScript compatibility for consumers using `moduleResolution: bundler` by adding type entrypoints to the package `exports`. The code diff also includes a notable TypeScript typing change around how `cva` generic parameters are handled.

  • v0.5.1

    Release v0.5.1 release notes only mention adding support for TypeScript 5. In the provided code diff, the changes appear to be dominated by documentation and website infrastructure (new Nextra/Next docs site) and repository tooling updates (migration to pnpm, CI changes, Node version bump), with no visible changes to the cva public runtime API in the diff excerpt shown.