Image Radio Button plugin screenshot
Dark mode ready
No multilingual support
Supports v5.x

Image Radio Button by Mohamed Alkoumi

Community

Add a radio button but with only images to filament forms.

Tags: Forms Form Field
Supported versions:
5.x 4.x 3.x
Mohamed Alkoumi avatar Author: Mohamed Alkoumi

Package health

Automated checks of this plugin's Composer package

78 / 100
Security 61
Maintenance 100
Ecosystem 100
15 checks
  • Failed: GitHub Actions pinned to SHA — View details on Plumb
  • Skipped: GitLab CI includes pinned to SHA
  • Passed: Open security advisories
  • Passed: Dependabot PR responsiveness — No open Dependabot PRs.
  • Skipped: Renovate MR responsiveness
  • Failed: Dependabot or Renovate configured — No dependency updater configuration found. View details on Plumb
  • Skipped: 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 121 days ago; last release 121 days ago.
  • Passed: composer.lock not committed by library — composer.lock is 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.2|^8.3|^8.4 supports current PHP 8.5.
  • Skipped: Current Symfony version supported
Third-party plugin. This is built by the community, not the Filament team. Filament does not review, endorse, or vet the security of plugins outside the 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 .
Powered by Plumb Last scanned 1 month ago

Documentation

A Filament form component that replaces traditional radio buttons with image selection. Supports RTL and Dark Mode.

Total Downloads Packagist Stars License Latest Version on Packagist GitHub Tests Action Status

Demo

#Requirements

Version PHP Filament Livewire Laravel
2.x 8.2+ 3.x, 4.x, 5.x 3.x, 4.x 10.x, 11.x, 12.x
1.x 8.1+ 3.x, 4.x 3.x 10.x, 11.x

#Installation

composer require alkoumi/filament-image-radio-button

#Theme Setup (Filament 4+)

  1. Create a custom theme: Filament Docs

  2. Add the package views to your theme CSS:

@source '../../../../vendor/alkoumi/filament-image-radio-button/resources/views/**/*.blade.php';
  1. Register the theme in your Panel Provider:
->viteTheme('resources/css/filament/admin/theme.css')
  1. Build assets:
npm run build

#Usage

#Basic Usage

use Alkoumi\FilamentImageRadioButton\Forms\Components\ImageRadioGroup;

ImageRadioGroup::make('report_id')
    ->disk('reports')
    ->options(fn () => Report::pluck('file', 'id')->toArray())

#Full API

use Alkoumi\FilamentImageRadioButton\Forms\Components\ImageRadioGroup;

ImageRadioGroup::make('report_id')
    ->label(__('Report Design'))
    ->required()
    ->disk('reports')                    // Storage disk name
    ->options(fn () => [...])            // Array of [ id => image_path ]
    ->gridColumns(4)                     // Number of columns (default: 3)
    ->live()                             // Enable live updates

#Dynamic Options

ImageRadioGroup::make('report_id')
    ->disk('reports')
    ->options(fn (Get $get) => Report::whereType($get('type_id'))->pluck('file', 'id')->toArray())
    ->afterStateUpdated(fn (Get $get, Set $set, ?string $state) =>
        $set('selected_report', Report::find($state))
    )
    ->live()

#Configuration

#Storage Disk Setup

Define a disk in config/filesystems.php:

'reports' => [
    'driver' => 'local',
    'root' => storage_path('app/public/reports'),
    'url' => env('APP_URL') . '/storage/reports',
    'visibility' => 'public',
],

#Options Format

Options must be an array where:

  • Key: The value to store (e.g., model ID)
  • Value: The image path relative to the disk
// Example: ['1' => 'storage/template1.jpg', '2' => 'storage/template2.png']
Report::pluck('image_path', 'id')->toArray()

#Screenshots

Modes

#Changelog

Please see CHANGELOG for more information on what has changed recently.

#Contributing

Please see CONTRIBUTING for details.

#Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

#Credits

#License

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