formfeed-uk/nova-theming-classes
Adds reusable theming and utility CSS classes to Laravel Nova, making it easy to customise the look of resources, cards, forms and detail views without writing bespoke styles. Drop-in classes keep Nova customisations consistent across your admin panel.
composer require formfeed-uk/nova-theming-classes. Nova packages of this type are auto-discovered via the extra.nova entry in composer.json, so no manual provider registration is normally required.php artisan nova:publish and clear caches (php artisan optimize:clear) before expecting any visible change — the package works by injecting classes at runtime, so a stale asset/manifest will make it look like nothing happened.resources/css/nova.css (or your custom theme's stylesheet) using the injected class instead of brittle structural selectors — e.g. targeting a resource table without relying on div[dusk="..."] attribute selectors or nth-child chains.npm run dev (or npm run prod) for your theme build..theming-<component> { ... } instead of #nova .card > div:nth-child(2). Prefer these hooks in your theme; they survive Nova minor UI churn far better than DOM-shape selectors.composer update never clobbers your work.dusk attribute) when you only want to restyle one screen.--card-radius, --panel-bg) and have your broader stylesheet consume them. This keeps specificity low and overrides composable.nova:brand/brandColors() so you aren't fighting Nova's own variable pipeline.update lifecycle hook so first-party components registered before liftOff get classes once mounted. If you previously worked around missing classes on early-mounted components (e.g. with MutationObserver shims, setTimeout hacks, or !important rules keyed on late-arriving classes), remove those workarounds and re-verify — they may now double-apply or mask real issues.!important.php artisan about / provider list), confirm the asset build includes your CSS, then inspect for the class before assuming your selector is wrong. If classes are missing on a specific component, that's the package's coverage gap, not your CSS.loader-utils 1.4.0 → 1.4.1) is build-tooling only. It affects the package's own JS build, not your runtime; no action needed on your side beyond a normal composer update.How can I help you explore Laravel packages today?