x-rpd:: data components.
Themes
Same page, same module code, same data: only the theme package changes.
How it works
A contract, not a framework
Four Blade layouts (app, admin, frontend, auth) with a fixed list of regions: menu, search, user dropdown, breadcrumbs, messages, content. Modules keep calling layout::admin; php artisan rpd:theme:check verifies a theme against the list.
One line to switch
RAPYD_THEME=tabler in .env activates an installed theme. Colours are runtime tokens (RAPYD_PRIMARY, sidebar, topbar, content background), so a palette change needs no rebuild. Light and dark mode come with every theme.
Try them side by side
RAPYD_THEME_SWITCH=true lets each visitor pick a theme and keep it in the session: a palette icon in the navbar, or links like the screenshots above (?rapyd_theme=sneat). Handy while evaluating a theme or showing a customer the options.
Build your own
- Copy the bundled layouts (
src/Modules/Layout/Viewsof rapyd-admin) into a new package that extendsRapydThemeServiceProvider. - Map the template regions onto the four layouts; keep the include names, change the markup.
- Build
rapyd.css/rapyd.jswith the package Vite config: your SCSS on top of Bootstrap and the Rapyd base styles. - Run
php artisan rpd:theme:check, open the demo pages, compare with the template preview. - Publish on Packagist:
composer require, one env line, done.
Free and premium
Free themes
Open source, MIT, one repository each on GitHub and Packagist. Today: the bundled look (sidebar), Tabler (horizontal header, built on the Tabler admin template) and Sneat (vertical menu, built on the Sneat free template).
Premium themes
Coming with a subscription: themes with extra pages for the paid modules (billing, subscriptions, invoices, support), delivered through a private Composer repository together with the premium modules. Same contract, same one-line switch.