Skip to content

Don't consider the global important state in @apply #18404

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Jun 27, 2025

Conversation

thecrypticace
Copy link
Contributor

Fixes #18400

In v3 when you used important: true it did not affect @apply. However, in v4 it does and there's no way to make it not. This is definitely a bug and would be unexpected for users coming from v3 who use @apply and important together.

Basically, the following code, along with the detected utility flex in source files…

@import 'tailwindcss/utilities' important;
.flex-explicitly-important {
  @apply flex!;
}
.flex-not-important {
  @apply flex;
}

… would output this:

.flex {
  display: flex !important;
}
.flex-explicitly-important  {
  display: flex !important;
}
.flex-not-important {
  display: flex !important;
}

But it's expected that @apply doesn't consider the "global" important state. This PR addresss this problem and now the output is this:

.flex {
  display: flex !important;
}
.flex-explicitly-important  {
  display: flex !important;
}
.flex-not-important {
  display: flex; /* this line changed */
}

If you want to mark a utility as important in @apply you can still use ! after the utility to do so as shown above.

@thecrypticace thecrypticace requested a review from a team as a code owner June 27, 2025 14:34
Copy link
Member

@RobinMalfait RobinMalfait left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this makes sense, just a few suggestions.

I tested this on Catalyst and Tailwind Plus to make sure the output is identical (especially because we don't use @apply there). And the output is the same 👍

Co-authored-by: Robin Malfait <malfait.robin@gmail.com>
@thecrypticace thecrypticace merged commit 2030e94 into main Jun 27, 2025
7 checks passed
@thecrypticace thecrypticace deleted the fix/apply-important branch June 27, 2025 15:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Using important automatically applies it to utilites set via @apply in v4
2 participants