lumerel / livewire-media-library
Minimal media library for Laravel Livewire 3
Package info
github.com/kimcee/livewire-media-library
Language:Blade
pkg:composer/lumerel/livewire-media-library
Requires
- php: ^8.2
- illuminate/filesystem: ^10.0|^11.0|^12.0
- illuminate/support: ^10.0|^11.0|^12.0
- livewire/livewire: ^3.0
Suggests
- intervention/image: ^3.8
This package is auto-updated.
Last update: 2026-03-20 15:29:00 UTC
README
A minimal, production-ready image media library for Laravel 10/11 and Livewire 3.
Installation
Add the repository locally and require the package:
"repositories": [ {"type": "path", "url": "../livewire-media-library", "options": {"symlink": true}} ]
composer require lumerel/livewire-media-library:@dev
Publish the configuration and run migrations:
php artisan vendor:publish --tag=media-library-config php artisan migrate
Publish the views:
php artisan vendor:publish --tag=media-library-views
Usage
In you app.css file, add for tailwindcss support
@source '../../vendor/lumerel/livewire-media-library/resources/**/*.blade.php';
Render the uploader and gallery components in your Blade view:
<livewire:lw-media-uploader collection="images" /> <livewire:lw-media-gallery collection="images" />
Alternatively, use the browser component to open the gallery and uploader inside a modal:
<livewire:lw-media-browser collection="images" />
Listen for the lw-media:selected event to get the selected media's id and path.
Switch to the Flux or Bootstrap theme by updating the config:
// config/media-library.php 'theme' => 'flux', // or 'bootstrap'
Install livewire/flux if you want to use the Flux-styled views. Include Bootstrap in your layout if you switch to the Bootstrap theme.
If intervention/image is installed the package will create conversions (thumb, preview) for uploaded images.
The download route /lw-media/{media} proxies files through Laravel's Storage::response() which is useful if direct disk URLs are not desired.
Security
Media files may expose their URLs if stored on public disks. Use the included download route or secure disks as needed.