Croppie Field
CommunityCropper Image Field Plugin For Filament Forms
Author:
Michael Douglas
Package health
BetaAutomated checks of this plugin's Composer package
15 checks
- Skipped: GitHub Actions pinned to SHA
- 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
- Failed: Provides a security policy — View details on Plumb
- Passed: Abandoned or archived — No consulted source marks the package abandoned (packagist, github).
- Failed: Commit and release recency — Inactive: last commit 493 days ago; last release 493 days ago. View details on Plumb
-
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.1supports 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
This package provides an image cropping component for FilamentPHP, using the Croppie.js library. It allows users to interactively crop images before uploading, offering flexible configuration options to control the crop size, aspect ratio, and format.
#Installation
composer require michaeld555/filament-croppie
After installation, you'll be prompted to publish the configuration file and translations. It's recommended to publish the configuration file to customize the default options.
php artisan vendor:publish --tag="filament-croppie-config"
You can also run the install command to publish the config and translations
php artisan filament-croppie:install
#Configuration
The configuration file config/filament-croppie.php allows you to customize the behavior of the Croppie modal. The available options are:
| Option | Description | Default Value |
|---|---|---|
title |
Modal title. | 'Manage Image' |
description |
Modal description. | 'Crop the image to the correct proportion' |
icon |
Modal icon (optional). | null |
size |
Modal size (e.g., sm, md, lg, xl, 2xl, 3xl, 4xl, etc.). |
4xl |
boundary-height |
Height of the crop boundary area. | 400 |
boundary-width |
Width of the crop boundary area. | 600 |
viewport-height |
Height of the visible crop area (viewport). | 200 |
viewport-width |
Width of the visible crop area (viewport). | 200 |
enable-resize |
Enables resizing of the viewport. | false |
enable-zoom |
Enables zooming on the image. | true |
show-zoomer |
Shows the zoom control. | true |
viewport-type |
Type of viewport (circle or square). |
circle |
#Usage
To use the Croppie component in a Filament form, simply instantiate the Michaeld555\FilamentCroppie\Components\Croppie component:
use Michaeld555\FilamentCroppie\Components\Croppie;
Croppie::make('avatar')
->label('Avatar') // Field label
->disk('public') // Storage disk
->directory('avatars') // Storage directory
// ... other configuration options
#Examples
#Basic Usage with Custom Upload Path
Croppie::make('profile_picture')
->label('Profile Picture')
->disk('s3')
->directory('profile-images')
->imageResizeTargetWidth(400)
->imageResizeTargetHeight(400);
#Circular Crop (Avatar) with Larger Modal
Croppie::make('user_avatar')
->avatar()
->modalSize('5xl')
->modalDescription('Please upload a square image for optimal results.');

#Square Crop with Custom Viewport Size and Zoom Disabled
Croppie::make('product_image')
->viewportType('square')
->viewportHeight(250)
->viewportWidth(250)
->enableZoom(false)
->imageFormat('webp');

#Croppie Component Methods
modalTitle(string | Closure | null $modalTitle): Sets the modal title.modalDescription(string | Closure | null $modalDescription): Sets the modal description.modalIcon(string | Closure | null $modalIcon): Sets the modal icon.modalSize(string | Closure | null $modalSize): Sets the modal size.customClasses(string | Closure | null $customClasses): Sets custom CSS classes for the Croppie container.enableOrientation(bool | Closure | null $enableOrientation): Enables/disables image orientation detection.enableResize(bool | Closure | null $enableResize): Enables/disables viewport resizing.enableZoom(bool | Closure | null $enableZoom): Enables/disables zoom on the image.enforceBoundary(bool | Closure | null $enforceBoundary): Sets whether the image should be forced to stay within the defined boundary.mouseWheelZoom(bool | Closure | string $mouseWheelZoom): Sets the mouse wheel zoom behavior (true,false, or'ctrl').showZoomer(bool | Closure | null $showZoomer): Sets whether the zoom control should be displayed.forceCircleResult(bool | Closure | null $forceCircleResult): Sets whether the crop result should be forced to a circle.viewportType(string | Closure | null $viewportType): Sets the viewport type ('circle'or'square').viewportHeight(string | Closure | null $viewportHeight): Sets the viewport height.viewportWidth(string | Closure | null $viewportWidth): Sets the viewport width.boundaryHeight(string | Closure | null $boundaryHeight): Sets the boundary height.boundaryWidth(string | Closure | null $boundaryWidth): Sets the boundary width.imageFormat(string | Closure | null $imageFormat): Sets the resulting image format (e.g., 'png', 'jpeg', 'webp').imageSize(string | Closure | null $imageSize): Sets the resulting image size ('viewport'or'original').imageName(string | Closure | null $imageName): Allows customizing the image name. By default, a UUID is used.
#Changelog
Please see CHANGELOG for more information on what has changed recently.
#Credits
#License
The MIT License (MIT). Please see License File for more information.
The author
From the same author
Featured Plugins
A selection of plugins curated by the Filament team
Blueprint
Filament Blueprint is a premium Laravel Boost extension that helps AI agents produce accurate, detailed implementation plans and security reports for Filament apps.
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
Advanced Tables (formerly Filter Sets)
Supercharge your tables with powerful features like user-customizable views, quick filters, multi-column sorting, advanced table searching, convenient view management, and more. Compatible with Resource Panel Tables, Relation Managers, Table Widgets, and Table Builder!
Kenneth Sese