This PR contains the following updates: | Package | Change | Age | Confidence | |---|---|---|---| | [tailwindcss](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss)) | [`3.4.17` -> `4.1.11`](https://renovatebot.com/diffs/npm/tailwindcss/3.4.17/4.1.11) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>tailwindlabs/tailwindcss (tailwindcss)</summary> ### [`v4.1.11`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4111---2025-06-26) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.10...v4.1.11) ##### Fixed - Add heuristic to skip candidate migrations inside `emit(…)` ([#​18330](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18330)) - Extract candidates with variants in Clojure/ClojureScript keywords ([#​18338](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18338)) - Document `--watch=always` in the CLI's usage ([#​18337](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18337)) - Add support for Vite 7 to `@tailwindcss/vite` ([#​18384](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18384)) ### [`v4.1.10`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4110---2025-06-11) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.9...v4.1.10) ##### Fixed - Fix incorrectly generated CSS when using percentages in arbitrary values with calc, e.g.: `w-[calc(100%-var(--offset))]` ([#​18289](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18289)) ### [`v4.1.9`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#419---2025-06-11) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.8...v4.1.9) ##### Fixed - Correctly parse custom properties with strings containing semicolons ([#​18251](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18251)) - Upgrade: Migrate arbitrary modifiers without percentage signs to bare values (e.g. `/[0.16]` → `/16`) ([#​18184](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18184)) - Upgrade: Migrate CSS variable shorthands where fallback value contains function call ([#​18184](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18184)) - Upgrade: Migrate negative arbitrary values to negative bare values (e.g. `mb-[-32rem]` → `-mb-128`) ([#​18212](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18212)) - Upgrade: Do not migrate `blur` in `wire:model.blur` ([#​18216](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18216)) - Don't add spaces around CSS dashed idents when formatting math expressions ([#​18220](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18220)) ### [`v4.1.8`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#418---2025-05-27) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.7...v4.1.8) ##### Added - Improve error messages when `@apply` fails ([#​18059](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18059)) ##### Fixed - Upgrade: Do not migrate declarations that look like candidates in `<style>` blocks ([#​18057](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18057), [18068](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18068)) - Upgrade: Don't error when looking for `tailwindcss` in pnpm monorepos ([#​18065](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18065)) - Upgrade: Don't error when updating dependencies in pnpm monorepos ([#​18065](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18065)) - Upgrade: Migrate deprecated `order-none` to `order-0` ([#​18126](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18126)) - Support Leptos `class:` attributes when extracting classes ([#​18093](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18093)) - Fix "Cannot read properties of undefined" crash on malformed arbitrary value ([#​18133](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18133)) - Upgrade: Migrate `-mt-[0px]` to `mt-[0px]` instead of the other way around ([#​18154](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18154)) - Fix Haml pre-processing crash when there is no `\n` at the end of the file ([#​18155](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18155)) - Ignore `.pnpm-store` folders by default (can be overridden by `@source …` rules) ([#​18163](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18163)) - Fix PostCSS crash when calling `toJSON()` ([#​18083](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18083)) ### [`v4.1.7`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#417---2025-05-15) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.6...v4.1.7) ##### Added - Upgrade: Migrate bare values to named values ([#​18000](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18000)) - Upgrade: Added cache to improve template migration performance ([#​18025](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18025)) ##### Fixed - Allow `_` before numbers during candidate extraction ([#​17961](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17961)) - Prevent duplicate suggestions when using `@theme` and `@utility` together ([#​17675](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17675)) - Ensure that media queries within `::before` and `::after` pseudo selectors create valid CSS rules in production builds ([#​17979](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17979)) - Ensure that the standalone CLI does not leave temporary files behind ([#​17981](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17981)) - Ensure `-rotate-*` utilities properly negate arbitrary values ([#​18014](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18014)) - Ignore custom variants using `:merge(…)` selectors in legacy JS plugins ([#​18020](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18020)) - Ensure classes containing `.` are properly extracted from Clojure files ([#​18038](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18038)) - Upgrade: Fix error when using `@import … source(…)` ([#​17963](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17963)) - Upgrade: Change casing of utilities with named values to kebab-case to match updated theme variables ([#​18017](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18017)) - Upgrade: Don't migrate strings that match utility names in Vue attribute bindings other than `class` ([#​18025](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18025)) ### [`v4.1.6`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#416---2025-05-09) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.5...v4.1.6) ##### Added - Upgrade: Automatically convert arbitrary values to named values when possible (e.g. `h-[1lh]` to `h-lh`) ([#​17831](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17831), [#​17854](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17854)) - Upgrade: Update dependencies in parallel for improved performance ([#​17898](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17898)) - Add detailed logging about `@source` directives, discovered files and scanned files when using `DEBUG=*` ([#​17906](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17906), [#​17952](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17952)) - Add support for generating source maps in development ([#​17775](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17775)) ##### Fixed - Ensure negative arbitrary `scale` values generate negative values ([#​17831](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17831)) - Fix HAML extraction with embedded Ruby ([#​17846](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17846)) - Don't scan files for utilities when using `@reference` ([#​17836](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17836)) - Fix incorrectly replacing `_` with ` ` in arbitrary modifier shorthand `bg-red-500/(--my_opacity)` ([#​17889](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17889)) - Don't scan `.log` files for classes by default ([#​17906](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17906)) - Ensure that custom utilities applying other custom utilities don't swallow nested `@apply` rules ([#​17925](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17925)) - Download platform specific package if `optionalDependencies` are skipped ([#​17929](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17929)) ### [`v4.1.5`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#415---2025-04-30) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.4...v4.1.5) ##### Added - Support using `@tailwindcss/upgrade` to upgrade between versions of v4.\* ([#​17717](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17717)) - Add `h-lh` / `min-h-lh` / `max-h-lh` utilities ([#​17790](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17790)) - Transition `display`, `visibility`, `content-visibility`, `overlay`, and `pointer-events` when using `transition` to simplify `@starting-style` usage ([#​17812](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17812)) ##### Fixed - Don't scan `.geojson` or `.db` files for classes by default ([#​17700](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17700), [#​17711](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17711)) - Hide default shadow suggestions when missing default shadow theme keys ([#​17743](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17743)) - Replace `_` with `.` in theme suggestions for `@utility` if surrounded by digits ([#​17733](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17733)) - Skip `color-mix(…)` when opacity is `100%` ([#​17815](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17815)) - PostCSS: Ensure that errors in imported stylesheets are recoverable ([#​17754](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17754)) - Upgrade: Bump all Tailwind CSS related dependencies during upgrade ([#​17763](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17763)) - Upgrade: Don't add `-` to variants starting with `@` ([#​17814](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17814)) - Upgrade: Don't format stylesheets that didn't change when upgrading ([#​17824](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17824)) ### [`v4.1.4`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#414---2025-04-14) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.3...v4.1.4) ##### Added - Add experimental `@tailwindcss/oxide-wasm32-wasi` target for running Tailwind in browser environments like StackBlitz ([#​17558](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17558)) ##### Fixed - Ensure `color-mix(…)` polyfills do not cause used CSS variables to be removed ([#​17555](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17555)) - Ensure `color-mix(…)` polyfills create fallbacks for theme variables that reference other theme variables ([#​17562](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17562)) - Fix brace expansion in declining ranges like `{10..0..5}` and `{0..10..-5}` ([#​17591](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17591)) - Work around a Chrome rendering bug when using the `skew-*` utilities ([#​17627](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17627)) - Ensure container query variant names can contain hyphens ([#​17628](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17628)) - Ensure `shadow-inherit`, `inset-shadow-inherit`, `drop-shadow-inherit`, and `text-shadow-inherit` inherit the shadow color ([#​17647](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17647)) - Ensure compatibility with array tuples used in `fontSize` JS theme keys ([#​17630](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17630)) - Ensure folders with binary file extensions in their names are scanned for utilities ([#​17595](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17595)) - Upgrade: Convert `fontSize` array tuple syntax to CSS theme variables ([#​17630](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17630)) ### [`v4.1.3`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#413---2025-04-04) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.2...v4.1.3) ##### Fixed - Show warning when using unsupported bare value data type in `--value(…)` ([#​17464](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17464)) - PostCSS: Ensure changes to the input CSS file don't generate stale output when using Turbopack ([#​17554](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17554)) - Ensure classes are detected in Ruby's `%w` syntax in Slim templates ([#​17557](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17557)) ### [`v4.1.2`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#412---2025-04-03) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.1...v4.1.2) ##### Fixed - Don't rely on the presence of `@layer base` to polyfill `@property` ([#​17506](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17506)) - Support setting multiple inset shadows as arbitrary values ([#​17523](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17523)) - Fix `drop-shadow-*` utilities that are defined with multiple shadows ([#​17515](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17515)) - PostCSS: Fix race condition when two changes are queued concurrently ([#​17514](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17514)) - PostCSS: Ensure files containing `@tailwind utilities` are processed ([#​17514](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17514)) - Ensure the `color-mix(…)` polyfill creates fallbacks even when using colors that cannot be statically analyzed ([#​17513](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17513)) - Fix slow incremental builds with `@tailwindcss/vite` and `@tailwindcss/postscss` (especially on Windows) ([#​17511](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17511)) - Vite: Fix missing CSS file in Qwik setups ([#​17533](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17533)) ### [`v4.1.1`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#411---2025-04-02) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.0...v4.1.1) ##### Fixed - Disable padding in `@source inline(…)` brace expansion ([#​17491](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17491)) - Inject polyfills after `@import` and body-less `@layer` ([#​17493](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17493)) - Ensure `@tailwindcss/cli` does not contain an import for `jiti` ([#​17502](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17502)) ### [`v4.1.0`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#410---2025-04-01) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.17...v4.1.0) ##### Added - Add `details-content` variant ([#​15319](https://redirect.github.com/tailwindlabs/tailwindcss/pull/15319)) - Add `inverted-colors` variant ([#​11693](https://redirect.github.com/tailwindlabs/tailwindcss/pull/11693)) - Add `noscript` variant ([#​11929](https://redirect.github.com/tailwindlabs/tailwindcss/pull/11929), [#​17431](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17431)) - Add `items-baseline-last` and `self-baseline-last` utilities ([#​13888](https://redirect.github.com/tailwindlabs/tailwindcss/pull/13888), [#​17476](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17476)) - Add `pointer-none`, `pointer-coarse`, and `pointer-fine` variants ([#​16946](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16946)) - Add `any-pointer-none`, `any-pointer-coarse`, and `any-pointer-fine` variants ([#​16941](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16941)) - Add safe alignment utilities ([#​14607](https://redirect.github.com/tailwindlabs/tailwindcss/pull/14607)) - Add `user-valid` and `user-invalid` variants ([#​12370](https://redirect.github.com/tailwindlabs/tailwindcss/pull/12370)) - Add `wrap-anywhere`, `wrap-break-word`, and `wrap-normal` utilities ([#​12128](https://redirect.github.com/tailwindlabs/tailwindcss/pull/12128)) - Add `@source inline(…)` and `@source not inline(…)` ([#​17147](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17147)) - Add `@source not "…"` ([#​17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255)) - Add `text-shadow-*` utilities ([#​17389](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17389)) - Add `mask-*` utilities ([#​17134](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17134)) - Add `bg-{position,size}-*` utilities for arbitrary values ([#​17432](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17432)) - Add `shadow-*/<alpha>`, `inset-shadow-*/<alpha>`, `drop-shadow-*/<alpha>`, and `text-shadow-*/<alpha>` utilities to control shadow opacity ([#​17398](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17398), [#​17434](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17434)) - Add `drop-shadow-<color>` utilities ([#​17434](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17434)) - Improve compatibility with older versions of Safari and Firefox ([#​17435](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17435)) ##### Fixed - Follow symlinks when resolving `@source` directives ([#​17391](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17391)) - Don't scan ignored files for classes when changing an ignored file triggers a rebuild using `@tailwindcss/cli` ([#​17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255)) - Support negated `content` rules in legacy JavaScript configuration ([#​17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255)) - Interpret syntax like `@("@​")md:…` as `@md:…` in Razor files ([#​17427](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17427)) - Disallow top-level braces, top-level semicolons, and unbalanced parentheses and brackets in arbitrary values ([#​17361](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17361)) - Ensure the `--theme(…)` function still resolves to the CSS variables when using legacy JS plugins ([#​17458](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17458)) - Detect used theme variables in CSS module files ([#​17433](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17433), [#​17467](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17467)) ##### Changed - Ignore `node_modules` by default (can be overridden by `@source …` rules) ([#​17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255)) - `@source` rules that include file extensions or point inside `node_modules/` folders no longer consider your `.gitignore` rules ([#​17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255)) - Deprecate `bg-{left,right}-{top,bottom}` in favor of `bg-{top,bottom}-{left,right}` utilities ([#​17378](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17378)) - Deprecate `object-{left,right}-{top,bottom}` in favor of `object-{top,bottom}-{left,right}` utilities ([#​17437](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17437)) ### [`v4.0.17`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4017---2025-03-26) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.16...v4.0.17) ##### Fixed - Fix an issue causing the CLI to hang when processing Ruby files ([#​17383](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17383)) ### [`v4.0.16`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4016---2025-03-25) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.15...v4.0.16) ##### Added - Add support for literal values in `--value('…')` and `--modifier('…')` ([#​17304](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17304)) ##### Fixed - Fix class extraction followed by `(` in Pug ([#​17320](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17320)) - Ensure `@keyframes` for theme animations are emitted if they are referenced following a comma ([#​17352](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17352)) - Vite: Ensure that updates to an imported CSS file are properly propagated after updating source files ([#​17347](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17347)) - Pre process `Slim` templates embedded in Ruby files ([#​17336](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17336)) - Error when input and output files resolve to the same file when using the CLI ([#​17311](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17311)) - Add missing suggestions when `--spacing(--value(integer, number))` is used ([#​17308](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17308)) - Add `::-webkit-details-marker` pseudo to `marker` variant ([#​17362](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17362)) ### [`v4.0.15`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4015---2025-03-20) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.14...v4.0.15) ##### Fixed - Fix incorrect angle in `-bg-conic-*` utilities ([#​17174](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17174)) - Fix `border-[12px_4px]` being interpreted as a `border-color` instead of a `border-width` ([#​17248](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17248)) - Work around a crash in Safari 16.4 and 16.5 when using the default Preflight styles ([#​17306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17306)) - Pre-process `<template lang="…">` in Vue files ([#​17252](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17252)) - Ensure that all CSS variables used by Preflight are prefixed ([#​17036](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17036)) - Prevent segfault when loaded in a worker thread on Linux ([#​17276](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17276)) - Ensure multiple `--value(…)` or `--modifier(…)` calls don't delete subsequent declarations ([#​17273](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17273)) - Fix class extraction followed by `(` in Slim ([#​17278](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17278)) - Export `PluginUtils` from `tailwindcss/plugin` for compatibility with v3 ([#​17299](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17299)) - Remove redundant `line-height: initial` from Preflight ([#​15212](https://redirect.github.com/tailwindlabs/tailwindcss/pull/15212)) - Increase Standalone hardware compatibility on macOS x64 builds ([#​17267](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17267)) - Ensure that the CSS file rebuilds if a new CSS variable is used from templates ([#​17301](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17301)) ##### Changed - The `--theme(…)` function now returns CSS variables from your theme variables unless used inside positions where CSS variables are invalid (e.g. inside `@media` queries) ([#​17036](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17036)) ### [`v4.0.14`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4014---2025-03-13) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.13...v4.0.14) ##### Fixed - Do not extract candidates with JS string interpolation `${` ([#​17142](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17142)) - Fix extraction of variants containing `.` character ([#​17153](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17153)) - Fix extracting candidates in Clojure/ClojureScript ([#​17087](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17087)) ### [`v4.0.13`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4013---2025-03-11) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.12...v4.0.13) ##### Fixed - Fix Haml pre-processing ([#​17051](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17051)) - Ensure `.node` and `.wasm` files are not scanned for utilities ([#​17123](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17123)) - Improve performance when scanning JSON files ([#​17125](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17125)) - Fix extracting candidates containing dots in Haml, Pug, and Slim pre processors ([#​17094](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17094), [#​17085](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17085), [#​17113](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17113)) - Don't create invalid CSS when encountering a link wrapped in square brackets ([#​17129](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17129)) ### [`v4.0.12`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4012---2025-03-07) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.11...v4.0.12) ##### Fixed - Vite: Fix `url(…)` rebasing in transitively imported CSS files ([#​16965](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16965)) - PostCSS: Rebase `url(…)`s in imported CSS files ([#​16965](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16965)) - Ensure utilities are sorted based on their actual property order ([#​16995](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16995)) - Ensure strings in Pug and Slim templates are handled correctly ([#​17000](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17000)) - Ensure classes between `}` and `{` are properly extracted ([#​17001](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17001)) - Fix `razor`/`cshtml` pre-processing ([#​17027](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17027)) - Ensure extracting candidates from JS embedded in a PHP string works as expected ([#​17031](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17031)) ### [`v4.0.11`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4011---2025-03-06) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.10...v4.0.11) ##### Fixed - Ensure classes containing `--` are extracted correctly ([#​16972](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16972)) - Ensure classes containing numbers followed by dash or underscore are extracted correctly ([#​16980](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16980)) - Ensure arbitrary container queries are extracted correctly ([#​16984](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16984)) - Ensure classes ending in `[` are extracted in Slim templating language ([#​16985](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16985)) - Ensure arbitrary variables with data types are extracted correctly ([#​16986](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16986)) ### [`v4.0.10`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4010---2025-03-05) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.9...v4.0.10) ##### Added - Add `col-<number>` and `row-<number>` utilities for `grid-column` and `grid-row` ([#​15183](https://redirect.github.com/tailwindlabs/tailwindcss/pull/15183)) ##### Fixed - Ensure `not-*` does not remove `:is(…)` from variants ([#​16825](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16825)) - Ensure `@keyframes` are correctly emitted when using a prefix ([#​16850](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16850)) - Don't swallow `@utility` declarations when `@apply` is used in nested rules ([#​16940](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16940)) - Ensure `outline-hidden` behaves like `outline-none` outside of forced colors mode ([#​16943](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16943)) - Allow `!important` on CSS variables again ([#​16873](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16873)) - Vite: Do not crash when encountering an `.svg` file with `#` or `?` in the filename ([#​16957](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16957)) - Ensure utilities are properly detected within square brackets ([#​16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306)) - Ensure utilities are properly detected using Angular's conditional class binding syntax ([#​16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306)) - Ensure utilities starting with numbers are properly extracted from Slim templates ([#​16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306)) - Discard arbitrary property candidates that have guaranteed-invalid property names ([#​16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306)) ##### Changed - Removed `max-w-auto` and `max-h-auto` utilities as they generate invalid CSS ([#​16917](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16917)) - Replaced the existing candidate extractor with a brand new extractor to improve maintainability, correctness, and performance ([#​16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306)) ### [`v4.0.9`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#409---2025-02-25) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.8...v4.0.9) ##### Fixed - Make JS APIs available to plugins and configs in the Standalone CLI ([#​15934](https://redirect.github.com/tailwindlabs/tailwindcss/pull/15934)) - Vite: Don't crash when importing a virtual module from JavaScript that ends in `.css` ([#​16780](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16780)) - Fix an issue where `@reference "…"` would sometimes omit keyframe animations ([#​16774](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16774)) - Ensure `z-*!` utilities are properly marked as `!important` ([#​16795](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16795)) - Read UTF-8 CSS files that start with a byte-order mark (BOM) ([#​16796](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16796)) - Ensure nested functions in selectors used with JavaScript plugins are not truncated ([#​16802](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16802)) ##### Changed - Emit variable fallbacks when using `@reference "…"` instead of duplicate CSS variable declarations ([#​16774](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16774)) ### [`v4.0.8`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#408---2025-02-21) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.7...v4.0.8) ##### Added - Allow `@import` with `theme(…)` options for stylesheets that contain more than just `@theme` rules ([#​16514](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16514)) ##### Fixed - Don't add `!important` to CSS variable declarations when using the important modifier ([#​16668](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16668)) - Vite: Ignore files and directories specified in your `.gitignore` file when using automatic source detection([#​16631](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16631)) - Vite: Don't rely on the module graph for detecting candidates to ensure setups with multiple Vite builds work as expected ([#​16631](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16631)) - Vite: Ensure Astro production builds always contain classes used in client-only components ([#​16631](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16631)) - Vite: Always scan raw file contents for utility classes before any other transforms have been applied to ensure utility classes are scanned without any additional escaping ([#​16631](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16631)) - Ensure utilities with more declarations are always sorted before utilities with fewer declarations when utilities only define CSS variables ([#​16715](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16715)) - Only include `translate-z-px` utilities once in compiled CSS ([#​16718](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16718)) ##### Changed - Don't include theme variables that aren't used in compiled CSS ([#​16211](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16211), [#​16676](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16676)) ### [`v4.0.7`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#407---2025-02-18) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.6...v4.0.7) ##### Fixed - Export `tailwindcss/lib/util/flattenColorPalette.js` for backward compatibility ([#​16411](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16411)) - Fix sorting of numeric utility suggestions when they have different magnitudes ([#​16414](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16414)) - Show suggestions for fractions in IntelliSense ([#​16353](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16353)) - Don’t replace `_` in suggested theme keys ([#​16433](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16433)) - Ensure `--default-outline-width` can be used to change the `outline-width` value of the `outline` utility ([#​16469](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16469)) - Ensure drop shadow utilities don't inherit unexpectedly ([#​16471](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16471)) - Export config and plugin types from `tailwindcss/plugin` for backward compatibility ([#​16505](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16505)) - Ensure JavaScript plugins that emit nested rules referencing the utility name work as expected ([#​16539](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16539)) - Statically link Visual Studio redistributables in `@tailwindcss/oxide` Windows builds ([#​16602](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16602)) - Ensure that Next.js splat routes are scanned for classes ([#​16457](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16457)) - Pin exact version of `tailwindcss` in `@tailwindcss/*` packages ([#​16623](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16623)) - Upgrade: Report errors when updating dependencies ([#​16504](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16504)) - Upgrade: Ensure a `darkMode` JS config setting with block syntax converts to use `@slot` ([#​16507](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16507)) - Upgrade: Ensure the latest version of `tailwindcss` and `@tailwindcss/postcss` are installed when upgrading ([#​16620](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16620)) ### [`v4.0.6`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#406---2025-02-10) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.5...v4.0.6) ##### Fixed - Revert change to no longer include theme variables that aren't used in compiled CSS ([#​16403](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16403)) - Upgrade: Don't migrate `blur` to `blur-sm` when used with Next.js `<Image placeholder="blur" />` ([#​16405](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16405)) ### [`v4.0.5`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#405---2025-02-08) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.4...v4.0.5) ##### Added - Add `@theme static` option for always including theme variables in compiled CSS ([#​16211](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16211)) ##### Fixed - Remove rogue `console.log` from `@tailwindcss/vite` ([#​16307](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16307)) ##### Changed - Don't include theme variables that aren't used in compiled CSS ([#​16211](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16211)) ### [`v4.0.4`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#404---2025-02-06) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.3...v4.0.4) ##### Fixed - Fix a crash when setting JS theme values to `null` ([#​16210](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16210)) - Ensure escaped underscores in CSS variables in arbitrary values are properly unescaped ([#​16206](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16206)) - Ensure that the `containers` JS theme key is added to the `--container-*` namespace ([#​16169](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16169)) - Ensure theme `@keyframes` are generated even if an `--animation-*` variable spans multiple lines ([#​16237](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16237)) - Vite: Skip parsing stylesheets with the `?commonjs-proxy` flag ([#​16238](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16238)) - Fix `order-first` and `order-last` for Firefox ([#​16266](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16266)) - Fix support for older instruction sets on Linux x64 builds of the standalone CLI ([#​16244](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16244)) - Ensure `NODE_PATH` is respected when resolving JavaScript and CSS files ([#​16274](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16274)) - Ensure Node addons are packaged correctly with FreeBSD builds ([#​16277](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16277)) - Fix an issue where `@variant` inside a referenced stylesheet could cause a stack overflow ([#​16300](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16300)) ### [`v4.0.3`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#403---2025-02-01) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.2...v4.0.3) ##### Fixed - Fix incorrect removal of `@import url();` ([#​16144](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16144)) ### [`v4.0.2`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#402---2025-01-31) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.1...v4.0.2) ##### Fixed - Only generate positive `grid-cols-*` and `grid-rows-*` utilities ([#​16020](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16020)) - Ensure escaped theme variables are handled correctly ([#​16064](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16064)) - Ensure we process Tailwind CSS features when only using `@reference` or `@variant` ([#​16057](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16057)) - Refactor gradient implementation to work around [prettier/prettier#17058](https://redirect.github.com/prettier/prettier/issues/17058) ([#​16072](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16072)) - Vite: Ensure hot-reloading works with SolidStart setups ([#​16052](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16052)) - Vite: Fix a crash when starting the development server in SolidStart setups ([#​16052](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16052)) - Vite: Don't rebase URLs that appear to be aliases ([#​16078](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16078)) - Vite: Transform `<style>` blocks in HTML files ([#​16069](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16069)) - Prevent camel-casing CSS custom properties added by JavaScript plugins ([#​16103](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16103)) - Do not emit `@keyframes` in `@theme reference` ([#​16120](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16120)) - Discard invalid declarations when parsing CSS ([#​16093](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16093)) - Do not emit empty CSS rules and at-rules ([#​16121](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16121)) - Handle `@variant` when at the top-level of a stylesheet ([#​16129](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16129)) ### [`v4.0.1`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4017---2025-03-26) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.0...v4.0.1) ##### Fixed - Fix an issue causing the CLI to hang when processing Ruby files ([#​17383](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17383)) ### [`v4.0.0`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#400---2025-01-21) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v3.4.17...v4.0.0) ##### Added - [New high-performance engine](https://tailwindcss.com/blog/tailwindcss-v4#new-high-performance-engine) — where full builds are up to 5x faster, and incremental builds are over 100x faster — and measured in microseconds. - [Designed for the modern web](https://tailwindcss.com/blog/tailwindcss-v4#designed-for-the-modern-web) — built on cutting-edge CSS features like cascade layers, registered custom properties with `@property`, and `color-mix()`. - [Simplified installation](https://tailwindcss.com/blog/tailwindcss-v4#simplified-installation) — fewer dependencies, zero configuration, and just a single line of code in your CSS file. - [First-party Vite plugin](https://tailwindcss.com/blog/tailwindcss-v4#first-party-vite-plugin) — tight integration for maximum performance and minimum configuration. - [Automatic content detection](https://tailwindcss.com/blog/tailwindcss-v4#automatic-content-detection) — all of your template files are discovered automatically, with no configuration required. - [Built-in import support](https://tailwindcss.com/blog/tailwindcss-v4#built-in-import-support) — no additional tooling necessary to bundle multiple CSS files. - [CSS-first configuration](https://tailwindcss.com/blog/tailwindcss-v4#css-first-configuration) — a reimagined developer experience where you customize and extend the framework directly in CSS instead of a JavaScript configuration file. - [CSS theme variables](https://tailwindcss.com/blog/tailwindcss-v4#css-theme-variables) — all of your design tokens exposed as native CSS variables so you can access them anywhere. - [Dynamic utility values and variants](https://tailwindcss.com/blog/tailwindcss-v4#dynamic-utility-values-and-variants) — stop guessing what values exist in your spacing scale, or extending your configuration for things like basic data attributes. - [Modernized P3 color palette](https://tailwindcss.com/blog/tailwindcss-v4#modernized-p3-color-palette) — a redesigned, more vivid color palette that takes full advantage of modern display technology. - [Container queries](https://tailwindcss.com/blog/tailwindcss-v4#container-queries) — first-class APIs for styling elements based on their container size, no plugins required. - [New 3D transform utilities](https://tailwindcss.com/blog/tailwindcss-v4#new-3d-transform-utilities) — transform elements in 3D space directly in your HTML. - [Expanded gradient APIs](https://tailwindcss.com/blog/tailwindcss-v4#expanded-gradient-apis) — radial and conic gradients, interpolation modes, and more. - [@​starting-style support](https://tailwindcss.com/blog/tailwindcss-v4#starting-style-support) — a new variant you can use to create enter and exit transitions, without the need for JavaScript. - [not-\* variant](https://tailwindcss.com/blog/tailwindcss-v4#not-variant) — style an element only when it doesn't match another variant, custom selector, or media or feature query. - [Even more new utilities and variants](https://tailwindcss.com/blog/tailwindcss-v4#even-more-new-utilities-and-variants) — including support for `color-scheme`, `field-sizing`, complex shadows, `inert`, and more. Start using Tailwind CSS v4.0 today by [installing it in a new project](https://tailwindcss.com/docs/installation/), or playing with it directly in the browser on [Tailwind Play](https://play.tailwindcss.com/). For existing projects, we've published a comprehensive [upgrade guide](https://tailwindcss.com/docs/upgrade-guide) and built an [automated upgrade tool](https://tailwindcss.com/docs/upgrade-guide#using-the-upgrade-tool) to get you on the latest version as quickly and painlessly as possible. For a deep-dive into everything that's new, [check out the announcement post](https://tailwindcss.com/blog/tailwindcss-v4). </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/unraid/api). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjQxLjQwLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Unraid API
Monorepo for the Unraid API and Unraid Connect.
Explore the docs »
·
Report Bug
·
Request Feature
·
Submit Work Intent
🔌 Plugin Downloads
Production: https://stable.dl.unraid.net/unraid-api/dynamix.unraid.net.plg
Staging: https://preview.dl.unraid.net/unraid-api/dynamix.unraid.net.plg
Table of Contents
About The Project
Built With
Getting Started
This section will guide you through the steps necessary to get the monorepo projects running and communicating with each other.
Prerequisites
Make sure the following software is installed before proceeding.
- Bash
- Docker (for macOS folks, Orbstack works too)
- Node.js (v20)
- Just (optional)
- libvirt (macOS folks can run
brew install libvirt) - rclone (for development)
- An Unraid server for development
Alternative: Using Nix Flake
If you have Nix installed, you can use the provided flake to automatically set up all development dependencies:
nix develop
This will provide all the required tools (Node.js, Docker, Just, libvirt, rclone, etc.) without needing to install them manually.
SSH Key Setup
Next, create an SSH key if you haven't already. Once you have your key pair, add your public SSH key to your Unraid server:
- Log in to your Unraid development server.
- Use the navigation menu to go to 'Users'.
- Click on the user you logged in with (e.g.
root) - Paste your SSH public key into 'SSH authorized keys' and click 'Save'.
Installation
-
Clone and enter the repo
git clone git@github.com:unraid/api.git cd apiIf using Nix, enter the development environment:
nix develop -
Run the monorepo setup command.
pnpm install -
Run the build watcher to build the components and serve a local plugin file that can be installed on your Unraid server.
pnpm build:watchNavigate to Plugins->Install and install the local plugin file that is output to the console.
Tip
View other workflows (local dev, etc.) in the Developer Workflows
Usage
See How to Use the API.
For more examples, please refer to the Documentation
Contributing
For a complete guide on contributing to the project, including our code of conduct and development process, please see our Contributing Guide. Please read this before contributing.
Developer Documentation
For more information about development workflows, repository organization, and other technical details, please refer to the developer documentation inside this repository:
- Development Guide - Setup, building, and debugging instructions
- Development Workflows - Detailed workflows for local development, building, and deployment
- Repository Organization - High-level architecture and project structure
Work Intent Process
Before starting development work on this project, you must submit a Work Intent and have it approved by a core developer. This helps prevent duplicate work and ensures changes align with the project's goals.
-
Create a Work Intent
- Go to Issues → New Issue → Work Intent
- Fill out the brief template describing what you want to work on
- The issue will be automatically labeled as
work-intentandunapproved
-
Wait for Approval
- A core developer will review your Work Intent
- They may ask questions or suggest changes
- Once approved, the
unapprovedlabel will be removed
-
Begin Development
- Only start coding after your Work Intent is approved
- Follow the approach outlined in your approved Work Intent
- Reference the Work Intent in your future PR
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Top contributors
Community
Contact
@UnraidOfficial - contact@unraid.net
Project Link: https://github.com/unraid/api