© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
FilamentF
Filament•3y ago•
3 replies
Andrew Wallo

Swap Panel Font depending on database value?

Question. I have a field that allows the user to switch the font used for the Panel. How would I go about switching the panel's font used depending on that value from the database? Obviously, I couldn't do it inside a Service Provider for the panel because the current company instance couldn't be resolved by that time, so I decided to use a Listener.
 public function handle(TenantSet $event): void
{
    /** @var Company $company */
    $company = $event->getTenant();
    $paginationPageOptions = RecordsPerPage::caseValues();
    $defaultPaginationPageOption = $company->defaults->records_per_page->value ?? RecordsPerPage::DEFAULT;
    $defaultSort = $company->defaults->table_sort_direction->value ?? TableSortDirection::DEFAULT;
    $defaultPrimaryColor = $company->defaults->primary_color ?? PrimaryColor::from(PrimaryColor::DEFAULT);
    $defaultFont = $company->defaults->font->value ?? Font::DEFAULT;

    Table::configureUsing(static function (Table $table) use ($paginationPageOptions, $defaultSort, $defaultPaginationPageOption): void {
        $table
            ->paginationPageOptions($paginationPageOptions)
            ->defaultSort(column: 'id', direction: $defaultSort)
            ->defaultPaginationPageOption($defaultPaginationPageOption);
    }, isImportant: true);

    $defaultColor = FilamentColor::register([
        'primary' => $defaultPrimaryColor->getColor(),
    ]);

    FilamentColor::swap($defaultColor);
}
 public function handle(TenantSet $event): void
{
    /** @var Company $company */
    $company = $event->getTenant();
    $paginationPageOptions = RecordsPerPage::caseValues();
    $defaultPaginationPageOption = $company->defaults->records_per_page->value ?? RecordsPerPage::DEFAULT;
    $defaultSort = $company->defaults->table_sort_direction->value ?? TableSortDirection::DEFAULT;
    $defaultPrimaryColor = $company->defaults->primary_color ?? PrimaryColor::from(PrimaryColor::DEFAULT);
    $defaultFont = $company->defaults->font->value ?? Font::DEFAULT;

    Table::configureUsing(static function (Table $table) use ($paginationPageOptions, $defaultSort, $defaultPaginationPageOption): void {
        $table
            ->paginationPageOptions($paginationPageOptions)
            ->defaultSort(column: 'id', direction: $defaultSort)
            ->defaultPaginationPageOption($defaultPaginationPageOption);
    }, isImportant: true);

    $defaultColor = FilamentColor::register([
        'primary' => $defaultPrimaryColor->getColor(),
    ]);

    FilamentColor::swap($defaultColor);
}


This works for everything else such as the Panel color, etc... But I couldn't find a way to register or switch the Panels font. Could anyone help me?
Filament banner
FilamentJoin
A powerful open source UI framework for Laravel • Build and ship admin panels & apps fast with Livewire
20,307Members
Resources

Similar Threads

Was this page helpful?
Recent Announcements

Similar Threads

TextColumn depending on database value....
FilamentFFilament / ❓┊help
4mo ago
Modifying shared resources depending on the panel
FilamentFFilament / ❓┊help
3y ago
Admin panel styling depending on authenticated user
FilamentFFilament / ❓┊help
3y ago
Icon Visibility on Text Column depending on record value
FilamentFFilament / ❓┊help
3y ago