lukeed/clsxPublic

A tiny (239B) utility for constructing `className` strings conditionally.

Congrats!

WO

`clsx` just [overtook](https://npmtrends.com/classnames-vs-clsx) `classnames`, the package `clsx` was designed be a drop-in replacement for.

![image](https://github.com/lukeed/clsx/assets/5426427/dc84287a-9efe-4ecb-963a-914366854212)

To celebrate and as a token of appreciation (I'm using your package virtually everywhere) I'm also sending a small donation alongside this message 🩷

  1. LU

    Cool, thanks for letting us all know :) I'm glad people are finding it useful!

  2. OL

    It took a lot of time 🎉 https://github.com/JedWatson/classnames/issues/187.

    It would be amazing for the `classnames` npm package to be deprecated, It feels like the community would be best served with a single popular package.

  3. AL

    It's time to update benchmark, classnames 3.5.1 seems pretty good

  4. JO

    There is no classnames 3.5.1.

    Benchmark with classnames 2.5.1:

    ``` # Strings classcat ≠ x 11,085,225 ops/sec ±0.22% (96 runs sampled) classnames x 13,017,413 ops/sec ±0.14% (100 runs sampled) clsx (prev) x 12,264,857 ops/sec ±0.19% (94 runs sampled) clsx x 14,266,758 ops/sec ±0.20% (99 runs sampled) clsx (lite) x 14,033,007 ops/sec ±0.70% (99 runs sampled)

    # Objects classcat ≠ x 9,553,016 ops/sec ±0.30% (96 runs sampled) classnames x 9,815,278 ops/sec ±0.22% (98 runs sampled) clsx (prev) x 8,270,756 ops/sec ±0.22% (100 runs sampled) clsx x 9,757,511 ops/sec ±0.18% (98 runs sampled) clsx (lite) x 98,257,102 ops/sec ±0.19% (99 runs sampled)

    # Arrays classcat ≠ x 9,131,392 ops/sec ±0.20% (98 runs sampled) classnames x 9,037,001 ops/sec ±0.21% (101 runs sampled) clsx (prev) x 9,258,221 ops/sec ±0.28% (100 runs sampled) clsx x 10,329,676 ops/sec ±0.17% (98 runs sampled) clsx (lite) x 91,537,271 ops/sec ±3.21% (90 runs sampled)

    # Nested Arrays classcat ≠ x 7,154,338 ops/sec ±0.26% (98 runs sampled) classnames x 7,431,362 ops/sec ±0.27% (100 runs sampled) clsx (prev) x 7,669,504 ops/sec ±0.23% (99 runs sampled) clsx x 8,122,011 ops/sec ±0.30% (98 runs sampled) clsx (lite) x 81,062,212 ops/sec ±4.13% (84 runs sampled)

    # Nested Arrays w/ Objects classcat ≠ x 7,449,472 ops/sec ±0.21% (98 runs sampled) classnames x 7,687,118 ops/sec ±0.27% (96 runs sampled) clsx (prev) x 7,298,243 ops/sec ±0.31% (97 runs sampled) clsx x 8,135,180 ops/sec ±0.23% (99 runs sampled) clsx (lite) x 69,522,690 ops/sec ±1.46% (93 runs sampled)

    # Mixed classcat ≠ x 7,788,500 ops/sec ±0.26% (98 runs sampled) classnames x 8,234,687 ops/sec ±0.21% (100 runs sampled) clsx (prev) x 7,930,681 ops/sec ±0.25% (96 runs sampled) clsx x 8,818,848 ops/sec ±0.26% (99 runs sampled) clsx (lite) x 27,344,921 ops/sec ±0.49% (96 runs sampled)

    # Mixed (Bad Data) classcat ≠ x 2,607,473 ops/sec ±0.24% (96 runs sampled) classnames x 3,049,233 ops/sec ±0.19% (100 runs sampled) clsx (prev) x 3,305,882 ops/sec ±0.17% (100 runs sampled) clsx x 3,704,103 ops/sec ±0.11% (101 runs sampled) clsx (lite) x 22,540,369 ops/sec ±0.36% (97 runs sampled) ```