Display read-only information with Filament-compatible API
Build beautiful, read-only information displays using a Filament-compatible API. Perfect for detail views, dashboards, and anywhere you need to present data elegantly.
use Accelade\Infolists\Infolist;
use Accelade\Infolists\Components\TextEntry;
use Accelade\Infolists\Components\ImageEntry;
use Accelade\Infolists\Components\BadgeEntry;
Infolist::make()
->record($user)
->schema([
ImageEntry::make('avatar')->circular(),
TextEntry::make('name')->size('lg')->weight('bold'),
TextEntry::make('email')->icon('heroicon-o-envelope'),
BadgeEntry::make('status')->color('success'),
]);- Filament-Compatible API — Familiar fluent interface if you've used Filament
- 15+ Entry Types — Text, images, badges, icons, colors, QR codes, and more
- Standalone Components — Use entries directly in Blade without the Infolist class
- Dark Mode Support — Automatic light/dark theming with CSS variables
- Responsive Layouts — Grid system with column spans and responsive breakpoints
- Lightweight — No heavy dependencies, works with any Laravel app
composer require accelade/infolistsDisplay user information:
use Accelade\Infolists\Infolist;
use Accelade\Infolists\Components\TextEntry;
use Accelade\Infolists\Components\ImageEntry;
$infolist = Infolist::make()
->record($user)
->columns(2)
->schema([
ImageEntry::make('avatar')
->circular()
->size(80),
TextEntry::make('name')
->label('Full Name')
->size('lg')
->weight('bold'),
TextEntry::make('email')
->icon('heroicon-o-envelope')
->copyable(),
TextEntry::make('created_at')
->label('Member Since')
->dateTime('M j, Y'),
]);Render in Blade:
<x-infolists::infolist :infolist="$infolist" />Or use standalone components directly:
<x-infolists::text-entry label="Name" :value="$user->name" />
<x-infolists::badge-entry label="Status" value="Active" color="success" />Display text with formatting, icons, badges, and more.
TextEntry::make('title')
->label('Article Title')
->size('lg')
->weight('bold')
->color('primary')
->icon('heroicon-o-document')
->copyable();
TextEntry::make('price')
->money('USD');
TextEntry::make('published_at')
->dateTime('M j, Y');
TextEntry::make('tags')
->badge()
->badgeColor('info');Display values as styled badges with color mapping.
BadgeEntry::make('status')
->colors([
'active' => 'success',
'pending' => 'warning',
'inactive' => 'danger',
]);Display single or multiple images with various styles.
ImageEntry::make('avatar')
->circular()
->size(64);
ImageEntry::make('gallery')
->stacked()
->limit(5)
->size(48);Display icons with boolean mode support.
IconEntry::make('is_verified')
->boolean()
->trueIcon('heroicon-o-check-circle')
->falseIcon('heroicon-o-x-circle');Display color swatches.
ColorEntry::make('brand_color')
->copyable();Display star or heart ratings.
RatingEntry::make('score')
->max(5)
->icon('heroicon-s-star')
->color('warning');Display progress bars.
ProgressEntry::make('completion')
->color('success')
->showValue();Display code snippets with syntax highlighting.
CodeEntry::make('config')
->language('json')
->copyable();Generate QR codes and barcodes.
QrCodeEntry::make('url')
->size(150);
QrCodeEntry::make('sku')
->barcode('CODE128');Display key-value pairs.
KeyValueEntry::make('metadata');Display repeated data with nested schemas.
RepeatableEntry::make('comments')
->schema([
TextEntry::make('author'),
TextEntry::make('body'),
])
->grid(2);Render markdown content with GitHub-flavored styling.
MarkdownEntry::make('description')
->collapsible()
->collapsed();Display HTML or rendered markdown.
HtmlEntry::make('content')
->prose()
->maxHeight('300px');Display masked sensitive data.
SecretEntry::make('api_key')
->revealable();Add horizontal dividers.
SeparatorEntry::make();Infolist::make()
->columns(3)
->schema([
TextEntry::make('name')->columnSpan(2),
TextEntry::make('status'),
TextEntry::make('bio')->columnSpanFull(),
]);Infolist::make()
->columns([
'default' => 1,
'sm' => 2,
'lg' => 3,
])
->schema([...]);Use any entry directly in Blade without creating an Infolist:
<x-infolists::text-entry
label="Email"
:value="$user->email"
icon="heroicon-o-envelope"
/>
<x-infolists::badge-entry
label="Status"
value="Active"
color="success"
/>
<x-infolists::image-entry
label="Avatar"
:value="$user->avatar_url"
:circular="true"
:size="64"
/>
<x-infolists::rating-entry
label="Score"
:value="4"
:max="5"
/>
<x-infolists::markdown-entry
label="Description"
:value="$markdownContent"
:collapsible="true"
/>- PHP 8.2+
- Laravel 11.x or 12.x
- Accelade (core package)
| Guide | Description |
|---|---|
| Getting Started | Installation and basic usage |
| Text Entry | Text display with formatting |
| Badge Entry | Styled badge displays |
| Icon Entry | Icon displays with boolean mode |
| Image Entry | Single and multiple images |
| Color Entry | Color swatch displays |
| Rating Entry | Star and heart ratings |
| Progress Entry | Progress bar displays |
| Code Entry | Syntax highlighted code |
| QR Code Entry | QR codes and barcodes |
| Key-Value Entry | Key-value pair displays |
| Repeatable Entry | Repeated data with nested schema |
| Markdown Entry | GitHub-flavored markdown |
| HTML Entry | HTML and prose content |
| Secret Entry | Masked sensitive data |
| Separator Entry | Horizontal dividers |
| API Reference | Complete API documentation |
Built as part of the Accelade ecosystem, with inspiration from Filament.
MIT License. See LICENSE for details.