Custom Theme Development

Themes live in /extensions/themes/{theme-name}/ and are registered via a theme.json manifest.

Required Files

extensions/themes/my-theme/
├── theme.json
├── assets/
│   ├── css/
│   ├── js/
│   └── images/
├── views/
│   ├── layouts/master.blade.php
│   ├── pages/
│   ├── partials/
│   └── components/
└── config.php

theme.json

The manifest defines name, version, author, description, supported features, and default settings (primary color, layout style).

Design Guidelines

  • Each theme must have a distinct visual identity
  • Use Bootstrap 5.3.8 utility classes extensively
  • Use CSS custom properties for colors and fonts
  • Mobile-first, responsive, and accessible (WCAG AA)
  • Use {{ __('key') }} for all translatable strings

View Resolution

Themes can override any core or add-on view. The system checks theme views first, then falls back to add-on and core defaults.

Building Assets

After creating or modifying SCSS/JS files, rebuild:

npx vite build

Was this article helpful?

Thank you for your feedback!

Still need help? Create a support ticket

Create a Ticket