---
title: "FAQs"
description: "Answers to common questions about cva's API design, including responsive variants and styled-component APIs."
url: "https://cva.style/beta/faqs/"
---

## Why don’t you provide a `styled` API?

Long story short: it’s unnecessary.

`cva` encourages you to think of components as traditional CSS classes:

* Less JavaScript is better
* They’re framework agnostic; truly reusable
* Polymorphism is free: apply the class to your preferred HTML element
* Less opinionated; you’re free to build components with `cva` however you’d like

See the [“Polymorphism”](https://cva.style/beta/getting-started/polymorphism) documentation for further recommendations.

## How can I create [responsive variants like Stitches.js](https://stitches.dev/docs/responsive-styles#responsive-variants)?

You can’t.

`cva` doesn’t know about how you choose to apply CSS classes, and it doesn’t want to.

We recommend either:

* Showing/hiding elements with different variants, based on your preferred breakpoint.

Example: With Tailwind

```tsx
export const Example = () => (
  <>
    <div className="hidden sm:inline-flex">
      <button className={button({ intent: "primary" })}>Hidden until sm</button>
    </div>
    <div className="inline-flex sm:hidden">
      <button className={button({ intent: "secondary" })}>
        Hidden after sm
      </button>
    </div>
  </>
);
```

* Create a bespoke variant that changes based on the breakpoint.

  *e.g. `button({ intent: "primaryUntilMd" })`*

This is something I’ve been thinking about since the project’s inception, and I’ve gone back and forth many times on the idea of building it. It’s a large undertaking and brings all the complexity of supporting many different build tools and frameworks.

In my experience, “responsive variants” are typically rare, and hiding/showing different elements is usually good enough to get by.

To be frank, I’m probably not going to build/maintain a solution unless someone periodically gives me a thick wad of cash to do so, and even then I’d probably rather spend my free time living my life.
