BenRiadh Theme plugin screenshot
Dark mode ready
Multilingual support
Supports v5.x

BenRiadh Theme

A modern and customizable theme package for Filament, designed to enhance the visual experience of your admin panels with clean styling, flexible configuration, and seamless integration.

Tags: Panels Theme Widget
Supported versions:
5.x
Riadh Ben Ali avatar Author: Riadh Ben Ali

Documentation

Latest Version on Packagist Total Downloads

A modern and customizable theme package for Filament, designed to enhance the visual experience of your admin panels with clean styling, flexible configuration, and seamless integration.

Designed for teams who want more than the default look, this package delivers a polished UI layer with runtime customization, flexible layout options, and seamless integration into any Filament project.


#✨ Features

  • 🎨 ERP-inspired design system for a clean, professional admin experience
  • 🌗 Dark & light mode support
  • 🧭 Flexible navigation layouts
    • Optional hidden sidebar
    • Topbar apps dropdown
  • 💾 Persistent customization (stored in database):
    • accent_color
    • show_left_sidebar
    • compact_sidebar
  • 🪶 Lightweight & developer-friendly — no heavy overrides, clean integration
  • 📦 Publishable assets, config, and migrations

#Requirements

Requirement Version
PHP ^8.2
Laravel ^11.0 ^12.0 ^13.0
Filament ^5.0

#Installation

#1. Install via Composer

composer require benriadh1/filament-benriadh-theme
php artisan filament-benriadh-theme:install --migrate

#2. Publish config, assets, and migrations

php artisan vendor:publish --tag="filament-benriadh-theme-config"
php artisan vendor:publish --tag="filament-benriadh-theme-assets"
php artisan vendor:publish --tag="filament-benriadh-theme-lang"
php artisan vendor:publish --tag="filament-benriadh-theme-migrations"

#3. Run migrations

php artisan migrate

#4. Register plugin in your panel

use Benriadh1\FilamentBenriadhTheme\FilamentBenriadhThemePlugin;

public function panel(Panel $panel): Panel
{
    return $panel->plugins([
        FilamentBenriadhThemePlugin::make(),
    ]);
}

#Fluent Plugin API

FilamentBenriadhThemePlugin::make()
    ->accentColor('#cba24c')
    ->sidebarGradient('#0f172a', '#111827')
    ->showLeftSidebar(true)     // or ->hideLeftSidebar()
    ->compactSidebar(false)
    ->cardRadius('0.9rem')
    ->softShadows(true);

#Theme Settings Page

When enabled, the package automatically registers a panel page:

  • Navigation: Settings > Theme Settings
  • Route (admin panel default): /admin/theme-settings

The page stores values in filament_theme_settings and the theme uses them at runtime.


#Configuration Reference

Publish config if needed:

php artisan vendor:publish --tag="filament-benriadh-theme-config"
Key Default Description
asset_path vendor/filament-benriadh-theme/theme.css Published CSS asset path
accent_color #cba24c Default accent color
sidebar_from #0f172a Sidebar gradient start
sidebar_to #111827 Sidebar gradient end
show_left_sidebar true Show the left sidebar
compact_sidebar false Use compact sidebar spacing
card_radius 0.9rem Global card corner radius
soft_shadows true Enable soft panel shadows
show_theme_settings_page true Show/hide the in-panel Theme Settings page

#Example Config

return [
    'asset_path' => 'vendor/filament-benriadh-theme/theme.css',

    'accent_color' => '#cba24c',
    'sidebar_from' => '#0f172a',
    'sidebar_to' => '#111827',

    'show_left_sidebar' => true,
    'compact_sidebar' => false,
    'card_radius' => '0.9rem',
    'soft_shadows' => true,

    'show_theme_settings_page' => true,
];

#Config Model

Main config file: config/filament-benriadh-theme.php

Core keys:

  • schema_version
  • asset_path
  • mode
  • preset
  • presets
  • tokens
  • layout
  • breadcrumbs
  • branding
  • apps_dropdown
  • panel_overrides
  • tenant
  • extensions
  • a11y
  • show_theme_settings_page

Legacy keys are still supported and mapped into v1 schema for backward compatibility.

#Apps Dropdown

Controls the navigation grid shown in the topbar when the sidebar is hidden:

'apps_dropdown' => [
    'max_items' => 15, // Maximum navigation items shown in the grid
],

#Localization

The Theme Settings page is translated into 6 languages out of the box:

Code Language
en English
fr French
ar Arabic
de German
es Spanish
pt Portuguese

Publish the language files to customize or add new locales:

php artisan vendor:publish --tag="filament-benriadh-theme-lang"

Files are placed under lang/vendor/filament-benriadh-theme/{locale}/messages.php.

#Panel + Tenancy Support

  • Use panel_overrides to provide per-panel visual behavior.
  • Use tenant.enabled + tenant.resolver to inject tenant branding at runtime.
  • Tenant resolver contract:
    • Benriadh1\FilamentBenriadhTheme\Contracts\TenantThemeResolver

#Extension API

Implement these contracts to extend without forking:

  • Benriadh1\FilamentBenriadhTheme\Contracts\ThemeTokenTransformer
  • Benriadh1\FilamentBenriadhTheme\Contracts\PluginThemeAdapter
  • Benriadh1\FilamentBenriadhTheme\Contracts\TenantThemeResolver

#Plugin Adapter Example

The package ships with TranslationManagerAdapter as a reference implementation. It bridges the optional benriadh1/filament-translation-manager package by mapping its CSS variables to theme tokens. To activate it (or any custom adapter), register it in your config:

'extensions' => [
    'plugin_adapters' => [
        \Benriadh1\FilamentBenriadhTheme\Adapters\TranslationManagerAdapter::class,
        // or your own adapter:
        App\Theme\MyPluginAdapter::class,
    ],
],

The adapter is automatically skipped when the target plugin is not installed.

#Commands

php artisan filament-benriadh-theme:install --migrate
php artisan filament-benriadh-theme:migrate-schema
php artisan filament-benriadh-theme:preset-export corporate
php artisan filament-benriadh-theme:preset-import ./preset.json my_custom --overwrite
php artisan filament-benriadh-theme:a11y-check --panel=admin

#Theme Settings Page

When enabled, the package registers:

  • Navigation: Settings > Theme Settings
  • Route (default admin panel): /admin/theme-settings

Values are stored in filament_theme_settings and merged with config + runtime overrides.


#Changelog

See CHANGELOG.md.


#Contributing

Contributions and design improvements are welcome via PRs.


#License

MIT. See LICENSE.md.