tinusg/filament-hover-image-column
Composer 安装命令:
composer require tinusg/filament-hover-image-column
包简介
A Filament table column that shows a larger image preview on hover
README 文档
README
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.2+
- Filament 5.x
Sponsors
- This plugin is sponsored by Vaklui.
License
MIT License. See LICENSE for details.
统计信息
- 总下载量: 1.93k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 8
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-04-16
