Weave Code
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

Filament Panel plugin that makes page headers sticky while scrolling. Install via Composer, import the plugin CSS into your custom theme, then register StickyHeaderPlugin in your panel provider. Includes optional Floating theme and colored header styling.

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.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky