1.2.0 • Published 2 years ago

@travpro/clsx v1.2.0

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

useClassName

useClassName returns a function that generates correctly formatted class names.

Benefits

Class names are more consistent and follow standard BEM methodology outlined here. Also having this functionality in the form of a hook/function allows easier implementation of dynamic class names

Example usage (spread)

import useClassName from '@travpro/clsx';

const Example = () => {
  const c = useClassName('example');

  return (
    <div {...c()}>
      <h1 {...c('header')}>Lorem Ipsum Dolor Sit</h1>

      <button {...c('button', { green: true })}>Lorem Ipsum</button>

      <p {...c('subtitle', { font: 'large' })}>Lorem Ipsum Dolor Sit Amet Consectetur</p>
    </div>
  );
};

Output

<div class="example__wrapper">
  <h1 class="example__header">Lorem Ipsum Dolor Sit</h1>

  <button class="example__button--green">Lorem Ipsum</button>

  <p class="example__subtitle example__subtitle--font_large">Lorem Ipsum Dolor Sit Amet Consectetur</p>
</div>

Example usage (prop)

import useClassName from '@travpro/clsx/prop';

const Example = () => {
  const c = useClassName('example');

  return (
    <div className={c()}>
      <h1 className={c('header')}>Lorem Ipsum Dolor Sit</h1>

      <button className={c('button', { green: true })}>Lorem Ipsum</button>

      <p className={c('subtitle', { font: 'large' })}>Lorem Ipsum Dolor Sit Amet Consectetur</p>
    </div>
  );
};

Output

<div class="example__wrapper">
  <h1 class="example__header">Lorem Ipsum Dolor Sit</h1>

  <button class="example__button--green">Lorem Ipsum</button>

  <p class="example__subtitle example__subtitle--font_large">Lorem Ipsum Dolor Sit Amet Consectetur</p>
</div>
1.2.0

2 years ago

1.1.0

2 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.0

3 years ago