lemmon / clsx
A tiny PHP utility to conditionally build `class` attribute strings, inspired by clsx for JavaScript.
Installs: 27
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/lemmon/clsx
Requires
- php: >=7.4
Requires (Dev)
- phpunit/phpunit: ^9.5
README
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.
Installation
Install via Composer:
composer require lemmon/clsx
Usage
echo 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'
API
clsx(...$args): string
Returns a space-separated string of valid class names.
Parameters
...$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.
Example
clsx(true, false, '', null, 0); // Output: ''
License
MIT © Jakub Pelák