NLoading
CommunityNLoading is a Filament v5 plugin that provides a customizable loading overlay for page navigation and Livewire updates, with support for custom logos, spinners, messages, positions, colors, delays, and action exclusions.
Author:
Ricardo Nery
Package health
BetaAutomated checks of this plugin's Composer package
15 checks
- Skipped: GitHub Actions pinned to SHA
- Skipped: GitLab CI includes pinned to SHA
- Passed: Open security advisories
- Passed: Dependabot PR responsiveness — No open Dependabot PRs.
- Skipped: Renovate MR responsiveness
- Skipped: Dependabot or Renovate configured
- Skipped: Dependency update cooldown configured
- Failed: Provides a security policy — View details on Plumb
- Passed: Abandoned or archived — No consulted source marks the package abandoned (packagist, github).
- Passed: Commit and release recency — Active: last commit 6 days ago; last release 6 days ago.
-
Passed:
composer.lock not committed by library
—
composer.lockis absent from the released dist archive. - Passed: Dist archive is lean
-
Passed:
Current Laravel version supported
—
Package dependencies resolve together with current Laravel
13.0. -
Passed:
Current PHP version supported
—
Constraint
^8.2supports current PHP8.5. - Skipped: Current Symfony version supported
filament/
namespace. Review the source and install at your own risk. Found
malware or an unresolved security issue the author won't
address?
Report it
.
Documentation
Configurable loading overlay for Filament v5 page navigation and selected Livewire updates.
NLoading is free and open source under the MIT License. See LICENSE.
#Requirements
- PHP 8.2+
- Laravel 12+
- Filament 5+
#Installation
composer require ricardosnery/nloading
Register the plugin on each panel where the overlay should appear:
use RicardoSnery\NLoading\NLoadingPlugin;
return $panel
->plugin(NLoadingPlugin::make());
Filament publishes the plugin's CSS and JavaScript assets during its asset upgrade process. If needed, publish them manually:
php artisan filament:assets
Publish the configuration and views only if you need to edit them:
php artisan vendor:publish --tag=nloading-config
php artisan vendor:publish --tag=nloading-views
#Configuration
Edit config/nloading.php:
return [
'enabled' => true,
'position' => 'center', // top, center, bottom, top-left, bottom-left, top-right, bottom-right
'logo' => null, // Public URL/path; null uses the Filament panel logo
'spinner' => null, // Public image URL/path; null uses the built-in CSS indicator
'spinner_animation' => true,
'indicator_position' => 'after', // before or after the message
'message' => null,
'delay' => 150,
'overlay' => [
'color' => '#0f172a',
'opacity' => 0.35, // 0 to 1
],
'navigation' => ['enabled' => true],
'livewire' => [
'enabled' => true,
'ignore_polling' => true,
'exclude_actions' => [],
],
];
Navigation and Livewire commits can be enabled independently. Livewire actions listed in exclude_actions are ignored. Polling components are ignored by default; set livewire.ignore_polling to false to include them. Concurrent Livewire requests are counted, and requests completed before the configured delay do not show the overlay.
Every option can also be set with an environment variable prefixed by NLOADING_:
| Environment variable | Config key | Default |
|---|---|---|
NLOADING_ENABLED |
enabled |
true |
NLOADING_POSITION |
position |
center |
NLOADING_LOGO |
logo |
empty; uses the Filament logo |
NLOADING_SPINNER |
spinner |
empty; uses the CSS indicator |
NLOADING_SPINNER_ANIMATION |
spinner_animation |
true |
NLOADING_INDICATOR_POSITION |
indicator_position |
after |
NLOADING_MESSAGE |
message |
empty |
NLOADING_DELAY |
delay |
150 ms |
NLOADING_OVERLAY_COLOR |
overlay.color |
#0f172a |
NLOADING_OVERLAY_OPACITY |
overlay.opacity |
0.35 |
NLOADING_NAVIGATION_ENABLED |
navigation.enabled |
true |
NLOADING_LIVEWIRE_ENABLED |
livewire.enabled |
true |
NLOADING_LIVEWIRE_IGNORE_POLLING |
livewire.ignore_polling |
true |
NLOADING_LIVEWIRE_EXCLUDE_ACTIONS |
livewire.exclude_actions |
empty |
NLOADING_LIVEWIRE_EXCLUDE_ACTIONS accepts comma-separated action names, for example NLOADING_LIVEWIRE_EXCLUDE_ACTIONS=refreshStats,updateClock.
The overlay view can be customized by publishing the views. The published file at resources/views/vendor/nloading/overlay.blade.php takes precedence over the package view. The indicator partial can also be overridden at resources/views/vendor/nloading/partials/indicator.blade.php.
#License
NLoading is open source software licensed under the MIT License.
#Support and contributions
Please use the GitHub issue tracker to report bugs or suggest improvements. Contributions are welcome.
The author
I am a software developer specializing in PHP, Laravel, and Filament, with experience building SaaS platforms, admin panels, APIs, payment integrations, and infrastructure solutions. I also work with MySQL, Redis, Docker, Nginx, Google Cloud, and Cloudflare. I enjoy building well-structured, scalable, and maintainable applications, with a strong focus on best practices, security, performance, and a great user experience.
Featured Plugins
A selection of plugins curated by the Filament team
Custom Dashboards
Let your users build and share their own dashboards with a drag-and-drop interface. Define your data sources in PHP and let them do the rest.
Filament
Sharp Theme
A theme that gives panels a precise, technical look with square corners, strong borders, and clear contrast.
Filament
Spotlight Pro
Browse your Filament Panel with ease. Filament Spotlight Pro adds a Spotlight like Command Palette to your Filament Panel.
Dennis Koch