tailwindcss/playgrounds/vite/src
Jordan Pittman cc228fbfc3
Add support for matching multiple utility definitions for one candidate (#14231)
Currently if a plugin adds a utility called `duration` it will take
precedence over the built-in utilities — or any utilities with the same
name in previously included plugins. However, in v3, we emitted matches
from _all_ plugins where possible.

Take this plugin for example which adds utilities for
`animation-duration` via the `duration-*` class:

```ts
import plugin from 'tailwindcss/plugin'

export default plugin(
  function ({ matchUtilities, theme }) {
    matchUtilities(
      { duration: (value) => ({ animationDuration: value }) },
      { values: theme("animationDuration") },
    )
  },
  {
    theme: {
      extend: {
        animationDuration: ({ theme }) => ({
          ...theme("transitionDuration"),
        }),
      }
    },
  }
)
```

Before this PR this plugin's `duration` utility would override the
built-in `duration` utility so you'd get this for a class like
`duration-3500`:
```css
.duration-3000 {
  animation-duration: 3500ms;
}
```

Now, after this PR, we'll emit rules for `transition-duration`
(Tailwind's built-in `duration-*` utility) and `animation-duration`
(from the above plugin) and you'll get this instead:
```css
.duration-3000 {
  transition-duration: 3500ms;
}

.duration-3000 {
  animation-duration: 3500ms;
}
```

These are output as separate rules to ensure that they can all be sorted
appropriately against other utilities.

---------

Co-authored-by: Philipp Spiess <hello@philippspiess.com>
2024-08-22 16:22:12 +02:00
..
animate.js Add support for matching multiple utility definitions for one candidate (#14231) 2024-08-22 16:22:12 +02:00
app.css Add support for basic addVariant plugins with new @plugin directive (#13982) 2024-07-11 09:47:26 -04:00
app.tsx Add support for basic addVariant plugins with new @plugin directive (#13982) 2024-07-11 09:47:26 -04:00
bar.tsx introduce v4 codebase 2024-03-05 14:29:15 +01:00
foo.tsx introduce v4 codebase 2024-03-05 14:29:15 +01:00
forms.js Improve compatibility with @tailwindcss/typography and @tailwindcss/forms (#14221) 2024-08-22 08:06:21 -04:00
index.html introduce v4 codebase 2024-03-05 14:29:15 +01:00
main.tsx introduce v4 codebase 2024-03-05 14:29:15 +01:00
plugin.js Add support for basic addVariant plugins with new @plugin directive (#13982) 2024-07-11 09:47:26 -04:00
typography.js Improve compatibility with @tailwindcss/typography and @tailwindcss/forms (#14221) 2024-08-22 08:06:21 -04:00