Follow-up to the Tailwind CSS v4 migration (#2969). Now that the UI is on Tailwind v4 (tailwindcss@4.3.0, CSS-first @theme), a few v4 features are worth adopting — prioritized by value for this dark-themed app.
1. color-scheme: dark for native controls (recommended first)
The app is dark-themed but native controls — input[type=date], the <select> dropdown arrow, scrollbars, autofill — still render light. Setting color-scheme: dark (v4.1 scheme-dark utility, or in the base layer) makes them render dark. Directly addresses the recurring "native control looks off" issues.
2. Native container queries (@container)
The media-card grids in globals.css (.cards-vertical, .cards-horizontal) use manual @media (min-width: 440px) breakpoints. Container queries (first-class in v4) would size cards to their container rather than the viewport — better inside slideovers/modals. Medium value.
3. field-sizing-content (v4.1)
Auto-growing textareas (rule Description, notification fields) without JS. Minor.
4. text-shadow-* (v4.1)
For title/badge text overlaid on poster images (MediaCard) — legibility without a background pill. Minor.
Not needed here: 3D transforms, radial/conic gradients, @starting-style (we already use Headless UI transitions).
Also deferred from the migration
- Remove the v3→v4 default border-color compat shim in
globals.css (would require auditing bordered elements for explicit border colors).
Note: a reliable v4.2/v4.3 changelog wasn't available at migration time (npm doesn't bundle CHANGELOG.md; the GitHub releases page fetched unreliably), so confirm the newest point-release additions against the official changelog before relying on them. The items above are well-established v4.0/v4.1 features.
Follow-up to the Tailwind CSS v4 migration (#2969). Now that the UI is on Tailwind v4 (
tailwindcss@4.3.0, CSS-first@theme), a few v4 features are worth adopting — prioritized by value for this dark-themed app.1.
color-scheme: darkfor native controls (recommended first)The app is dark-themed but native controls —
input[type=date], the<select>dropdown arrow, scrollbars, autofill — still render light. Settingcolor-scheme: dark(v4.1scheme-darkutility, or in the base layer) makes them render dark. Directly addresses the recurring "native control looks off" issues.2. Native container queries (
@container)The media-card grids in
globals.css(.cards-vertical,.cards-horizontal) use manual@media (min-width: 440px)breakpoints. Container queries (first-class in v4) would size cards to their container rather than the viewport — better inside slideovers/modals. Medium value.3.
field-sizing-content(v4.1)Auto-growing textareas (rule Description, notification fields) without JS. Minor.
4.
text-shadow-*(v4.1)For title/badge text overlaid on poster images (MediaCard) — legibility without a background pill. Minor.
Not needed here: 3D transforms, radial/conic gradients,
@starting-style(we already use Headless UI transitions).Also deferred from the migration
globals.css(would require auditing bordered elements for explicit border colors).