Skip to content

Infolist package for Laravel - Display read-only information with Filament-compatible API

License

Notifications You must be signed in to change notification settings

accelade/infolists

Repository files navigation

Accelade Infolists

Display read-only information with Filament-compatible API

Tests Latest Version Total Downloads License


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'),
    ]);

Why Accelade Infolists?

  • 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

Quick Start

composer require accelade/infolists

Display 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" />

Entry Components

Text Entry

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');

Badge Entry

Display values as styled badges with color mapping.

BadgeEntry::make('status')
    ->colors([
        'active' => 'success',
        'pending' => 'warning',
        'inactive' => 'danger',
    ]);

Image Entry

Display single or multiple images with various styles.

ImageEntry::make('avatar')
    ->circular()
    ->size(64);

ImageEntry::make('gallery')
    ->stacked()
    ->limit(5)
    ->size(48);

Icon Entry

Display icons with boolean mode support.

IconEntry::make('is_verified')
    ->boolean()
    ->trueIcon('heroicon-o-check-circle')
    ->falseIcon('heroicon-o-x-circle');

Color Entry

Display color swatches.

ColorEntry::make('brand_color')
    ->copyable();

Rating Entry

Display star or heart ratings.

RatingEntry::make('score')
    ->max(5)
    ->icon('heroicon-s-star')
    ->color('warning');

Progress Entry

Display progress bars.

ProgressEntry::make('completion')
    ->color('success')
    ->showValue();

Code Entry

Display code snippets with syntax highlighting.

CodeEntry::make('config')
    ->language('json')
    ->copyable();

QR Code Entry

Generate QR codes and barcodes.

QrCodeEntry::make('url')
    ->size(150);

QrCodeEntry::make('sku')
    ->barcode('CODE128');

Key-Value Entry

Display key-value pairs.

KeyValueEntry::make('metadata');

Repeatable Entry

Display repeated data with nested schemas.

RepeatableEntry::make('comments')
    ->schema([
        TextEntry::make('author'),
        TextEntry::make('body'),
    ])
    ->grid(2);

Markdown Entry

Render markdown content with GitHub-flavored styling.

MarkdownEntry::make('description')
    ->collapsible()
    ->collapsed();

HTML Entry

Display HTML or rendered markdown.

HtmlEntry::make('content')
    ->prose()
    ->maxHeight('300px');

Secret Entry

Display masked sensitive data.

SecretEntry::make('api_key')
    ->revealable();

Separator Entry

Add horizontal dividers.

SeparatorEntry::make();

Layouts

Grid Columns

Infolist::make()
    ->columns(3)
    ->schema([
        TextEntry::make('name')->columnSpan(2),
        TextEntry::make('status'),
        TextEntry::make('bio')->columnSpanFull(),
    ]);

Responsive Columns

Infolist::make()
    ->columns([
        'default' => 1,
        'sm' => 2,
        'lg' => 3,
    ])
    ->schema([...]);

Standalone Blade Components

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"
/>

Requirements

  • PHP 8.2+
  • Laravel 11.x or 12.x
  • Accelade (core package)

Documentation

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

Credits

Built as part of the Accelade ecosystem, with inspiration from Filament.


License

MIT License. See LICENSE for details.

About

Infolist package for Laravel - Display read-only information with Filament-compatible API

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published