Contributors Forks Stargazers Issues MIT License

React Class State Hook

Automatically generate CSS class names and modifiers based on your component’s state. Explore the docs »

Report Bug · Request Feature

About The Project

Use the useClassState hook to generate CSS class names and modifiers based on the passed in state:

const [ isActive, setActive ] = useState(true)

const classState = {
    'Button': {
        '--active': isActive,
        '--disabled': props.disabled,  // false
        '--color_{value}': props.color // red

const className = useClassState(classState)

Built With

React.js TypeScript Vite TypeDoc


  1. Install from NPM
    npm i @twocatmoon/react-use-class-state
  2. Include in your project
    import { useClassState } from '@twocatmoon/react-use-class-state'


Please refer to the Documentation


Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag “enhancement”. Don’t forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request


Distributed under the MIT License. See LICENSE for more information.


Twitter – @twocatmoon

Project Link –




View Github