A simpler class list builder

Usage no npm install needed!

<script type="module">
  import seanmcpClassList from 'https://cdn.skypack.dev/@seanmcp/class-list';


Class List

npm npm bundle size (minified) npm

🦆 A simpler class list builder


classList('Build', 'class lists', true && 'without', 'fear')
// -> 'Build class lists without fear'


Jed Watson's classnames library is pretty much the industry standard for building a list of class names. Definitely check that out if you haven't already.

This library serves as an alternative with a simpler API for conditional classes. Instead of building dynamic keys on passed objects, you can use a simple && binary to pass the class if the condition is true.


npm install @seanmcp/class-list
# or
yarn add @seanmcp/class-list


Import or require the default function exported from @seanmcp/class-list, then call and pass the desired class names as arguments:

classList('one', 2, 'three', 4)
// -> 'one 2 three 4'

Arguments at evaluate to false are removed from the output:

classList(0, 'one', undefined, 'three')
// -> 'one three'

This means you can use conditions in the passed arguments to selectively add classes:

let time = 1

classList('book', time < 1 && '--due')
// -> 'book'

time = 0

classList('book', time < 1 && '--due')
// -> 'book --due'



import React from 'react'
import classList from '@seanmcp/class-list'

export default function ToggleButton(props) {
    const [isOn, toggle] = useToggle() // A basic custom hook
    return (
            className={classList('ToggleButton', isOn && 'ToggleButton--on')}