Tailwind v4's native cascade layers enforce strict precedence (base > components > utilities), causing custom @layer components rules to lose specificity against utilities unless explicitly layered. The error manifests as buttons not responding to hover:bg-blue-500 because component styles block utility variants. Fix by using @layer utilities for interactive states or @apply within correct layers to respect Oxide's layer resolution.
Step 1:-Identify the Conflict
Inspect DevTools Layers panel or generated CSS hover states fail because .btn in components layer overrides utility variants. Confirm with this reproduction:
CSS:-
XML:-
Step 2:-Separate Base Styles
Move static, non-interactive styles to @layer components only layout, colors, typography.
Step 3:-Isolate Variants to Utilities Layer
Define hover/focus/active states in @layer utilities to respect cascade order and enable variant composition.
Step 4:-Compose in Markup
Apply base + variants as separate classes for full control and purging efficiency
Step 5:-Verify Fix
Check DevTools: hover rule now appears in utilities layer with correct precedence. Test production build no purge loss since classes appear in content files.
.png)

.png)
.png)