← All reportsPublic report

tailwindlabs/tailwindcss

A utility-first CSS framework for rapid UI development.

97k stars TypeScript View on GitHubprofiled 11d ago
Try GitZoid
34PRs this week
8Contributors
8Deps scanned
0Issues found
01 · Repo overview

How tailwindcss is put together

This is the Tailwind CSS v4 monorepo: a utility-first CSS framework distributed as a set of npm packages (core `tailwindcss`, plus integrations for CLI, PostCSS, Vite, Webpack, Turbopack, browser runtime, standalone binaries, and a v3-to-v4 upgrade tool). Performance-critical parsing/scanning (candidate extraction, globbing, file walking) is implemented in Rust under a Cargo workspace (`crates/oxide`, `crates/ignore`, `crates/node`) exposed to JS via napi-rs native bindings and WASM, while the orchestration, plugin system, and build integrations are TypeScript. Data flow: user CSS entry files (with @import/@config/@source/@plugin/@theme directives) are parsed, candidate class names are extracted from content files via the Rust scanner, utilities are generated from theme variables in CSS, and the result is emitted through the chosen integration (CLI, PostCSS plugin, bundler plugin). There is no server, database, or network service; it is a developer toolchain built and tested with pnpm workspaces, Turborepo, Vitest, Playwright, and cargo.

Languages

TypeScriptRustJavaScriptCSS

Frameworks

VitestPlaywrightTurbo (turborepo)tsupnapi-rs (crates/node)PostCSSViteNext.js (playgrounds only)

Infrastructure

GitHub Actions CI (.github/ci.yml referenced by badge)pnpm workspaces + pnpm catalogCargo workspace (crates/*)Standalone cross-platform CLI binaries (tailwindcss-linux/macos/windows)

Major components

packages/tailwindcss (core)

The core Tailwind engine: parses CSS directives (@theme, @utility, @apply, @config), generates utilities, ships preflight/theme/utilities stylesheets.

crates/oxide

Rust implementation of high-performance scanning: candidate extraction, fast-skip lexing, glob matching, and path handling, exposed as a binary/library for node bindings.

crates/node

napi-rs Node.js bindings that bridge the Rust oxide scanner into the JavaScript packages.

crates/classification-macros

Proc-macro crate supporting classification of Rust types used by the oxide scanner.

@tailwindcss-cli / @tailwindcss-standalone

Command-line interface that compiles CSS from stdin/files to output files with watch mode; standalone package bundles platform-specific native binaries.

@tailwindcss-postcss / @tailwindcss-vite / @tailwindcss-webpack / @tailwindcss-turbopack

Integrations exposing Tailwind as plugins/loaders for PostCSS, Vite, Webpack, and Turbopack build pipelines.

@tailwindcss-upgrade

Codemod tool that migrates Tailwind v3 projects (config JS/TS files, CSS, HTML classes) to v4 syntax, including git-aware file handling.

integrations/

End-to-end integration test suites that spin up fixture projects and run the real CLI/PostCSS/Vite/upgrade tooling against them.

Over the past three weeks the Tailwind CSS team focused heavily on making builds faster and more reliable, especially in Vite-based projects where large folders and full page reloads were slowing things down. They also added a new Turbopack loader for Next.js-style setups and a WebAssembly fallback so the core engine works on more platforms. Alongside those bigger items came a steady stream of small fixes to how classes are detected and CSS is generated.

Week by week

2026-08-10This week was all about performance and correctness fixes, with big wins for Vite users on projects with lots of ignored files.latest6 changes

Refactor

Faster Vite rebuilds

Projects using the Vite plugin with large gitignored directories no longer suffer from slow rebuilds.

Fix

No unnecessary full page reloads

The Vite plugin now avoids forcing the whole browser page to reload when it isn't needed.

Fix

Cleaner supports- variants

Words like 'and', 'or', and 'not' inside supports-[...] conditions are no longer incorrectly spaced out.

Fix

Skip unsupported theme values

Utilities no longer output values when an unsupported modifier is attached, avoiding broken CSS.

Fix

Safer scanner input

Files containing invalid text encoding are dropped as candidates instead of causing problems.

Fix

Safer legacy config conversion

Converting old config files no longer breaks when certain theme sections contain plain strings.

2026-08-03The team improved platform compatibility with a WebAssembly fallback and fixed several edge cases in class detection.6 changes

Feature

WebAssembly fallback for the core engine

If the fast native engine can't run on someone's machine, a WebAssembly version is used instead so everything still works.

Fix

Prevent Vite crash

The Vite plugin no longer crashes when used with Vite's experimental 'bundledDev' mode.

Fix

Better Ruby class detection

Class names written in Ruby string literals with angle brackets or custom delimiters are now found correctly.

Fix

Respect ignored folders in safelisting

Folders listed in .gitignore are skipped during safelist scanning, saving time and avoiding noise.

Fix

--default() emits values unchanged

The --default(...) function now outputs its value exactly as given rather than altering it.

Chore

Dependency updates

Several underlying libraries were bumped to newer versions for stability and security.

2026-07-27A new Turbopack loader shipped this week alongside fixes for symlinked files and better handling of advanced CSS at-rules.6 changes

Feature

Turbopack loader support

Tailwind can now be used directly with Turbopack (the faster Next.js bundler), complete with integration tests.

Fix

Symlinked file changes detected

Editing files that live outside the project but are linked into it via symlinks now triggers rebuilds correctly.

Fix

Better @scope handling

CSS that uses the @scope rule is processed more reliably.

Fix

Cleaner fallback variable formatting

Fallback values in CSS variables are formatted consistently with a space after commas.

Chore

BOM character test coverage

Tests were updated to confirm the invisible byte-order mark at the start of files is re-emitted correctly by PostCSS.

Refactor

Smarter variant conversion

Variants with custom bracketed values are converted to built-in equivalents where possible, producing tidier code.

03 · Security check

Dependencies and code review

8 dependencies scanned

Dependency advisories

Security Watch

No known advisories across 8 scanned dependencies.

No known advisories in the scanned dependencies.

Code review

No concrete code-level issues confirmed.

Get this report every week for your repos.

GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.

$19 a month, flat · First 10 outputs free · No card required