lemmon/clsx

A tiny PHP utility to conditionally build `class` attribute strings, inspired by clsx for JavaScript.

1.0.0 2025-07-20 06:10 UTC

This package is auto-updated.

Last update: 2025-07-23 07:14:47 UTC


README

A tiny PHP utility to conditionally build class attribute 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