@ekim088/classnames
v2.1.1
Published
Reduces mixed-type arguments into a single HTML class attribute.
Downloads
465
Readme
classnames
Reduces mixed-type arguments into a single HTML class attribute. A replica of classnames made for fun.
Installation
Install via npm:
npm install @ekim088/classnamesor yarn:
yarn add @ekim088/classnamesThis package ships both ESM and CommonJS builds.
Usage
classNames(...args)
Reduces a list of mixed-type arguments into a single class attribute value.
import classNames from '@ekim088/classnames';
classNames('foo', { bar: true }); // 'foo bar'Two variants are available as subpath imports:
@ekim088/classnames/dedupe- removes duplicate class names (less performant).@ekim088/classnames/cached- caches derived class names by object reference.
Benchmarks
Run with Benchmark.js:
@ekim088/classnames x 4,101,263 ops/sec ±2.61% (91 runs sampled)
classnames x 4,234,935 ops/sec ±2.70% (88 runs sampled)
@ekim088/classnames/dedupe x 1,490,623 ops/sec ±2.90% (79 runs sampled)
classnames/dedupe x 1,292,126 ops/sec ±3.80% (87 runs sampled)
@ekim088/classnames/cached x 7,323,099 ops/sec ±1.35% (89 runs sampled)