tailwindcss/packages
Philipp Spiess dc6980230d
Fix CSS theme() function resolution issue (#14614)
We currently have three different implementations of the
`resolveThemeValue()` Theme method:

1. The _core_ version which only resolves based on the exact CSS
variable name. This is the v4-only version.
2. A _compat light_ version which attempts to translate a dot-notation
keypath to a CSS variable name.
3. A _full compat_ version which resolves the legacy theme object which
is used whenever a `@plugin` or `@config` is added.

Unfortunately, there are some issues with this approach that we've
encountered when testing the CSS `theme()` function while upgrading
Tailwind Templates to v4 using our upgrading toolkit.

1. The _compat light_ resolver was trying to convert `theme(spacing.1)`
to tuple syntax. Tuples require a nested property access, though, and
instead this should be convert to `theme(--spacing-1)`.
2. We currently only load _full compat_ version if `@plugin` or
`@config` directives are used. It is possible, though, that we need the
full compat mapping in other cases as well. One example we encountered
is `theme(fontWeight.semibold)` which maps to a dictionary in the
default theme that that we do not have an equivalent for in v4
variables.

To fix both issues, we decided to remove the _compat light_ version of
the `theme()` function in favor of adding this behavior to an upgrade
codemod. Instead, the second layer now only decides wether it can use
the _core_ version or wether it needs to upgrade to the _full compat_
version. Since typos would trigger a _hard error_, we do not think this
has unintended performance consequences if someone wants to use the
_core_ version only (they would get an error regardless which they need
to fix in order to continue).
2024-10-10 12:31:46 +02:00
..
@tailwindcss-cli Fix CLI client crash when a file is removed before we process the change notification (#14616) 2024-10-09 14:56:08 +00:00
@tailwindcss-node release v4.0.0-alpha.26 2024-10-03 16:39:59 +02:00
@tailwindcss-postcss Don't set display: none on elements that use hidden="until-found" (#14631) 2024-10-09 13:55:58 +02:00
@tailwindcss-standalone Update bun 1.1.26 → 1.1.29 (patch) (#14608) 2024-10-07 11:24:59 +02:00
@tailwindcss-upgrade Fix template migration issues (#14600) 2024-10-08 18:06:43 +02:00
@tailwindcss-vite release v4.0.0-alpha.26 2024-10-03 16:39:59 +02:00
internal-example-plugin Prefix internal modules with internal-* (#14074) 2024-07-29 10:58:07 -04:00
tailwindcss Fix CSS theme() function resolution issue (#14614) 2024-10-10 12:31:46 +02:00
tsconfig.base.json introduce v4 codebase 2024-03-05 14:29:15 +01:00