v4.0.0 / 2025-02-01
v4.0.0 / 2025-02-01
Upgrade to Tailwind CSS v4
General changes:
- The dependency on
tailwindcss-ruby
is set to~> 4.0
. - The location of (optional)
postcss.config.js
has moved from theconfig/
directory to the app root. - The input file
app/assets/tailwind/application.tailwind.css
has been renamed toapp/assets/tailwind/application.css
. - If Propshaft is being used,
app/assets/tailwind
will be excluded from its asset handling. - The Inter font is no longer packaged with the gem.
- Some Tailwind class names in the generated ERB templates are updated for v4.
- The README is updated to contain verbose instructions on upgrading.
Changes to the tailwindcss:install
task:
- The
tailwindcss:install
task no longer installsconfig/tailwind.config.js
, as v4 recommends placing Tailwind configuration in the CSS file. - The Inter font is no longer configured in the application layout.
- The "tailwind" stylesheet link tag will only be added to the application layout if Propshaft isn't in use and therefore already handling
app/assets/build/tailwind.css
. Previously it was always injected, resulting in the tag being rendered twice if Propshaft was in use.
New task tailwindcss:upgrade
upgrades many apps cleanly:
- Cleans up
config/tailwind.config.js
and references it from the CSS file as recommended for v4 upgrades. - Runs the upstream upgrader (note: requires
npx
to run the one-time upgrade, but highly recommended). - Removes configuration for the Inter font from the application layout.
- If present, moves
config/postcss.config.js
to the root directory. - The "tailwind" stylesheet link tag will be removed if Propshaft is in use and already handling
app/assets/build/tailwind.css
. - The input file
app/assets/tailwind/application.tailwind.css
will be moved toapp/assets/tailwind/application.css
.
Thanks to @EricGusmao, @patriciomacadden, @excid3, and @brunoprietog for their feedback, contributions, and advice on v4 support.
Other changes
- The gem's Rails generators are now hidden in the
rails g --help
output. #483 @patriciomacadden