anomaly/pyrocms-theme
A PyroCMS theme package from Anomaly that provides front-end templates, layouts, and assets for building and customizing a site’s appearance. Install via Composer, then configure and extend it within your PyroCMS project.
Before writing a single line, confirm that the package is even relevant to your install: anomaly/pyrocms-theme is the deprecated admin theme for PyroCMS, superseded by anomaly/accelerant-theme. In practice your first move is to open composer.json and check which admin theme your project actually requires — if you see anomaly/accelerant-theme, stop here; this package is only useful for maintaining a legacy install that hasn't migrated yet.
If you are on a legacy PyroCMS 2.x/early 3.x control panel, the things to look at first are:
theme.json (or resources/theme.json depending on version) declares the theme name, slug, version, and assets. This is the entry point the PyroCMS theme registrar reads.*ThemeServiceProvider that registers the theme via the Anomaly\Theme\Theme contract or the theme repository, binding views under the admin namespace.resources/views/layouts/, partials/, and dashboard/ typically override the control panel chrome (header, nav, sidebar, breadcrumbs).resources/assets/ (CSS/JS) mirrored into public/ via the theme publish command.First use case: you're maintaining a PyroCMS control panel and need to brand or tweak the admin UI — changing the logo, nav layout, dashboard widgets, or CSS. That is the only realistic reason to touch this repo today.
Theme registration. The theme is registered through the theme repository, usually inside a service provider's boot():
$this->themes->register('anomaly/pyrocms-theme');
or via config/themes.php depending on the PyroCMS version. Verify which mechanism your install uses before copying patterns from the repo — the API shifted across PyroCMS majors.
Layout overrides. The day-to-day pattern is extending the base control panel layout and overriding named sections/blocks. Admin views are resolved from the theme's namespace, so an override of layouts/default.twig or layouts/default.blade.php (depending on your version) takes precedence over the core admin view. Keep overrides as thin as possible — override the partial, not the whole layout.
Partial composition. Header, sidebar, breadcrumbs, and footer are separate partials. Customizing the nav means editing the sidebar partial plus whatever view composer feeds it menu items, not the layout itself. This keeps upgrade paths open.
Asset publishing. Theme assets should be published, not referenced from vendor/. Typical workflow:
php artisan theme:publish anomaly/pyrocms-theme
(or the equivalent PyroCMS command for your version), then reference paths from public/ in the layout. Never hand-edit files in public/ — they get overwritten on republish.
Dashboard widgets. The admin theme exposes a dashboard region where addon-provided widgets render. Integration pattern: register a widget with the dashboard repository and give it a view under the theme namespace; the theme handles layout, the widget only owns its inner view.
Branding pattern. Logo, favicon, and accent colors are typically driven by theme config merged into the manifest. Prefer these config values over hardcoding in CSS so a single config change re-brands the panel.
anomaly/accelerant-theme — it is the supported path and the API/registration surface is what current PyroCMS expects.laravel/framework, twig/blade, and PHP versions. Read composer.json before assuming it will install at all on a modern stack.php artisan view:clear, plus any theme/asset cache the PyroCMS version provides). Stale published assets are the most common "my change did nothing" bug.vendor/. A composer update will erase your work.How can I help you explore Laravel packages today?