@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.
Markdown
[](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>