Hover preview for ImageColumn by Tinus Guichelaar
CommunityDrop-in replacement for ImageColumn with a larger preview on hover. All existing methods work unchanged.
Author:
Tinus Guichelaar
Package health
Automated checks of this plugin's Composer package
15 checks
- Passed: GitHub Actions pinned to SHA
- Skipped: GitLab CI includes pinned to SHA
- Passed: Open security advisories
- Passed: Dependabot PR responsiveness — No stale Dependabot PRs.
- Skipped: Renovate MR responsiveness
- Passed: Dependabot or Renovate configured
- Passed: Dependency update cooldown configured
- Passed: Provides a security policy
- Passed: Abandoned or archived — No consulted source marks the package abandoned (packagist, github).
- Passed: Commit and release recency — Active: last commit 0 days ago; last release 169 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
A Filament table column that displays a larger image preview card on hover. Drop-in replacement for ImageColumn — all existing methods work unchanged.

#Installation
composer require tinusg/filament-hover-image-column
No service provider or configuration needed.
#Usage
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.
#Custom preview size
HoverImageColumn::make('photo')
->previewSize(400) // both width and height
HoverImageColumn::make('photo')
->previewSize(width: 500, height: 300) // separate dimensions
#Custom preview URL
Show a higher-resolution image in the preview while keeping a small thumbnail:
HoverImageColumn::make('thumbnail_url')
->previewUrl(fn ($record) => $record->full_resolution_url)
#Disable preview
HoverImageColumn::make('photo')
->preview(false)
#Use with computed state
HoverImageColumn::make('media.source_url')
->label('Image')
->circular()
->state(fn ($record) => $record->media->where('is_primary', true)->first()?->display_url)
#API
| 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.
#How it works
- Extends Filament's
ImageColumnand overridestoEmbeddedHtml() - Uses Alpine.js (already loaded by Filament) for hover state and cursor tracking
- Preview is rendered via
x-teleport="body"to escape table overflow clipping - Image is lazy-loaded — only fetched when you hover
- Viewport boundary detection prevents the preview from going off-screen
- No additional CSS or JavaScript assets required
#Requirements
- PHP 8.3+
- Filament 5.x
#Sponsors
- This plugin is sponsored by Vaklui.
#License
MIT License. See LICENSE for details.
The author
From the same author
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
Custom Fields
Eliminate custom field migrations forever. Let your users create and manage form fields directly in Filament admin panels with 20+ built-in field types, validation, and zero database changes.
Relaticle