15 сентября 2026 г.
Агенты получают правила Tailwind-дизайна: shadcn/lint заявляет 6 встроенных правил
В репозитории shadcn/lint 15.09.2026 заявлены 6 встроенных правил для Tailwind design systems. Линтер объясняет нарушение и подсказывает, как исправить его через компоненты, variants и theme.

shadcn
@shadcn
Почему нужен файл с правилами, а не правила рядом с компонентами: → У вас может быть одна design system, но разные правила. Представьте workspace с marketing site и dashboard. На marketing site можно разрешить классы `motion`, а в dashboard — нет. → Можно писать правила для third-party-компонентов внутри `node_modules`. Это компоненты, которыми вы не владеете. → Одно правило может охватывать много компонентов. Выражение `^.*Content$` подходит для любого `CardContent`, `DialogContent` и `AccordionContent`. → Вы не трогаете существующий код.
Представляю shadcn/lint. Это linter для Tailwind design systems, рассчитанный на работу прежде всего с агентами. Вы задаёте, что разрешено. Когда агент нарушает правило, ошибка объясняет, что именно не так и как исправить это с помощью ваших компонентов, variants и theme. С этим можно сделать много чего. Покажу ↓ https://github.com/shadcn-ui/lint
· 11 тыс. просмотров
Правила рядом с компонентами связывали дизайн-систему с одним набором ограничений. В workspace с marketing site и dashboard классы `motion` можно разрешить первому, но запретить второму. Теперь отдельный файл с правилами задаёт ограничения для каждого проекта и не требует менять код компонентов.
Сторонние компоненты. Правила применяются к компонентам из `node_modules` через `componentImports`, без fork и wrapper. `no-restyle` может разрешить для `CardTitle` layout и typography, но запретить `font-*`; `no-arbitrary-values` режет `p-[13px]`, оставляя `p-6` и `md:p-8`. Пакет работает с Tailwind v4 и не требует shadcn/ui.
Установка. Репозиторий от 15.09.2026 требует Node.js 20.19+ и Oxlint 1.80+: `npm install -D @shadcn/lint oxlint`, добавление `@shadcn/lint` в `jsPlugins` файла `.oxlintrc.json` и запуск `npx oxlint`. Вариант с ESLint требует ESLint 9.30+, пакеты `@shadcn/lint`, `eslint`, `@typescript-eslint/parser`, регистрацию plugin в `eslint.config.mjs` и запуск `npx eslint .`. В evals того же репозитория более чем на 150 запусках почти все задачи сходились к нулю нарушений за один раунд, а диагностика снижала стоимость исправлений на 10–48% против одних текстовых правил.
Дальше одна дизайн-система может жить в нескольких проектах с разными ограничениями, пока код компонентов остаётся прежним.
Первоисточник
