PHPackages                             mhdrefdi-ptr/filament-freeze-action-table - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. mhdrefdi-ptr/filament-freeze-action-table

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

mhdrefdi-ptr/filament-freeze-action-table
=========================================

A Filament package that keeps table action columns fixed (frozen) during horizontal scrolling, ensuring actions remain visible and easily accessible.

v1.0.0(3mo ago)00MITPHP

Since Mar 18Pushed 3mo agoCompare

[ Source](https://github.com/mhdrefdi-ptr/filament-freeze-action-table)[ Packagist](https://packagist.org/packages/mhdrefdi-ptr/filament-freeze-action-table)[ RSS](/packages/mhdrefdi-ptr-filament-freeze-action-table/feed)WikiDiscussions main Synced 3w ago

READMEChangelogDependencies (1)Versions (3)Used By (0)

Filament Freeze Action Table
============================

[](#filament-freeze-action-table)

Keep Filament table action columns sticky on the right during horizontal scrolling.

Supports Filament `^4.0`.

Installation
------------

[](#installation)

```
composer require mhdrefdi-ptr/filament-freeze-action-table
php artisan filament:assets
```

Quick Start (Recommended)
-------------------------

[](#quick-start-recommended)

Register the plugin in your panel provider:

```
use Filament\Panel;
use Mhdrefdi\FilamentFreezeActionTable\FilamentFreezeActionTablePlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugin(
            FilamentFreezeActionTablePlugin::make()
                ->enabledByDefault(true)
        );
}
```

Plugin Configuration
--------------------

[](#plugin-configuration)

Available fluent methods:

- `enabledByDefault(bool $condition = true)`
- `zIndexBody(int $value)`
- `zIndexHeader(int $value)`
- `shadowEnabled(bool $condition = true)`
- `shadowLight(string $value)`
- `shadowDark(string $value)`
- `darkHoverMixPercent(int $value)`

Example:

```
->plugin(
    FilamentFreezeActionTablePlugin::make()
        ->enabledByDefault(true)
        ->zIndexBody(15)
        ->zIndexHeader(16)
        ->shadowEnabled(true)
        ->darkHoverMixPercent(5)
)
```

### Multi-panel behavior

[](#multi-panel-behavior)

- `Table::configureUsing()` is guarded per panel ID (no duplicate registrations).
- Defaults are applied only when the current panel matches that plugin's panel.

Per-table Override
------------------

[](#per-table-override)

```
use Filament\Tables\Table;

public static function table(Table $table): Table
{
    return $table
        ->freezeActionColumn(false); // disable for this table
}
```

Enable explicitly:

```
return $table->freezeActionColumn(true);
```

Optional Config File
--------------------

[](#optional-config-file)

If you prefer config-file driven setup:

```
php artisan vendor:publish --tag=filament-freeze-action-table-config
```

Available keys in `config/filament-freeze-action-table.php`:

- `enabled_by_default`
- `z_index_body`
- `z_index_header`
- `shadow_enabled`
- `shadow_light`
- `shadow_dark`
- `dark_hover_mix_percent`

How It Works
------------

[](#how-it-works)

- Frontend behavior is loaded via Filament assets (`FilamentAsset::register`), not inline render hooks.
- Action column is detected from action triggers in the row.
- Shadow appears only when horizontal overflow exists.

Testing
-------

[](#testing)

Browser spec:

- `tests/browser/freeze-action-column.spec.ts`

Run:

```
npx playwright install chromium
npx playwright test packages/mhdrefdi-ptr/filament-freeze-action-table/tests/browser/freeze-action-column.spec.ts
```

Optional env URLs:

- `FFT_TEST_URL` (default: `http://127.0.0.1:8000/admin/users`)
- `FFT_TEST_URL_WIDE` (default: `http://127.0.0.1:8000/admin/users-wide`)

Changelog
---------

[](#changelog)

See [CHANGELOG.md](CHANGELOG.md).

###  Health Score

32

—

LowBetter than 69% of packages

Maintenance81

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity35

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

100d ago

Major Versions

v1.0.0 → v4.x-dev2026-03-18

### Community

Maintainers

![](https://www.gravatar.com/avatar/579d1aadf101d6aeec8a109ac63ad75a2b4c65b747ad01cf0e969e8d42429dd3?d=identicon)[mhdrefdi-ptr](/maintainers/mhdrefdi-ptr)

---

Top Contributors

[![MhdRefdi](https://avatars.githubusercontent.com/u/79952534?v=4)](https://github.com/MhdRefdi "MhdRefdi (1 commits)")

### Embed Badge

![Health badge](/badges/mhdrefdi-ptr-filament-freeze-action-table/health.svg)

```
[![Health](https://phpackages.com/badges/mhdrefdi-ptr-filament-freeze-action-table/health.svg)](https://phpackages.com/packages/mhdrefdi-ptr-filament-freeze-action-table)
```

###  Alternatives

[ysfkaya/filament-phone-input

A phone input component for Laravel Filament

3141.2M25](/packages/ysfkaya-filament-phone-input)[stephenjude/filament-feature-flags

Filament implementation of feature flags and segmentation with Laravel Pennant.

122157.7k1](/packages/stephenjude-filament-feature-flags)[bezhansalleh/filament-google-analytics

Google Analytics integration for FilamentPHP

209175.5k8](/packages/bezhansalleh-filament-google-analytics)[dotswan/filament-map-picker

Easily pick and retrieve geo-coordinates using a map-based interface in your Filament applications.

128173.7k3](/packages/dotswan-filament-map-picker)[marcelweidum/filament-expiration-notice

Customize the livewire expiration notice

94113.9k5](/packages/marcelweidum-filament-expiration-notice)[creagia/filament-code-field

A Filamentphp input field to edit or view code data.

57301.3k3](/packages/creagia-filament-code-field)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
