tinusg/filament-hover-image-column
Filament table HoverImageColumn: a drop-in replacement for ImageColumn that shows a larger image preview card on hover. Supports custom preview size, custom high-res preview URL, computed state, and disabling previews. No config or extra assets.
A Filament table column that displays a larger image preview card on hover. Drop-in replacement for ImageColumn — all existing methods work unchanged.

composer require tinusg/filament-hover-image-column
No service provider or configuration needed.
Replace ImageColumn with HoverImageColumn:
use TinusG\FilamentHoverImageColumn\HoverImageColumn;
HoverImageColumn::make('avatar')
->circular()
Hovering over the thumbnail shows a larger preview in a floating card that follows the cursor.
HoverImageColumn::make('photo')
->previewSize(400) // both width and height
HoverImageColumn::make('photo')
->previewSize(width: 500, height: 300) // separate dimensions
Show a higher-resolution image in the preview while keeping a small thumbnail:
HoverImageColumn::make('thumbnail_url')
->previewUrl(fn ($record) => $record->full_resolution_url)
HoverImageColumn::make('photo')
->preview(false)
HoverImageColumn::make('media.source_url')
->label('Image')
->circular()
->state(fn ($record) => $record->media->where('is_primary', true)->first()?->display_url)
| Method | Description | Default |
|---|---|---|
previewSize(width, height?) |
Max dimensions of the preview image | 320px |
previewUrl(string|Closure) |
Custom URL for the preview (e.g. high-res version) | Same as thumbnail |
preview(bool|Closure) |
Enable or disable the hover preview | true |
All ImageColumn methods (circular(), square(), stacked(), disk(), visibility(), etc.) are inherited and work as expected.
ImageColumn and overrides toEmbeddedHtml()x-teleport="body" to escape table overflow clippingMIT License. See LICENSE for details.
How can I help you explore Laravel packages today?