PHPackages                             micropackage/classnames - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. micropackage/classnames

ActiveLibrary

micropackage/classnames
=======================

Simple PHP utility class for conditionally joining class names together.

1.0.0(5y ago)119.6k↓50%1[1 issues](https://github.com/micropackage/classnames/issues)[1 PRs](https://github.com/micropackage/classnames/pulls)GPL-3.0-or-laterHTMLPHP &gt;=7.0

Since Apr 12Pushed 5y ago2 watchersCompare

[ Source](https://github.com/micropackage/classnames)[ Packagist](https://packagist.org/packages/micropackage/classnames)[ RSS](/packages/micropackage-classnames/feed)WikiDiscussions develop Synced 1mo ago

READMEChangelog (1)Dependencies (4)Versions (3)Used By (0)

Block Loader
============

[](#block-loader)

[![BracketSpace Micropackage](https://camo.githubusercontent.com/7a9f5ff780f859fdebce60d4e11572de05f86c42ef96b77967c24d7ea7d1e04b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f427261636b657453706163652d4d6963726f7061636b6167652d627269676874677265656e)](https://bracketspace.com)[![Latest Stable Version](https://camo.githubusercontent.com/7ea1d5c2df392e377afc6ad40d48984061b50dab720dc7d287fdd2c2f053d782/68747470733a2f2f706f7365722e707567782e6f72672f6d6963726f7061636b6167652f636c6173736e616d65732f762f737461626c65)](https://packagist.org/packages/micropackage/classnames)[![PHP from Packagist](https://camo.githubusercontent.com/20d95fa56d6de33b06e196e2630ee61d255b8d7aa2774ed59cf8472f26ba87ca/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f6d6963726f7061636b6167652f636c6173736e616d65732e737667)](https://packagist.org/packages/micropackage/classnames)[![Total Downloads](https://camo.githubusercontent.com/42b9f41f431e2172084f45b9aedae74817ca0f38e876ffa894f7dd1ebb9432ee/68747470733a2f2f706f7365722e707567782e6f72672f6d6963726f7061636b6167652f636c6173736e616d65732f646f776e6c6f616473)](https://packagist.org/packages/micropackage/classnames)[![License](https://camo.githubusercontent.com/d14bd9abe4c96f4833698d6ce462ee11d84f4b36093bb7159b2f5f70c7b09406/68747470733a2f2f706f7365722e707567782e6f72672f6d6963726f7061636b6167652f636c6173736e616d65732f6c6963656e7365)](https://packagist.org/packages/micropackage/classnames)

 [![Micropackage logo](https://camo.githubusercontent.com/9b9fc4f221b3683db4f9cc63e1ed92220004bbda118206d0a26d5ce6377d4d46/68747470733a2f2f627261636b657473706163652e636f6d2f6578747261732f6d6963726f7061636b6167652f6d6963726f7061636b6167652d736d616c6c2e706e67)](https://camo.githubusercontent.com/9b9fc4f221b3683db4f9cc63e1ed92220004bbda118206d0a26d5ce6377d4d46/68747470733a2f2f627261636b657473706163652e636f6d2f6578747261732f6d6963726f7061636b6167652f6d6963726f7061636b6167652d736d616c6c2e706e67)

🧬 About ClassNames
------------------

[](#-about-classnames)

This package contains simple utility class for conditionally joining html classNames. It was inspired by the JavaScript [classnames](https://www.npmjs.com/package/classnames) package.

💾 Installation
--------------

[](#-installation)

```
composer require micropackage/classnames
```

🕹 Usage
-------

[](#-usage)

The `Micropackage\ClassNames\ClassNames` class constructor takes any number of arguments which can be a string or an array. String arguments and values of string arrays will be used unconditionally. If an argument is an array with string keys, keys will be used as classnames if the value associated with a given key is truthy.

```
use Micropackage\ClassNames\ClassNames;

new ClassNames( 'foo', 'bar' ); // => 'foo bar'
new ClassNames( 'foo', [ 'bar' => true ] ); // => 'foo bar'
new ClassNames( [ 'foo' => true, 'bar' => false ] ); // => 'foo'
new ClassNames( 'foo', [ 'foo' => false ] ); // => ''
new ClassNames( [ 'foo', 'bar' => false, 'baz' ] ); // => 'foo baz'
```

### Full example

[](#full-example)

```
