Class Variance Authority
[email protected]
by @joe-bell in https://github.com/joe-bell/cva/pull/185
Full Changelog: https://github.com/joe-bell/cva/compare/v0.6.1...v0.7.0
license
key in package.json
[email protected]
by @joe-bell in https://github.com/joe-bell/cva/pull/175
Full Changelog: https://github.com/joe-bell/cva/compare/v0.6.0...v0.6.1
cx
→ clsx
by @joe-bell in https://github.com/joe-bell/cva/pull/152
cva
now uses clsx
under-the-hood to concatenate classes with no breaking changes to the current experience and no increase to bundle-size.
The existing cx
export still exists, but as an alias of clsx
Bringing additional benefits of:
Provides additional support for booleans and variadic strings within class
or className
props
const button = cva([true && "button-base", false && "not-rendered"]);
// => 'button-base'
const buttonConsumer = button({ class: [true && "extra-class"] });
// => 'button-base extra-class'
Provides support for object syntax within class
or className
props
const button = cva({ foo: true, bar: false });
// => 'foo baz'
Full Changelog: https://github.com/joe-bell/cva/compare/v0.5.3...v0.6.0
fix: issue #147 where map files are not present for esm files by @pfried in https://github.com/joe-bell/cva/pull/148
Thank you @pfried!
fix: Added explicit undefined type to support exactOptionalPropertyTypes option by @totto2727 in https://github.com/joe-bell/cva/pull/149
This has been a long standing issue for me and I'm so grateful to @totto2727 for making the fix
Full Changelog: https://github.com/joe-bell/cva/compare/v0.5.2...v0.5.3
moduleResolution: bundler
(add types
to exports
field in package.json
) by @msonnberger in https://github.com/joe-bell/cva/pull/138
Full Changelog: https://github.com/joe-bell/cva/compare/v0.5.1...v0.5.2
Warning
v0.5.0
is broken, please skip straight tov0.5.1
Full Changelog: https://github.com/joe-bell/cva/compare/v0.4.0...v0.5.0
Note I'm actually supposed to be on vacation right now, but it seems like people are desperate for TypeScript 5 support
cva is a labour of love – I don't get paid to work on this project
Contributions of any size are greatly appreciated 🙏🏼
0xC756F748ff6A499f3C826529A0Da30FF1A3ac28c
Target Multiple Variant Options within Compound Variants by @joe-bell and @JeroenReumkens in https://github.com/joe-bell/cva/pull/76
// components/button.ts
import { cva } from "class-variance-authority";
const button = cva("…", {
variants: {
intent: { primary: "…", secondary: "…" },
size: { small: "…", medium: "…" },
},
compoundVariants: [
// Applied via:
// `button({ intent: "primary", size: "medium" })`
// or
// `button({ intent: "secondary", size: "medium" })`
{
intent: ["primary", "secondary"],
size: "medium",
class: "…",
},
],
});
Full Changelog: https://github.com/joe-bell/cva/compare/v0.3.0...v0.4.0
Add Support for the className
Prop by @joe-bell in https://github.com/joe-bell/cva/pull/54
React.js friends, you can be at peace: you can now use the className
or the class
prop.
Full Changelog: https://github.com/joe-bell/cva/compare/v0.2.4...v0.3.0
0
use-case by @Tatamethues in https://github.com/joe-bell/cva/pull/43
Full Changelog: https://github.com/joe-bell/cva/compare/v0.2.3...v0.2.4
class
prop from VariantProps
by @joe-bell (thanks for the suggestion @hasparus)Full Changelog: https://github.com/joe-bell/cva/compare/v0.2.2...v0.2.3