0.2.1 • Published 2 months ago

tailwind-variants v0.2.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

Features

  • First-class variant API
  • Responsive variants
  • Slots support
  • Composition support
  • Fully typed
  • Framework agnostic
  • Automatic conflict resolution

Documentation

For full documentation, visit tailwind-variants.org

Quick Start

  1. Installation: To use Tailwind Variants in your project, you can install it as a dependency:
yarn add tailwind-variants
# or
npm i tailwind-variants
  1. Usage:
import { tv } from 'tailwind-variants';
 
const button = tv({
  base: "font-medium bg-blue-500 text-white rounded-full active:opacity-80",
  variants: {
    color: {
      primary: "bg-blue-500 text-white",
      secondary: "bg-purple-500 text-white",
    },
    size: {
      sm: "text-sm",
      md: "text-base",
      lg: "px-4 py-3 text-lg",
    },
  },
  compoundVariants: [
    {
      size: ["sm", "md"],
      class: "px-3 py-1",
    },
  ],
  defaultVariants: {
    size: "md",
    color: "primary",
  }
});
 
return (
  <button className={button({ size: 'sm', color: 'secondary' })}>Click me</button>
)
  1. Responsive variants configuration (optional): If you want to use responsive variants you need to add the Tailwind Variants wrapper to your TailwindCSS config file tailwind.config.js.
// tailwind.config.js
 
const { withTV } = require('tailwind-variants/transformer')

/** @type {import('tailwindcss').Config} */
module.exports = withTV({
  content:  ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"],
  theme: {
    extend: {},
  },
  plugins: [],
})

If you're using a custom path to import Tailwind variants, such as creating a custom tv instance with createTV, it's recommended to include this path in the transformer configuration:

// tailwind.config.js

const { withTV } = require('tailwind-variants/transformer')

/** @type {import('tailwindcss').Config} */
module.exports = withTV({
  content:  ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"],
  theme: {
    extend: {},
  },
  plugins: [],
}, {
  aliases: ["@/lib/tv"]
})

Acknowledgements

  • cva (Joe Bell) This project as started as an extension of Joe's work on cva – a great tool for generating variants for a single element with Tailwind CSS. Big shoutout to Joe Bell and contributors you guys rock! 🤘 - we recommend to use cva if don't need any of the Tailwind Variants features listed here.

  • Stitches (Modulz)
    The pioneers of the variants API movement. Inmense thanks to Modulz for their work on Stitches and the community around it. 🙏

Community

We're excited to see the community adopt NextUI, raise issues, and provide feedback. Whether it's a feature request, bug report, or a project to showcase, please get involved!

Contributing

Contributions are always welcome!

Please follow our contributing guidelines.

Please adhere to this project's CODE_OF_CONDUCT.

Authors

License

Licensed under the MIT License.

See LICENSE for more information.

@namcchan/theme@thisisclicktest/ktnext-microsite-reactsxtd-ui-theme@everything-registry/sub-chunk-2874@universekit/themessrmg-ui-component-library-testtiox-ds@anrivera/component-library-packagetw-material3-react@angular-neo/elements@nkey/ui-testvody-corehue-conductorvinca-uivite-build-issuevirtue-uiinsight-hunt@enterprise-nation/components@frontile/theme@fxwing/docs@fxwing/ui@garethloot/appbox@fuf-stack/pixels@fuf-stack/uniform@gluestack-ui/nativewind-utils@gmana/alert-dialog@gmana/aspect-ratio@gmana/avatar@gmana/badge@gmana/bg@gmana/button@gmana/calendar@gmana/card@gmana/checkbox@gmana/collapsible@gmana/combobox@gmana/command@gmana/component-helper@gmana/context-menu@gmana/data-table@gmana/date-picker@gmana/dialog@gmana/dropdown-menu@gmana/form@gmana/icons@gmana/input@gmana/json-viewer@gmana/label@gmana/link@gmana/loading@gmana/magnifier@gmana/marquee@gmana/menubar@gmana/modal@gmana/navigation-menu@gmana/phone-input@gmana/popover@gmana/progress@gmana/radio-group@gmana/table@gmana/tabs@gmana/tailwind-indicator@gmana/text@gmana/rotate@gmana/scroll-area@gmana/select@gmana/separator@gmana/sheet@gmana/skeleton@gmana/slider@gmana/svelte@gmana/switch@gmana/headers@gmana/textarea@gmana/theme@gmana/toast@gmana/toggle@gmana/tooltip@gmana/widget@geekyants/antenna-design-system@gcuddy/uizionix-uireact-tailwind-vite-app@incomplete/ui@infinitebrahmanuniverse/nolb-taillexical-svelte-runes@hybrbase/utilities@evidence-dev/core-componentsistanbul-widget@fellipeutaka/styles@felix-ds/react@jeanne-mas/svelte-ui@jala-banyu/theme@ltopx/lx-ui@ecotrace-designsystem/react@emerald-dao/component-libraryjobseeker-ui-dev@filltech/senna-corewhitenose-project@flumens/tailwind
0.2.1

2 months ago

0.2.0

3 months ago

0.1.20

4 months ago

0.1.19

5 months ago

0.1.15

7 months ago

0.1.16

7 months ago

0.1.17

7 months ago

0.1.18

6 months ago

0.1.10

11 months ago

0.1.11

10 months ago

0.1.12

10 months ago

0.1.13

10 months ago

0.1.14

8 months ago

0.1.8

11 months ago

0.1.7

11 months ago

0.1.9

11 months ago

0.1.6

11 months ago

0.0.20

1 year ago

0.0.21

1 year ago

0.0.22

1 year ago

0.0.23

1 year ago

0.0.24

1 year ago

0.0.25

1 year ago

0.0.17-dev.1

1 year ago

0.0.15

1 year ago

0.0.16

1 year ago

0.0.17

1 year ago

0.0.18

1 year ago

0.0.30

1 year ago

0.0.31

1 year ago

0.0.10

1 year ago

0.0.11

1 year ago

0.0.12

1 year ago

0.0.13

1 year ago

0.0.14

1 year ago

0.1.0

1 year ago

0.1.2

1 year ago

0.0.3

1 year ago

0.1.1

1 year ago

0.0.2

1 year ago

0.0.26

1 year ago

0.0.9

1 year ago

0.0.27

1 year ago

0.0.8

1 year ago

0.0.28

1 year ago

0.0.29

1 year ago

0.1.4

1 year ago

0.0.5

1 year ago

0.1.3

1 year ago

0.0.4

1 year ago

0.0.7

1 year ago

0.1.5

1 year ago

0.0.6

1 year ago

0.0.1

1 year ago