Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Nova Snowball Laravel Package

stephenlake/nova-snowball

Nova Snowball is a Laravel Nova tool for exploring Eloquent relationships. Start at a resource and snowball outward through connected models, expanding related records as you go, so you can navigate complex data relationships directly inside your Nova admin panel.

View on GitHub
Deep Wiki
Context7

Getting Started

  1. Check Nova version compatibility first. This package's last release was 2020-12-31, so it targets Nova v2/v3 styling. Confirm your installed Nova version before committing:

    composer show laravel/nova
    

    If you're on Nova 4/5, expect to either skip this package or treat it as CSS reference material rather than a drop-in theme.

  2. Install via Composer.

    composer require stephenlake/nova-snowball
    
  3. Register the theme. Depending on your Nova version, this is either:

    • Nova v3: set the theme in config/nova.php (or call Nova::theme('snowball') in NovaServiceProvider::boot()), or
    • Let a package service provider auto-register it (verify with php artisan package:discover).
  4. Publish Nova assets so the theme's CSS is served:

    php artisan vendor:publish --tag=nova-assets
    php artisan nova:publish
    
  5. Clear caches (Nova caches its manifest and views aggressively):

    php artisan optimize:clear
    
  6. First use case: internal admin panels, ops dashboards, or client back-offices where you want Nova to match a dark-blue/white brand palette without building a custom theme from scratch. Load the dashboard, confirm typography, sidebar, buttons, and form controls picked up the theme.

  7. Where to look first: the package's resources/ (or dist/) folder for the compiled CSS, and the README for the exact registration line for your Nova version. If registration is ambiguous, search Nova's config/nova.php for 'theme' and compare against other installed tools.

Implementation Patterns

Baseline swap-in. Install once, register, publish, and leave it. Best for a single Nova app where the theme is global and no per-user toggling is needed.

Environment-scoped theming. Only register the theme in non-production or internal environments to avoid surprising client-facing admin users:

// NovaServiceProvider::boot()
if (! app()->environment('production')) {
    Nova::theme('snowball');
}

Brand-override layer. Don't fork the package. Publish the theme CSS and append a small override file that targets Nova's CSS custom properties or class selectors:

/* resources/css/nova-overrides.css */
:root {
    --color-primary: #0d1b2a;
    --color-primary-dark: #08121c;
}

Then publish/compile through Nova's asset pipeline (php artisan nova:publish) so overrides land after the theme styles.

Theme-as-reference for a custom theme. Clone the repo, use its SCSS/CSS structure as the starting point for php artisan nova:theme, and keep the package installed only if you want the baseline. This is the most realistic long-term pattern given the package's age.

CI/CD integration.

- run: composer install --no-dev --optimize-autoloader
- run: php artisan nova:publish
- run: php artisan optimize:clear

Ensure public/vendor/nova is either committed or built in the deploy pipeline — a missing published asset is the most common "theme not applied" failure.

Pair with custom branding. Themes only handle colors/typography; add your logo, name, and footer via Nova::brand() and Nova::footer() in the same service provider for a cohesive result.

Gotchas and Tips

  • Version drift is the big one. Last release 2020-12-31 means Nova 4/5 class names and CSS variables may not match. Before adopting, diff the theme's selectors against your Nova version's compiled CSS in public/vendor/nova/app.css.
  • "Nothing changed" usually means assets weren't published. Confirm public/vendor/nova/ exists and contains the theme files. Run php artisan nova:publish and hard-refresh; Nova's asset manifest is cached.
  • Browser cache. Nova manifests assets with hashes; if you edited CSS, re-publish and hard reload. In dev, php artisan optimize:clear && php artisan view:clear fixes most ghost issues.
  • Registration ambiguity. Older Nova themes sometimes required manual provider registration, sometimes config/nova.php. If php artisan package:discover doesn't pick it up, add the service provider manually or check the README for the exact Nova::theme() call.
  • No per-user toggling. Themes are global. If users need light/dark choice, this package won't give you that out of the box — you'd need to layer CSS variable switching yourself.
  • Nova-only scope. This affects Nova's UI, not your public app. Don't expect Laravel Blade views or emails to inherit the palette.
  • CSS specificity fights. If a custom tool or field ships its own styles, theme overrides may lose. Append your overrides last or use a higher-specificity selector scoped to .nova / #nova.
  • Extension points are thin. There's no documented plugin API — treat it as static CSS. Your real extension surface is (a) a small overrides file and (b) forking the SCSS if you need structural changes.
  • Maintenance risk. 38 stars and no releases since 2020 means no security patches or Nova-version updates. Budget for a fork or a migration to a maintained theme if you depend on Nova upgrades.
  • Debugging tip. Inspect the computed CSS variable values in DevTools on :root and on .nova — if your overrides aren't winning, the theme's declaration order or specificity is the culprit, not the framework.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log