zoltantorok/filament-drag-and-scroll

Shift + Drag to scroll Filament tables horizontally. Designed for users with basic mice or accessibility needs.

Maintainers

Package info

github.com/ZoliTorok48/filament-drag-and-scroll

pkg:composer/zoltantorok/filament-drag-and-scroll

Statistics

Installs: 7

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.3 2026-04-19 13:09 UTC

This package is auto-updated.

Last update: 2026-05-19 13:18:58 UTC


README

Horizontal table scrolling in Filament can be frustrating, especially for users with basic mice that lack a horizontal scroll wheel, trackball users, or anyone working with accessibility needs. This package solves that problem by letting users hold Shift and drag to scroll tables horizontally with ease.

Features

  • Shift + Drag to scroll - Hold Shift and drag any table to scroll horizontally
  • Per-panel configuration - Enable for specific Filament panels using a simple method call
  • Visual feedback - Tooltip and cursor changes guide the user
  • 13 languages included - Automatic translation based on your app locale
  • Zero configuration - Install, enable, and it just works

Requirements

  • PHP ^8.1
  • Laravel ^11.0
  • Filament ^5.0

Installation

composer require zoltantorok/filament-drag-and-scroll

Usage

Add ->dragAndScroll() to your panel provider:

use Filament\Panel;
use Filament\PanelProvider;

class AdminPanelProvider extends PanelProvider
{
    public function panel(Panel $panel): Panel
    {
        return $panel
            ->default()
            ->id('admin')
            ->path('admin')
            ->login()
            ->dragAndScroll();
    }
}

That's it. Your users can now hold Shift and drag to scroll any table horizontally.

Disabling

->dragAndScroll(false)

Or simply don't call the method on panels where you don't need it.

How It Works

  1. User holds Shift - the cursor changes and a tooltip appears
  2. User clicks and drags on a table - the table scrolls horizontally
  3. User releases Shift - drag mode deactivates

The interaction is designed to stay out of the way. It doesn't interfere with normal table usage, text selection, or other Filament features.

Translations

The package uses Laravel's translation system and automatically detects your app locale. No configuration required.

Supported Languages

Language Code
English en
Spanish es
French fr
German de
Italian it
Portuguese pt
Dutch nl
Russian ru
Chinese zh
Japanese ja
Korean ko
Hungarian hu
Romanian ro

Customizing Translations

Publish the translation files to override them:

php artisan vendor:publish --tag="filament-drag-and-scroll-views"

Or create your own in resources/lang/vendor/filament-drag-and-scroll/{locale}/messages.php:

<?php

return [
    'dragToScrollHorizontally' => 'Your custom message',
    'releaseShiftToExit' => 'Your custom exit message',
];

Publishing Assets

Assets are registered automatically. If you need to publish them manually:

php artisan vendor:publish --tag="filament-drag-and-scroll-assets" --force

Contributing

Contributions are welcome! Feel free to submit a pull request.

Credits

License

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