Modal backdrops render as opaque grey — Tailwind v3 opacity utilities not supported in v4 #108
Labels
No labels
bug
devops
duplicate
enhancement
good first issue
layout
next major release
next minor release
question
research
testing
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lvl0/fedi-feed-router#108
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Clicking Add Channel (or Add Feed) covers the viewport with a solid grey sheet instead of showing the modal. The modal itself renders and works correctly — it is hidden behind an opaque backdrop.
Root cause
The modal backdrops use
bg-opacity-75, a Tailwind v3 utility that was removed in v4. The project runs Tailwind 4.1.18 (package.json,resources/css/app.cssuses@import 'tailwindcss').Tailwind emits nothing for unrecognised classes, so the backdrop keeps
fixed inset-0 bg-gray-500at full opacity — a solid grey layer over the page.In v4, opacity is a slash modifier on the colour:
bg-gray-500/75.The correct syntax is already used elsewhere —
resources/views/layouts/app.blade.php:29hasbg-gray-600/75, which is why the mobile sidebar overlay works while the modals do not.Affected occurrences
Backdrops (
bg-gray-500 bg-opacity-75→bg-gray-500/75):resources/views/livewire/feeds.blade.php:108resources/views/livewire/channels.blade.php:130resources/views/livewire/channels.blade.php:184resources/views/livewire/routes.blade.php:149resources/views/livewire/routes.blade.php:231Rings (
ring-black ring-opacity-5→ring-black/5):resources/views/livewire/notification-bell.blade.php:26resources/views/components/dropdown.blade.php:31Secondary issue — stale asset build
The committed build in
public/build/dates to 2026-02-25, months before the modals were added.sm:max-w-lgis also missing from the compiled CSS as a result.The Dockerfile does run
npm run build, so production images compile fresh CSS — but the fix still requires a rebuilt image to ship, and the local build needs regenerating.Why this escaped testing
ChannelsTestLivewire tests all pass — they assert rendered HTML, never CSS.laravel.logbecause the backend behaves correctly.Acceptance criteria
Notes
Found while debugging against v1.3.2. An unrelated
APP_URLmisconfiguration on the production host (pointing at192.168.178.152instead of192.168.178.52) was discovered and fixed during the same session — not related to this bug.