Skip to content

Latest commit

 

History

23 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

classnames

npm version CI

Reduces mixed-type arguments into a single HTML class attribute. A replica of classnames made for fun.

Installation

Install via npm:

npm install @ekim088/classnames

or yarn:

yarn add @ekim088/classnames

This 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)

License

MIT

About

Reduces mixed-type arguments into a single HTML class attribute.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages