A tiny PHP utility to conditionally build
classattribute strings. Inspired by clsx for JavaScript, it lets you easily compose class names using strings, arrays, and associative arrays.
Install via Composer:
composer require lemmon/clsxecho clsx('foo', true && 'bar', 'baz');
// Output: 'foo bar baz'
echo clsx(['foo', 0, false, 'bar']);
// Output: 'foo bar'
echo clsx(['foo'], ['', 0, false, 'bar'], [['baz', [['hello'], 'there']]], 'bye');
// Output: 'foo bar baz hello there bye'
echo clsx(['foo' => true, 'bar' => false, 'baz' => isSomethingTrue()]);
// Output: 'foo baz'
echo clsx(['foo' => true], ['--special' => 'active']);
// Output: 'foo --special'Returns a space-separated string of valid class names.
...$args: mixed Accepts any number of arguments. Arguments can be:- Strings
- Arrays (flat or nested)
- Associative arrays (keys are class names, values are booleans or strings)
Note: Falsy values like
false,null,0,'', etc. are discarded. Only truthy values or valid strings are included in the final result.
clsx(true, false, '', null, 0);
// Output: ''MIT © Jakub Pelák