Skip to main content
Filament Flex Fields is the all-in-one Filament form fields / form components plugin for Filament v5 Laravel admin panels: 79 custom components, a unified --fff-* design system, first-class Spatie Media Library and disk/S3 uploads (Media Ingress), and an optional JSON custom-field layer without EAV tables. Use any field as a standalone drop-in, or wire dynamic schemas through HasFlexFields and FlexFieldFormBuilder. Pre-built CSS and JavaScript ship in the package — no Node.js in production. Built so you do not install a separate plugin for each field type. Standouts: SelectField — virtualized lists, async Livewire search, rich option rows, mobile bottom sheets · FlexSpatieMediaLibraryFileUpload / disk uploads · phone, currency, maps, signatures, rich editor, NPS/matrix surveys — one coherent kit.
Premium companion — Filament Flex Forms
Drag-and-drop Studio, public fill & embed, submissions, Insights, and integrations — a commercial Filament plugin built on Flex Fields.
Buy · Docs · GitHub

Quick start

Register the plugin on your panel:
Drop a component into any form schema:
Upgrading? Run composer update janczakb/filament-flex-fields and php artisan filament:assets. Automate the second step with filament:assets in post-autoload-dump for a hands-off workflow.

Two ways to use Flex Fields

Both approaches share the same component library, design tokens, and lazy asset loading. Start with Shared concepts for sizing, assets, and conventions.

Requirements

Optional Spatie packages (sluggable, translatable, media library, tags) integrate where documented — none are required for core usage.

What’s in the box

Every component loads only its own CSS and JS when rendered — including inside Filament modals and slide-overs. HoldConfirmAction is documented under Actions and is not counted in the 79.

Explore the docs

Getting started

Text & input

FlexTextInput · FlexTextareaField · FlexRichEditor · PhoneField · CountryField · TimezoneField · SlugField & TitleSlugField · AddressAutocompleteField · FlexVerificationCode · TagsField · LinkPreviewField · SocialLinksField

Number & range

NumberStepper · CalculatorField · CurrencyField · FlexSlider · TrackSlider · PriceRangeField · TrafficSplit

Choice & selection

SelectField (virtualized · async search · mobile sheet) · UserSelect · TagsField · IconPickerField · DualListboxField · SwitchField · SegmentControl · ChoiceCards · ChoiceCheckboxCards · ImageChoiceCards · FlexChecklist · TodoListField · BubbleChoiceField · FlexRadiolist · MatrixChoiceField · FlexMatrixTable

Date & time

Date & time fields · ScheduleField

Media, color & location

Media Ingress · FlexFileUpload & FlexImageUpload (disk or Spatie) · ColorSwatchField · FlexColorPickerField · VideoField (YouTube · Vimeo · HTML5) · AudioField · VoiceNoteRecorderField · MapPickerField · SignatureField · CreditCardField · BarcodeScannerField

Rating & tables

RatingField · NpsField · UserColumn · RatingColumn · IconColumn · Admin columns (Progress · StatusChip · MapPin · SignaturePreview)

Layout & display

ItemCard · ItemCardGroup · ItemCardStack · CoverCard · ProgressBar · ProgressCircle · SegmentTabs · TranslatableFields

Actions

Hold confirm action — press-and-hold Filament actions for destructive or irreversible operations

Playground

Enable the playground in your Filament panel to preview components interactively:
Open Settings & Tools → Flex Fields Playground in the admin panel. Use it to compare variants and test form behaviour before shipping to production.