Stack Gems
Menu
← Catalog

@shadcn/lint

MIT agent-first linter for Tailwind v4 design systems — ESLint or Oxlint

Design / Tooling · OSS/MIT · 3.2k

Reviewed 2026-10-08 · last push 2026-10-19 · repo checked 2026-10-19

What's Good

MIT (shadcn-ui/lint), npm `@shadcn/lint` 0.2.0. Plugin for ESLint 9.30+ or Oxlint 1.80+, on React, Vue, and Svelte; shadcn/ui is not required, though `components.json` projects get automatic component and theme discovery. Six rules: no-restyle (per-component contracts), no-raw-colors, no-arbitrary-values, no-inline-styles, no-unknown-classes, require-static-classes. Custom messages with placeholders like `{{sizes}}` and `{{file}}`. Setup can be handed to the agent via SETUP.md. ★~3.1k.

The Catch

Tailwind v4 only, and pre-1.0 (0.2.0), so expect rule and option churn. The “almost every task reached zero violations” results are the authors’ own evals. Under Oxlint, Vue and Svelte files are read only in their script blocks, not the template, and `<style>` blocks in .vue/.svelte are not linted at all — use a CSS linter. You still have to write the contracts; the defaults do not know your design system. Vs shadcn-ui (the component source it pairs with): this is the guardrail, not the components.

Verdict

MIT design-system linter when agents keep restyling your Tailwind components — errors that teach the fix; Tailwind v4 and early versions only.

Embed

Maintainer? Add the badge to your README. It is free, links to this review, and there is no paid version.

Reviewed on Stack Gems

Markdown

[![Reviewed on Stack Gems](https://stackgems.com/badge/shadcn-lint.svg)](https://stackgems.com/gems/shadcn-lint)

HTML

<a href="https://stackgems.com/gems/shadcn-lint"><img src="https://stackgems.com/badge/shadcn-lint.svg" alt="@shadcn/lint reviewed on Stack Gems" height="20"></a>

Related

Design →