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

jameslkingsley/nova-stripe-theme

A Stripe-inspired theme for Laravel Nova that gives your admin panel a clean, modern look with refined typography, subtle borders, and a soft color palette. Installs via Composer in seconds with no configuration needed.

View on GitHub
Deep Wiki
Context7

Getting Started

  • Install with Composer, pinning to a tag or commit since the package is archived:
    composer require jameslkingsley/nova-stripe-theme
    
  • Find out how it registers. Check two places first:
    1. vendor/jameslkingsley/nova-stripe-theme/composer.json → extra.laravel.providers (auto-discovery) and the require block for the laravel/nova version constraint.
    2. The package service provider's boot() method. Most Nova 1.x themes call Nova::theme('stripe') there; if the package doesn't auto-register, add that call to app/Providers/NovaServiceProvider.php inside boot() after parent::boot().
  • Look at the actual CSS next: vendor/jameslkingsley/nova-stripe-theme/resources/css/ (or dist/). This is the whole product — there is no runtime PHP behavior beyond registration.
  • First use case: apply the theme and verify it on the Nova login screen, dashboard, and a resource index/detail page. You are checking that the stylesheet loads after nova.css and that the Stripe-like palette (indigo accents, light gray surfaces, softer borders) is visible.
  • If nothing changes, hard-refresh the browser before assuming the install failed.

Implementation Patterns

  • Standard install + register. Require the package, then either rely on auto-discovery or add the theme registration manually. Clear php artisan config:clear and php artisan view:clear after touching the service provider.
  • Environment-gated theming. Don't force an archived theme on production. Toggle it by environment or config flag so local/staging gets the Stripe look while production stays on a maintained setup:
    public function boot()
    {
        parent::boot();
    
        if (app()->environment('local')) {
            Nova::theme('stripe');
        }
    }
    
  • Override, don't edit vendor. Create resources/css/nova-stripe-overrides.css, load it after the theme (via Nova::style() if available in your Nova version, or via your own service provider), and target Nova's selectors — .btn, .card, .sidebar, .resource-table, etc. If the theme exposes CSS custom properties, override those first; they're far more stable than class selectors.
  • Pin both sides. In composer.json, pin the theme to a specific tag/commit and pin laravel/nova to a compatible major (this package was released Jan 2019 and targets Nova 1.x). Run composer why-not laravel/nova and composer prohibits before upgrading Nova.
  • Global scope. Nova themes apply to every page, card, and tool in the panel. There's no per-resource opt-in unless you add your own body class and scope the CSS yourself.
  • Extract for longevity. Since the package is archived, the most durable pattern is to copy the CSS out of vendor/ into your app, commit it, and register it yourself. You keep the Stripe aesthetic without depending on a dead package.
  • Brand-color workflow. If you're adopting the Stripe look for a real product, don't ship the stock theme — port the palette (Stripe's indigo #635bff, neutral grays, subtle shadows) into your own overrides so brand changes don't require forking.

Gotchas and Tips

  • Archived and stale. Last release was 2019-01-15. It predates the Nova 3+ frontend rewrite (Vue 3/Tailwind) and Nova 4/5; selectors almost certainly won't match on modern Nova. Composer may install it, but the visual result will be broken or absent. Treat any Nova 3+ usage as a manual port, not an install.
  • Auto-discovery vs. manual registration. Check extra.laravel.providers before adding a Nova::theme() call yourself. Double registration is usually harmless but makes debugging confusing.
  • Boot, not register. Theme registration must run in NovaServiceProvider::boot() after parent::boot(). Calling it in register() silently does nothing useful.
  • CSS load order. If styles don't apply, inspect the <link> tags in the Nova layout — the theme must come after nova.css. Appending overrides to a stylesheet that loads earlier will lose the cascade.
  • Asset caching. Hard-refresh after changes; Nova serves compiled assets from public/vendor/nova. Only run php artisan nova:publish if you've intentionally overridden Nova's own assets — it won't fix a theme registration problem.
  • Never edit vendor/. Changes disappear on composer update / composer install. Fork, or copy the CSS into your app and register it yourself.
  • Cosmetic only. No migrations, no schema, no PHP behavior. Safe to remove if it breaks; removing it won't affect data.
  • Debugging checklist: (1) is the provider loaded? (2) does the Nova::theme() call execute? (3) is the stylesheet in the page source? (4) does it load after nova.css? (5) does the selector still exist in your Nova version? That last one is where archived themes usually fail.
  • Long-term path: migrate to Nova's supported branding/theming for your version, or maintain a small first-party CSS layer that reproduces the Stripe palette. Keep the archived package only as a reference for selectors and color values.
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.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource