Easy class names handling!
Cn is a simple utility to help you manage class names in the modern app development ecosystem.
Just add @mariosant/cn
to your package.json
.
$ npm install @mariosant/cn
# or
$ yarn add @mariosant/cn
You can now import the module and use it like
import cn from "@mariosant/cn";
Using cn is pretty simple. It is inspired by the well known Classnames package, but solves a few edge cases.
import cn from '@mariosant/cn';
const isActive = true;
const SomeComponent = () => <Button className={cn('btn', [isActive, 'active'])} .../> // classnames would be 'btn active'
Why the tuple syntax, you may ask. Well, tuple allows to pass an alternative classname, optionally. Consider the following:
import cn from '@mariosant/cn';
const isActive = false;
const SomeComponent = () => <Button className={cn('btn', [isActive, 'active', 'inactive'])} .../> // classnames would be 'btn inactive'
Easy enough!
$ yarn install # to install dependencies
$ yarn test # to run the test suite
Marios Antonoudiou – @marios_ant – [email protected]
Distributed under the MIT license.
https://github.com/mariosant/cn
- Fork it (https://github.com/mariosant/cn/fork)
- Create your feature branch (
git checkout -b feature/fooBar
) - Commit your changes using a semantic commit message.
- Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request