---
title: "Class Variance Authority"
description: "Utilities for defining component variants as sets of CSS classes."
pagination: false
---

{/* Generated from content/. Edit the catalog, not this page. */}

<PurposeNote title="Good for">Managing size, color, and state variants in a component system.</PurposeNote>

## What it does

Utilities for defining component variants as sets of CSS classes.

## When it fits

Managing size, color, and state variants in a component system.

## Other options in this category

<div data-pagefind-ignore>

- [chroma.js](/styling/chroma-js) — Generating palettes and color scales for interfaces or charts.
- [clsx](/styling/clsx) — Building className values from component states and optional styles.
- [CSS Modules](/styling/css-modules) — Writing stylesheets without exposing every class name globally.
- [Emotion](/styling/emotion) — Building component-level styles with a flexible CSS-in-JS API.
- [Fancy ANSI](/styling/fancy-ansi) — Showing colored command output inside browser-based interfaces.

</div>

## Source

[Project source for Class Variance Authority ↗](https://cva.style/docs)

Editorial overview reviewed on October 24, 2026. Follow the source for current setup, compatibility, and licensing.

[Style and theme components →](/tasks/style-and-theme-components)

[All styling &amp; themes options →](/styling)
