filament/schemas
Schema building tools for Filament: define, transform, and validate structured data for resources and forms with a simple, composable API. Lightweight package aimed at consistent schema definitions and reuse across your Filament app.
import AutoScreenshot from "@components/AutoScreenshot.astro" import UtilityInjection from "@components/UtilityInjection.astro"
You can display an empty state in your schema to communicate that there is no content to show yet, and to guide the user towards the next action. An empty state requires a heading, but can also have a description(), icon() and footer():
use Filament\Actions\Action;
use Filament\Schemas\Components\EmptyState;
use Filament\Support\Icons\Heroicon;
EmptyState::make('No users yet')
->description('Get started by creating a new user.')
->icon(Heroicon::OutlinedUser)
->footer([
Action::make('createUser')
->icon(Heroicon::Plus),
])
<UtilityInjection set="schemaComponents" version="5.x">As well as allowing static values, the make() and description() methods also accept functions to dynamically calculate them. You can inject various utilities into the function as parameters.</UtilityInjection>
You may add an icon to the empty state using the icon() method:
use Filament\Schemas\Components\EmptyState;
use Filament\Support\Icons\Heroicon;
EmptyState::make('No users yet')
->description('Get started by creating a new user.')
->icon(Heroicon::OutlinedUser)
<UtilityInjection set="schemaComponents" version="5.x">As well as allowing a static value, the icon() method also accepts a function to dynamically calculate it. You can inject various utilities into the function as parameters.</UtilityInjection>
You may insert actions and any other schema component (usually prime components) into the footer of an empty state by passing an array of components to the footer() method:
use Filament\Actions\Action;
use Filament\Schemas\Components\EmptyState;
EmptyState::make('No users yet')
->description('Get started by creating a new user.')
->footer([
Action::make('createUser')
->icon(Heroicon::Plus),
])
<UtilityInjection set="schemaComponents" version="5.x">As well as allowing a static value, the footer() method also accepts a function to dynamically calculate it. You can inject various utilities into the function as parameters.</UtilityInjection>
By default, empty states have a background color, shadow and border. You may remove these styles and just render the content of the empty state without the container using contained(false):
use Filament\Schemas\Components\EmptyState;
EmptyState::make('No users yet')
->description('Get started by creating a new user.')
->contained(false)
<UtilityInjection set="schemaComponents" version="5.x">As well as allowing a static value, the contained() method also accepts a function to dynamically calculate it. You can inject various utilities into the function as parameters.</UtilityInjection>
How can I help you explore Laravel packages today?