Coder Social home page Coder Social logo

vishwagauravin / clsx-for-tailwind Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 3 KB

A Utility for Merging Tailwind CSS Classes, Made for personal use, you can use it if you want to.

Home Page: https://www.npmjs.com/package/clsx-for-tailwind

TypeScript 100.00%
clsx clsx-npm tailwind tailwind-css tailwind-merge tailwindcss tailwindcss-plugin

clsx-for-tailwind's Introduction

clsx-for-tailwind - A Utility for Merging Tailwind CSS Classes

clsx-for-tailwind is a lightweight utility function for merging Tailwind CSS classes with conditional class names. It combines the power of clsx and tailwind-merge to provide an easy way to manage your CSS class names in a dynamic and maintainable way.

Features

  • Conditional Class Names: Easily toggle class names based on conditions.
  • Class Name Merging: Automatically merge Tailwind CSS classes without conflicts.
  • TypeScript Support: Written in TypeScript for type safety and autocomplete support.

Installation

To install the package, use npm or yarn:

npm install clsx-for-tailwind

or

yarn add clsx-for-tailwind

Usage

Import the cn function and use it to combine your class names:

import { cn } from "clsx-for-tailwind";

const buttonClass = cn("btn", "btn-primary", {
  "btn-large": isLarge,
  "btn-disabled": isDisabled,
});

return <button className={buttonClass}>Click Me</button>;

This example demonstrates how to conditionally add btn-large and btn-disabled classes based on the values of isLarge and isDisabled variables.

API

cn(...inputs: ClassValue[]): string

  • inputs: A list of class names, which can be strings, objects, arrays, or a combination of these.
  • returns: A single string with all the classes merged and deduplicated.

Example

import { cn } from "clsx-for-tailwind";

const classes = cn(
  "p-4",
  "text-center",
  { "bg-blue-500": isActive, "text-white": isActive },
  ["rounded", "shadow-md"]
);

console.log(classes); // Outputs: "p-4 text-center bg-blue-500 text-white rounded shadow-md"

Development

To contribute to this package or modify it locally, follow these steps:

  1. Clone the repository:
git clone https://github.com/VishwaGauravIn/clsx-for-tailwind.git
  1. Navigate to the project directory:
cd clsx-for-tailwind
  1. Install dependencies:
npm install
  1. Build the package:
npm run build
  1. Run tests:
npm test

License

This project is licensed under the AGPL-3.0 License. See the LICENSE file for more details.

Acknowledgements

This package relies on the fantastic work of the following libraries:

  • clsx - A tiny utility for constructing className strings conditionally.
  • tailwind-merge - A utility for merging Tailwind CSS class names.

Contributing

Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.

Contact

For any questions or support, please open an issue on the GitHub repository.

clsx-for-tailwind's People

Contributors

vishwagauravin avatar

Stargazers

Syed Tahseen avatar Rahul avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.