---
title: "Other Use Cases"
description: "Use cva to manage variant-driven strings beyond class names, such as dynamic text content."
url: "https://cva.style/examples/other-use-cases/"
---

Although primarily designed for handling class names, at its core `cva` is a fancy way of managing a string…

## Dynamic text content

```ts
import { cva } from "class-variance-authority";


const greeter = cva("Good morning!", {
  variants: {
    isLoggedIn: {
      true: "Here's a secret only logged in users can see",
      false: "Log in to find out more…",
    },
  },
  defaultVariants: {
    isLoggedIn: false,
  },
});


greeter();
// => "Good morning! Log in to find out more…"


greeter({ isLoggedIn: true });
// => "Good morning! Here's a secret only logged in users can see"
```
