---
title: "Conflicting utilities in one class list (tailwind/conflicting-classes)"
description: "Two utilities setting the same property: the winner is decided by stylesheet order, not by the order written."
url: http://localhost:4173/rules/tailwind/conflicting-classes
updated: 2026-11-11
---

# Conflicting utilities in one class list

> `tailwind/conflicting-classes` is a vetd rule. It flags: Conflicting utilities in one class list. It runs on every `check`, together with the TypeScript check.

| Fact | Value |
| --- | --- |
| Rule id | `tailwind/conflicting-classes` |
| Severity | warning |
| Group | Tailwind CSS |
| Tags | correctness |

## Why it matters

Two utilities setting the same property: the winner is decided by stylesheet order, not by the order written.

## How to fix it

Keep one; for overrides, merge with cn()/tailwind-merge.

## Credit

Based on work by:

- [Tailwind Labs](https://tailwindcss.com): Conflicting utilities are resolved by stylesheet order, not class order.

## References

- [Detecting classes in source files - Core concepts - Tailwind CSS](https://tailwindcss.com/docs/detecting-classes-in-source-files), Tailwind CSS
- [tailwind-merge](https://github.com/dcastil/tailwind-merge), GitHub (dcastil)

## Related rules

- [`tailwind/dynamic-class`](http://localhost:4173/rules/tailwind/dynamic-class.md)

## Get this text from vetd

MCP: call `explain` with `{ "diagnosticId": "tailwind/conflicting-classes" }`. CLI: `npx vetd explain tailwind/conflicting-classes`.

---

[All 92 rules](http://localhost:4173/rules.md) · Previous: [`tailwind/dynamic-class`](http://localhost:4173/rules/tailwind/dynamic-class.md) · Next: [`tailwind/removed-in-v4`](http://localhost:4173/rules/tailwind/removed-in-v4.md)
