PHPackages                             akunbeben/fluid-actions - 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. akunbeben/fluid-actions

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

akunbeben/fluid-actions
=======================

Inline confirmation for Filament Actions

v1.0.0(1mo ago)105752[7 PRs](https://github.com/akunbeben/fluid-actions/pulls)MITPHPPHP ^8.2CI passing

Since Jun 2Pushed 2w agoCompare

[ Source](https://github.com/akunbeben/fluid-actions)[ Packagist](https://packagist.org/packages/akunbeben/fluid-actions)[ Docs](https://github.com/akunbeben/fluid-actions)[ GitHub Sponsors](https://github.com/akunbeben)[ RSS](/packages/akunbeben-fluid-actions/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (3)Dependencies (10)Versions (16)Used By (0)

Fluid Actions for Filament
==========================

[](#fluid-actions-for-filament)

[![Fluid Actions](art/banner.jpeg)](art/banner.jpeg)

Make Filament Actions feel fluid.

Fluid Actions is a UX toolkit for Filament Actions. It provides beautiful, flexible interaction components that help you design action flows that feel more intentional, contextual, and delightful.

Actions should match the context in which they are used. Some actions need confirmation, some need hesitation, some need quick feedback, and some should stay lightweight. Fluid Actions gives you more ways to shape those interactions.

Available interactions
----------------------

[](#available-interactions)

- **Inline confirmation** — confirm an action directly in place
- **Hold to confirm** — require users to press and hold before executing an action
- **ActionGroup support** — works inside dropdown menus and grouped actions
- **Smart fallback** — complex actions continue using Filament's default behavior
- **Per-action configuration** — customize timeout, hold duration, and dropdown behavior

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

[](#installation)

Install the package via Composer:

```
composer require akunbeben/fluid-actions
```

Register the plugin in your Filament panel:

```
use Akunbeben\FluidActions\FluidActionsPlugin;

$panel
    ->plugin(FluidActionsPlugin::make());
```

Inline confirmation
-------------------

[](#inline-confirmation)

Use inline confirmation when an action needs explicit confirmation, but the interaction should stay lightweight and close to the action itself.

```
use Filament\Actions\Action;

Action::make('deactivate')
    ->color('danger')
    ->requiresConfirmation()
    ->inlineConfirmation();
```

> `inlineConfirmation()` does not call `requiresConfirmation()` for you. You must explicitly use both methods.

### Custom label and timeout

[](#custom-label-and-timeout)

The inline confirmation button uses Filament's modal submit action label.

```
Action::make('deactivate')
    ->color('danger')
    ->requiresConfirmation()
    ->modalSubmitActionLabel('Confirm')
    ->inlineConfirmation(timeout: 3000);
```

The timeout is in milliseconds. The default is `3000`.

Hold to confirm
---------------

[](#hold-to-confirm)

Use hold-to-confirm when an action should require a more deliberate gesture before it executes.

```
use Filament\Actions\Action;

Action::make('delete')
    ->color('danger')
    ->holdToConfirm();
```

By default, the user must hold the action for `1500` milliseconds.

```
Action::make('delete')
    ->color('danger')
    ->holdToConfirm(duration: 3000);
```

Unlike inline confirmation, `holdToConfirm()` does not require `requiresConfirmation()`.

Actions inside groups
---------------------

[](#actions-inside-groups)

Fluid Actions supports actions inside dropdowns and button groups.

```
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;

ActionGroup::make([
    Action::make('edit')
        ->label('Edit'),

    Action::make('delete')
        ->label('Delete')
        ->color('danger')
        ->requiresConfirmation()
        ->inlineConfirmation(),
]);
```

When an inline confirmation action is triggered inside a dropdown, the dropdown stays open so the confirmation state can be shown. After confirmation, the action executes and the dropdown closes.

Dropdown closing behavior
-------------------------

[](#dropdown-closing-behavior)

You can control whether a grouped action closes its dropdown after confirmation.

```
Action::make('delete')
    ->requiresConfirmation()
    ->inlineConfirmation(closeDropdown: false);
```

You may also pass a closure:

```
Action::make('delete')
    ->requiresConfirmation()
    ->inlineConfirmation(
        closeDropdown: fn (): bool => auth()->user()->prefers_compact_actions,
    );
```

The same option is available for hold-to-confirm:

```
Action::make('delete')
    ->holdToConfirm(closeDropdown: false);
```

Eligibility and fallback behavior
---------------------------------

[](#eligibility-and-fallback-behavior)

Fluid Actions is designed to enhance simple action interactions without breaking Filament's built-in action flows. If an action needs Filament's modal or submit behavior, it automatically falls back to the original Filament action rendering.

Actions fall back when they have:

- forms or schemas
- custom modal content
- custom modal footer content
- URL behavior
- POST-to-URL behavior
- form submit behavior

For inline confirmation, the action must also use `requiresConfirmation()`.

Testing
-------

[](#testing)

```
composer test
```

Run static analysis:

```
composer analyse
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](.github/CONTRIBUTING.md) for details.

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

Please review [our security policy](.github/SECURITY.md) on how to report security vulnerabilities.

Credits
-------

[](#credits)

- [Benny Rahmat](https://github.com/akunbeben)
- [All Contributors](https://github.com/akunbeben/fluid-actions/graphs/contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

49

—

FairBetter than 94% of packages

Maintenance93

Actively maintained with recent releases

Popularity27

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 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

7

Last Release

49d ago

Major Versions

v0.3.0 → v1.0.02026-06-05

### Community

Maintainers

![](https://www.gravatar.com/avatar/f20c23b63b8a555ef973a720366095466ef8eb82e25a2703a871c62d4236f79d?d=identicon)[akunbeben](/maintainers/akunbeben)

---

Top Contributors

[![akunbeben](https://avatars.githubusercontent.com/u/46495960?v=4)](https://github.com/akunbeben "akunbeben (36 commits)")

---

Tags

laravelfilamentfilament-pluginfilamentphpakunbebenfluid-actions

###  Code Quality

TestsPest

Static AnalysisPHPStan, Rector

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/akunbeben-fluid-actions/health.svg)

```
[![Health](https://phpackages.com/badges/akunbeben-fluid-actions/health.svg)](https://phpackages.com/packages/akunbeben-fluid-actions)
```

###  Alternatives

[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3914.8k](/packages/rawilk-profile-filament-plugin)[backstage/mails

View logged mails and events in a beautiful Filament UI.

16121.5k](/packages/backstage-mails)[marcelweidum/filament-passkeys

Use passkeys in your filamentphp app

6649.5k2](/packages/marcelweidum-filament-passkeys)[jibaymcs/filament-tour

Bring the power of DriverJs to your Filament panels and start a tour !

12453.6k](/packages/jibaymcs-filament-tour)[wsmallnews/filament-nestedset

Filament nestedset tree builder powered by kalnoy/nestedset with Filament v4 and v5 support

197.8k19](/packages/wsmallnews-filament-nestedset)[tapp/filament-form-builder

User facing form builder using Filament components

132.4k5](/packages/tapp-filament-form-builder)

PHPackages © 2026

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