---
title: "Concepts"
description: "Variants, slots, overrides, composition, layers, the cn helper, and TypeScript utilities."
canonical_url: "https://vinicunca.dev/unocss-variants/concepts"
---
# Concepts

> Variants, slots, overrides, composition, layers, the cn helper, and TypeScript utilities.

Recipes are objects you pass to `uv()`. These pages cover each option and how the returned function behaves.

[**Variants**](https://vinicunca.dev/unocss-variants/concepts/variants)

Variant axes, booleans, compound variants, and defaults.

[**Slots**](https://vinicunca.dev/unocss-variants/concepts/slots)

Named parts, per-slot variants, and compound slots.

[**Overriding styles**](https://vinicunca.dev/unocss-variants/concepts/overriding-styles)

Append `class` or `className` at the call site.

[**Composing components**](https://vinicunca.dev/unocss-variants/concepts/composing-components)

Reuse recipes with `extend` or by concatenating results.

[**Layers**](https://vinicunca.dev/unocss-variants/concepts/layers)

How to win conflicts without a merge library.

[**cn**](https://vinicunca.dev/unocss-variants/concepts/cn)

Join class values. No Tailwind-merge behavior.

[**TypeScript**](https://vinicunca.dev/unocss-variants/concepts/typescript)

`VariantProps`, required variants, and slotted return types.


## Sitemap

See the full [sitemap](https://vinicunca.dev/sitemap.md) for all pages.
