← Back to AI Insights
Gemini Executive Synthesis

shadcn-ui/lint's stylesheet resolution for `package.json` `exports` subpath patterns.

Technical Positioning
The linter's ability to verify design system rules is compromised by its failure to resolve stylesheets from standard package exports, leading to silent degradation and inaccurate reporting.
SaaS Insight & Market Implications
This issue reveals a critical flaw in `shadcn-ui/lint`'s dependency resolution, specifically with `package.json` `exports` subpath patterns. The linter's inability to correctly resolve CSS imports from common package structures results in complete theme build failure. Consequently, `no-unknown-classes` defaults to a generic grammar, generating false positives and obscuring the root cause. The silent degradation and non-zero exit code mask a fundamental operational failure, forcing developers to debug perceived rule misconfigurations rather than core resolution problems. This significantly erodes trust in the linter's accuracy and reliability, increasing developer friction and hindering adoption for projects leveraging modern package export conventions.
Proprietary Technical Taxonomy
resolveStylesheet package "exports" subpath patterns Tailwind worker throws no-unknown-classes silently degrades bundled grammar @theme @import exit code 0

Raw Developer Origin & Technical Request

Source Icon GitHub Issue Sep 15, 2026
Repo: shadcn-ui/lint
resolveStylesheet does not resolve package "exports" subpath patterns (e.g. "./*.css"), so the theme fails to build and no-unknown-classes silently degrades

### What happens

A CSS entry that imports a stylesheet from a dependency whose `package.json` exposes it through an `exports` subpath *pattern* (a key containing `*`) does not resolve. The Tailwind worker throws, the theme is never built, and the plugin prints one line on stderr:

```text
[@shadcn/lint] The Tailwind theme at src/app.css could not be built (@import "demo-widgets/styles.css" could not be resolved from /tmp/repro/src); no-unknown-classes is using the grammar bundled with @shadcn/lint there until it can.
```

Exit code stays 0. From then on `no-unknown-classes` judges every class against the bundled grammar, which knows nothing about the project `@theme`, so every utility the project declares is reported as unknown. The finding count scales with the size of the tree and all of it disappears the moment the `@import` resolves, so the failure reads as a rule problem rather than a resolution problem.

### Minimal reproduction

A fake dependency that ships its CSS behind a pattern export:

```jsonc
// node_modules/demo-widgets/package.json
{ "name": "demo-widgets", "version": "1.0.0", "exports": { "./*.css": "./dist/*.css" } }
```

```css
/* node_modules/demo-widgets/dist/styles.css */
.demo-widget { display: block; }
```

```css
/* src/app.css, the tailwind.css entry in components.json */
@import "tailwindcss";
@import "demo-widgets/styles.css";

@theme { --spacing-card: 1.25rem; }
```

```tsx
// src/page.tsx
export function Page() { return C...

Developer Debate & Comments

No active discussions extracted for this entry yet.

Adjacent Repository Pain Points

Other highly discussed features and pain points extracted from shadcn-ui/lint.

Extracted Positioning
shadcn-ui/lint's `no-raw-colors` rule and its interpretation of custom `--text-*` CSS variables within Tailwind v4 `@theme` blocks.
The linter's objective to enforce design system consistency, particularly regarding color usage, is undermined by its misinterpretation of Tailwind v4's theme structure, where `--text-*` variables define font sizes, not just colors.
Extracted Positioning
shadcn-ui/lint's `parseDeclarations` function, specifically its CSS comment stripping regex and its impact on theme parsing and the `no-arbitrary-values` rule.
The linter's core function of verifying design system rules and preventing arbitrary values is undermined by a regex flaw that incorrectly parses `@source` globs, leading to theme discard and erroneous suggestions.
Extracted Positioning
shadcn-ui/lint's `no-raw-colors` rule and its compatibility with Tailwind v4's namespaced color theme keys.
The linter's mandate to enforce semantic color usage and prevent raw color values is compromised by its inability to recognize Tailwind v4's standard namespaced color declarations, rendering the rule ineffective in modern Tailwind projects.

Frequently Asked Questions

Market intelligence mapped to shadcn-ui/lint's stylesheet resolution for `package.json` `exports` subpath patterns..

What is the technical positioning of shadcn-ui/lint's stylesheet resolution for `package.json` `exports` subpath patterns.?
Based on our AI analysis of the original developer request, its primary technical positioning is: The linter's ability to verify design system rules is compromised by its failure to resolve stylesheets from standard package exports, leading to silent degradation and inaccurate reporting.
Which technical concepts are associated with shadcn-ui/lint's stylesheet resolution for `package.json` `exports` subpath patterns.?
Our proprietary extraction maps shadcn-ui/lint's stylesheet resolution for `package.json` `exports` subpath patterns. to adjacent architectural concepts including resolveStylesheet, package "exports" subpath patterns, Tailwind worker throws, no-unknown-classes silently degrades.
What open-source repositories focus on shadcn-ui/lint's stylesheet resolution for `package.json` `exports` subpath patterns.?
Yes, open-source adoption is correlated. An active project titled 'shadcn-ui/cn' explores similar frameworks: cn is a new engine for Tailwind class merging and conflict resolution. It replaces tailwind-merge and clsx. Same APIs. Full parity. And it is 30× f...

Engagement Signals

0
Replies
open
Issue Status

Cross-Market Term Frequency

Quantifies the cross-market adoption of foundational terms like @theme and resolveStylesheet by tracking occurrence frequency across active SaaS architectures and enterprise developer debates.