Skip to content

Unblock tailwindcss past 4.3.0 (4.3.1+ scans the git-ignored .web tree) #7022

Description

@masenf

TailwindV4Plugin is pinned at tailwindcss@4.3.0 / @tailwindcss/postcss@4.3.0, held there by the note on Constants.VERSION in packages/reflex-base/src/reflex_base/plugins/tailwind_v4.py:

Held at 4.3.0: 4.3.1+ reworked source-file scanning (tailwindlabs/tailwindcss#20214, #20217, #20203) and walks the git-ignored .web tree, which collapses the docs prod build at scale.

I checked whether 4.3.2 or 4.3.3 lifted the hold while refreshing dependencies in #7019, and they don't:

  • 4.3.1 — #20214 "Ensure explicitly referenced @source directories are scanned even when ignored by git". This is the change that causes our problem, and it is deliberate upstream behavior, not a bug they intend to revert.
  • 4.3.2 — #20246 (CLI --watch rebuild in an ignored dir), #20263 ("Prevent @source patterns from scanning unrelated sibling files and folders"). Adjacent, but does not restore the pre-4.3.1 gitignore behavior.
  • 4.3.3 — #20335 (@source ordering with nested vs. parent folders), #20336 (Vite full-reload avoidance). Also unrelated to the gitignore walk.

So the pin cannot move on a version bump alone — the fix has to be on our side, in what we hand Tailwind as sources. tailwindcss and @tailwindcss/postcss are now filtered out of the outdated-dependency check with a pointer here, so they will stop showing up as perpetually-stale rows until this is resolved.

Why our config trips it

TailwindV4Plugin writes tailwind.config.js inside .web and pulls it in from the root stylesheet with @config "../tailwind.config.js". The default content globs (Constants.CONTENT) are .web-relative:

./app/**/*.{js,ts,jsx,tsx}
./utils/**/*.{js,ts,jsx,tsx}

Because .web is git-ignored, pre-4.3.1 Tailwind skipped it; from 4.3.1 an explicitly referenced directory is scanned regardless, so the scan now also reaches build output under .web (build/, node_modules/, .react-router/) at docs scale.

What needs doing

  • Reproduce at docs scale — a small app builds fine on 4.3.3 (verified in Refresh outdated dependencies flagged on the release branch #7019), so this needs the real docs/app prod build to show the collapse
  • Narrow what Tailwind is given: tighten the content globs, and/or add @source not exclusions for .web/build, .web/node_modules, and .web/.react-router
  • Confirm a docs prod build on 4.3.3 with the corrected sources completes in a comparable time to 4.3.0
  • Bump Constants.VERSION and the @tailwindcss/postcss pin, and drop the note that pins them
  • Remove \| tailwindcss and \| @tailwindcss/postcss from the frontend ignore list in .github/workflows/check_outdated_dependencies.yml

Notes

@tailwindcss/typography (0.5.20) and the docs app's tailwindcss-animated / tailwindcss-scroll-mask are unaffected and stay in the outdated check — the ignore patterns are anchored on the table's package column specifically so they are not swallowed too.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementAnything you want improved

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions