JSPM

  • Created
  • Published
  • Downloads 1080
  • Score
    100M100P100Q100108F
  • License MIT

class variant utility for react

Package Exports

  • @klass/react

Readme

klass

🚧 UNDER DEVELOPMENT 🚧

Introduction

A class variant utility library for react.

Quick Start

Installation

npm install @klass/react
# or
yarn add @klass/react
# or
pnpm add @klass/react

Usage

Klassed

import { klassed } from "@klass/react";

const Button = klassed("button", {
  base: "button--base",
  variants: {
    size: {
      sm: "button--size-sm",
      md: "button--size-md",
      lg: "button--size-lg",
    },
    loading: {
      true: "button--loading-true",
      false: "button--loading-false",
    },
    className: {
      will: "not-work",
    },
  },
  defaultVariants: {
    // size: "md",
    // loading: false,
  },
});

function App() {
  return (
    <div>
      <Button size="md" loading className="Extra classes">
        klassed button
      </Button>
    </div>
  );
}

Button.klass();
// "button--base"

Button.klass({ size: "sm", loading: true } /*, "Extra classes" */);
// "button--base button--size-sm button--loading-true"

Button.klass.variant.size("sm");
// button--size-sm
Button.klass.variant.loading(true);
// button--loading-true

Authors

License

MIT License