{
  "slug": "clsx-tailwind-merge",
  "name": "clsx + tailwind-merge",
  "url": "https://github.com/dcastil/tailwind-merge",
  "cat": "dx",
  "group": "build",
  "tagline": "Tailwind class utilities",
  "price": "Free · MIT",
  "tier": "free",
  "pick": false,
  "what": "The two halves of shadcn's <code>cn()</code> helper. clsx joins class names conditionally; tailwind-merge (v3) then resolves Tailwind conflicts so a later <code>px-4</code> actually overrides an earlier <code>px-2</code> instead of both landing in the class list.",
  "why": "Already in every shadcn project as <code>lib/utils.ts</code>. Without tailwind-merge, passing a <code>className</code> prop to override a component's padding silently does nothing — the most common Tailwind bug in AI-written components.",
  "warn": "tailwind-merge ships its own copy of Tailwind's class groups, so heavy custom theme values may need <code>extendTailwindMerge</code> to teach it your classes.",
  "install": "npm install clsx tailwind-merge",
  "category": {
    "key": "dx",
    "name": "Libraries & build tooling",
    "desc": "The dependencies your AI will reach for whether or not you chose them. Know what they are.",
    "group": "build",
    "groupName": "Build it"
  },
  "freshness": null,
  "health": {
    "ok": true,
    "status_code": 200,
    "final_url": null,
    "checked_at": "2026-08-18T20:59:38.827+00:00"
  },
  "corrected_at": null,
  "upstream_changed_at": null
}