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 Graphique Theme Laravel Package

yassi/nova-graphique-theme

A Graphique theme for Laravel Nova that gives your admin panel a polished, modern visual style. Install via Composer to refresh Nova’s interface with custom theme styling for a cleaner, more distinctive dashboard experience.

View on GitHub
Deep Wiki
Context7

Getting Started

Before touching anything, verify whether this package can even load in your Nova install. A 2019-02-26 release predates Nova 2.0; if your app runs Nova 2, 3, 4, or 5, expect CSS/layout regressions or a hard failure at boot. Check composer.json in the package for its illuminate/* and laravel/nova constraints before composer require — if it hard-pins laravel/nova: ~1.0, stop and consider a fork.

Minimal steps for a Nova 1.x codebase:

  1. composer require yassi/nova-graphique-theme
  2. If the package ships a service provider, it is auto-discovered; otherwise add it to config/app.php providers.
  3. Publish assets: php artisan vendor:publish --provider="Yassilah\NovaGraphiqueTheme\ThemeServiceProvider" --tag=assets (or --tag=nova-graphique-theme-assets, depending on the tag the provider declares — check src/ThemeServiceProvider.php).
  4. Point Nova at the theme in config/nova.php:
    'theme' => 'graphique',
    
    Nova resolves theme CSS from public/vendor/nova/themes/{theme}.css (or resources/views/vendor/nova/themes/), so the published filename must match this string.
  5. php artisan nova:publish and npm run prod if you compile your own Nova assets, then hard-refresh with cache disabled.

Where to look first: src/ (usually a single service provider and maybe a resources/css or public/ folder), then README.md, then your browser devtools Network tab for a 404 on the theme CSS — that 404 is the single most common "theme isn't working" symptom and tells you the publish step or the config/nova.php key is wrong.

First real use case: replacing Nova's default dark sidebar palette with the Graphique styling for a single internal admin panel. Treat it as a CSS skin only — it does not add components, fields, or resources.

Implementation Patterns

Pin-and-forget on legacy Nova. If you're on Nova 1.x, commit the composer.lock entry and don't upgrade. Themes are shallowly integrated (CSS + a config/nova.php string), so composer update is the enemy here — a Nova minor bump can silently shift class names the theme targets.

Fork as a local path repository. Since upstream is dormant, the more sustainable pattern is:

"repositories": [{"type": "path", "url": "packages/nova-graphique-theme"}]

Copy the package into packages/, then patch the CSS freely. You keep the same namespace and service provider, so nothing else changes, and you gain full control over the theme file.

Environment-scoped activation. Don't hard-code 'theme' => 'graphique' in config/nova.php. Use env:

'theme' => env('NOVA_THEME', 'graphique'),

so production can run vanilla Nova while local/staging experiments with the skin.

Layer your own overrides. Nova 1.x lets you publish views and CSS into resources/views/vendor/nova/ and public/vendor/nova/. Register the package first, then add a small custom.css loaded after the theme (via a Nova::script/Nova::style call in NovaServiceProvider::boot, if available in your Nova version) to nudge colors/branding without editing the package. Order matters — anything registered later wins.

Brand it as part of a broader Nova setup. Pair the theme with Nova::brand() / logo swap in app/Providers/NovaServiceProvider.php so the visual change is coherent. A theme alone on top of default branding tends to look half-finished.

Treat it as a template, not a dependency. The best day-to-day pattern with a 5-star, zero-dependent theme is: read its CSS, extract the useful tokens (colors, spacing, shadows), and merge them into your own small Nova theme. This is more maintainable than relying on an unmaintained package and is the realistic long-term path.

Gotchas and Tips

  • Nova version mismatch is the big one. Nova's frontend was rewritten between 1.x and 3.x. CSS from 2019 targets DOM and class names that no longer exist. Assume it's broken on Nova ≥ 2 until proven otherwise.
  • Theme CSS 404s are silent. Nova falls back to default styling without a console error — no visible warning. Check the Network tab first when "nothing changed."
  • config/nova.php caching. php artisan config:cache will freeze your 'theme' value; after editing you must config:clear. Same for view:clear if the theme publishes Blade assets.
  • Publish tag names vary. If vendor:publish fails with "no publishable resources," inspect the provider's publishes() call — the tag string is arbitrary and the README may be stale or missing.
  • Asset URL assumes public/vendor/nova/. If your APP_URL or asset base is behind a proxy/CDN, the theme CSS will request from the wrong host. Confirm via devtools.
  • No maintenance signal. Stars: 5, dependents: 0, last release 2019-02-26. No issue triage, no Nova 2/3 support, no security patches. Do not build anything on top of it that you can't throw away.
  • Extension points are minimal. There's no theme API — the package is essentially a stylesheet plus a registration hook. If you need dynamic theming (per-tenant, dark/light toggle), you're beyond what this gives you; look at Nova's nova:theme artisan command and scaffold your own.
  • Debugging tip: temporarily serve the theme CSS unminified and diff against Nova's default app.css to see exactly which selectors the theme assumes. That diff tells you in 30 seconds whether it will survive your Nova version.
  • Vue/JS assets: if the theme ships compiled JS (unlikely but check), it may embed a Vue build pinned to Nova 1.x. Loading mismatched Vue versions against your Nova runtime can throw runtime errors — strip the JS and keep only CSS if you hit this.
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.
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core