Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament Sticky Header Laravel Package

awcodes/filament-sticky-header

Makes Filament panel page headers sticky on scroll, with an optional floating theme and colored variant. Install via Composer, add the plugin to your panel provider, and import the provided CSS into your theme. Supports Filament 2.x through 5.x depending on package version.

View on GitHub
Deep Wiki
Context7

Filament Sticky Header

A Filament Panel plugin to make page headers sticky when scrolling.

Latest Version MIT Licensed Total Downloads GitHub Repo stars

Compatibility

Package Version Filament Version
1.x 2.x
2.x 3.x
3.x 4.x
4.x 4.x & 5.x

Installation

Install packages via composer

composer require awcodes/filament-sticky-header

[!IMPORTANT] If you have not set up a custom theme and are using Filament Panels follow the instructions in the Filament Docs first.

After setting up a custom theme add the plugin's views to your theme css file or your app's css file if using the standalone packages.

@import '../../../../vendor/awcodes/filament-sticky-header/resources/css/plugin.css';

Usage

Just add the plugin to your panel provider, and you're good to go.

use Awcodes\StickyHeader\StickyHeaderPlugin;

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

Floating Theme

To use the 'Floating Theme' use the floating() method when instantiating the plugin.

When using the floating theme you can also use the colored() method to add your primary background color to the header.

use Awcodes\StickyHeader\StickyHeaderPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            StickyHeaderPlugin::make()
                ->floating()
                ->colored()
        ])
    ]);
}

Both the floating() and colored() methods can receive closure that will be evaluated to determine if the theme should be applied. This allows you to apply the theme conditionally, for instance, based off of user preferences.

use Awcodes\StickyHeader\StickyHeaderPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            StickyHeaderPlugin::make()
                ->floating(fn():bool => auth()->user()->use_floating_header)
                ->colored(fn():bool => auth()->user()->use_floating_header)
        ])
    ]);
}

Disabling on List Pages

To disable the sticky header on list pages, you can use the stickOnListPages() method.

use Awcodes\StickyHeader\StickyHeaderPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            StickyHeaderPlugin::make()
                ->stickOnListPages(false)
        ])
    ]);
}

Disabling on Custom Pages

To disable the sticky header on specific custom pages, pass an array of page class names (or a Closure returning one) to the disabledOn() method.

use Awcodes\StickyHeader\StickyHeaderPlugin;
use App\Filament\Pages\MyCustomPage;
use App\Filament\Pages\AnotherPage;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            StickyHeaderPlugin::make()
                ->disabledOn([
                    MyCustomPage::class,
                    AnotherPage::class,
                ])
        ])
    ]);
}

A Closure is also accepted, which allows the list to be determined at runtime.

StickyHeaderPlugin::make()
    ->disabledOn(fn () => [MyCustomPage::class])

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource