clsx

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

  • 所有者: lukeed/clsx
  • 平台:
  • 許可證: MIT License
  • 分類:
  • 主題:
  • 喜歡:
    4
      比較:

Github星跟蹤圖

clsx Build Status

A tiny (223B) utility for constructing className strings conditionally.Also serves as a faster & smaller drop-in replacement for the classnames module.

This module is available in three formats:

  • ES Module: dist/clsx.m.js
  • CommonJS: dist/clsx.js
  • UMD: dist/clsx.min.js

Install

$ npm install --save clsx

Usage

import clsx from 'clsx';

// Strings (variadic)
clsx('foo', true && 'bar', 'baz');
//=> 'foo bar baz'

// Objects
clsx({ foo:true, bar:false, baz:isTrue() });
//=> 'foo baz'

// Objects (variadic)
clsx({ foo:true }, { bar:false }, null, { '--foobar':'hello' });
//=> 'foo --foobar'

// Arrays
clsx(['foo', 0, false, 'bar']);
//=> 'foo bar'

// Arrays (variadic)
clsx(['foo'], ['', 0, false, 'bar'], [['baz', [['hello'], 'there']]]);
//=> 'foo bar baz hello there'

// Kitchen sink (with nesting)
clsx('foo', [1 && 'bar', { baz:false, bat:null }, ['hello', ['world']]], 'cya');
//=> 'foo bar hello world cya'

API

clsx(...input)

Returns: String

input

Type: Mixed

The clsx function can take any number of arguments, each of which can be an Object, Array, Boolean, or String.

Important: Any falsey values are discarded!Standalone Boolean values are discarded as well.

clsx(true, false, '', null, undefined, 0, NaN);
//=> ''

Benchmarks

For snapshots of cross-browser results, check out the bench directory~!

  • obj-str - Similar utility that is faster and smaller (96B) but only works with Objects.

License

MIT © Luke Edwards

主要指標

概覽
名稱與所有者lukeed/clsx
主編程語言JavaScript
編程語言JavaScript (語言數: 2)
平台
許可證MIT License
所有者活动
創建於2018-12-24 22:33:11
推送於2024-06-10 15:48:22
最后一次提交2024-04-22 22:26:02
發布數15
最新版本名稱v2.1.1 (發布於 2024-04-22 22:26:02)
第一版名稱v0.0.1 (發布於 2018-12-24 14:41:20)
用户参与
星數9.1k
關注者數17
派生數157
提交數82
已啟用問題?
問題數59
打開的問題數6
拉請求數13
打開的拉請求數6
關閉的拉請求數31
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?