Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament Hover Image Column Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Filament Hover Image Column

A Filament table column that displays a larger image preview card on hover. Drop-in replacement for ImageColumn — all existing methods work unchanged.

Preview

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 ImageColumn and overrides toEmbeddedHtml()
  • 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.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
besmartand-pro/php-quality-config
sentix/ai-chatbot
terminal42/code-quality-tools
codifyo/ts-generator-bundle
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity