thalysjuvenal/aurum-filament-theme
An executive gold-on-graphite theme engine and UI kit for FilamentPHP v5 panels, with gold, emerald, sapphire and ruby presets, dark and light modes, and styled login, dashboard, and table screens.
Architecture fit. Aurum is a well-behaved citizen of the Filament ecosystem rather than a parallel one. It implements the standard Filament v5 plugin contract (AurumTheme::make() registered in PanelProvider), registers its CSS through the panel's asset pipeline, and injects colors via $panel->colors() from OKLCH palettes. Two properties are notable from a TPM standpoint: (1) it is panel-scoped — panels that don't call ->plugin(AurumTheme::make()) are untouched, which makes incremental rollout and A/B comparison cheap; and (2) it is zero-build — no Tailwind/Vite changes in the consuming app, which removes the single biggest integration and long-term-maintenance cost of typical Filament themes. The custom widgets (AurumStatsOverview, AurumValueList, Timeline, TotalsBlock) extend Filament's own base classes and schema primitives, so they compose with the framework rather than shadowing it.
Integration feasibility. Very high for the target stack. Two commands (composer require, php artisan filament:assets) plus one line in PanelProvider gets you a fully themed panel. The README is unusually mature for a 10-star package: per-preset screenshots, runnable code samples, a documented custom-preset extension path, WCAG rationale, and — importantly — a documented gotcha (trimmed logo assets, dark-mode logo preference) that signals the maintainer has actually run this in a real app. Requirement surface is narrow: PHP ^8.2, filament/filament ^5.0, validated against Filament 5.6.8.
Technical risk. The risks are concentrated on the upstream and maintainer axes, not the integration axis.
^5.0. There is no published upgrade policy or support window. Planning a multi-year admin UI on it means planning to fork or re-theme at the next major.tests/PresetContrastTest.php); presets you write yourself do not automatically. Accessibility compliance is a per-preset obligation, not a package guarantee.accentHex()/palette() will be working against the package rather than with it.Key questions to resolve before adoption.
filament:assets-less deployment setups?Stack fit. Aurum is a presentation-layer add-on with no database, migrations, jobs, or service dependencies. It fits cleanly if — and only if — the target admin is already on Filament v5 and PHP 8.2+. On Filament v3/v4 it is simply unavailable; the correct move is to upgrade Filament first and evaluate the theme afterward, not the reverse. Apps with no Filament panel get no value from it at all.
Migration path. Two distinct scenarios:
Compatibility notes. Pin filament/filament to ^5.0 and validate against the version you actually deploy (5.6.8 is the known-good reference). Ensure brandLogo/darkModeBrandLogo assets are trimmed and legible on dark before enabling the login block, or the fallback initial-square renders instead. Where other Filament plugins are installed, verify them visually on a pilot panel — shared tokens will be inherited, proprietary styles will not.
Sequencing.
php artisan filament:assets to the deployment pipeline, not just the setup docs. This is the single most common way a zero-build package fails in production: it works locally and ships unstyled.AurumStatsOverview, AurumValueList, Timeline, and TotalsBlock are the higher-commitment surface — they subclass Filament widgets and tie dashboard code to the package. Prove the theme layer first, then decide whether the components earn their keep.AurumPreset, run the contrast checks, and treat them as owned code.Maintenance. The realistic ownership model is "we maintain this, the author graciously publishes it." MIT plus a single maintainer with a changelog and CI badge is a good-faith signal, but not a maintenance guarantee. Budget a visual re-validation pass on every Filament minor upgrade — this is the recurring cost, and it's non-trivial because failures are cosmetic rather than test-visible. Keep a small internal owner for the CSS layer and at least one engineer who can read Filament's Tailwind tokens.
Support. GitHub issues only; no commercial support, no SLA, no documented response time. Escalation path is "fork it." That is acceptable for a UI skin on an internal admin tool and unacceptable for a customer-facing product where brand fidelity is contractual. The README's quality raises confidence in the code; it does not raise confidence in the support relationship.
Scaling. Runtime and infrastructure impact are effectively nil: static CSS, published assets, no queries, no queue jobs. It scales with panel count rather than user count. The only scaling consideration is organizational — multiple teams touching multiple panels multiply the number of surfaces that can drift visually after an upstream upgrade.
Failure modes.
| Failure | Likelihood | Blast radius |
|---|---|---|
| Filament minor upgrade changes markup → visual regressions | Medium over 12–24 months | All Aurum panels, simultaneously |
filament:assets missing from deploy → unstyled production panel |
Medium (first deploy) | That environment |
| Browser/CDN caching stale CSS after a preset change | Low–Medium | Users see old theme until cache bust |
| Custom preset fails WCAG contrast | Medium (custom presets bypass bundled tests) | Accessibility compliance |
| CSS specificity conflict with another Filament plugin | Low | Specific page/component |
| Login brand block illegible (untrimmed/light logo on dark block) | Medium | Auth pages |
| Package abandoned | Low–Medium | Fork required at next Filament major |
Ramp-up. Low for the adoption path: the documentation is genuinely good — per-preset screenshots, copy-paste-runnable component examples, a complete custom-preset recipe, and documented edge cases (logo trimming, hideBrandText() semantics, dark-mode logo preference). A mid-level Laravel developer can go from zero to a themed panel in an afternoon, and the custom preset is a single class implementing three methods. The real ramp-up cost is not onboarding — it is the ongoing cognitive load of knowing which Filament version changes threaten the theme, which no amount of documentation removes. Recommend adopting on the strength of the integration ergonomics, with eyes open that the long-term risk is upstream churn and a maintainer headcount of one.
How can I help you explore Laravel packages today?