---
title: Icon entry
---
import AutoScreenshot from "@components/AutoScreenshot.astro"
import UtilityInjection from "@components/UtilityInjection.astro"
## Introduction
Icon entries render an [icon](../styling/icons) representing the state of the entry:
```php
use Filament\Infolists\Components\IconEntry;
use Filament\Support\Icons\Heroicon;
IconEntry::make('status')
->icon(fn (string $state): string => match ($state) {
'draft' => Heroicon::OutlinedPencil,
'reviewing' => Heroicon::OutlinedClock,
'published' => Heroicon::OutlinedCheckCircle,
})
```
The `icon()` method can inject various utilities into the function as parameters.
## Customizing the color
You may change the [color](../styling/colors) of the icon, using the `color()` method:
```php
use Filament\Infolists\Components\IconEntry;
IconEntry::make('status')
->color('success')
```
By passing a function to `color()`, you can customize the color based on the state of the entry:
```php
use Filament\Infolists\Components\IconEntry;
IconEntry::make('status')
->color(fn (string $state): string => match ($state) {
'draft' => 'info',
'reviewing' => 'warning',
'published' => 'success',
default => 'gray',
})
```
The `color()` method can inject various utilities into the function as parameters.
## Customizing the size
The default icon size is `IconSize::Large`, but you may customize the size to be either `IconSize::ExtraSmall`, `IconSize::Small`, `IconSize::Medium`, `IconSize::ExtraLarge` or `IconSize::TwoExtraLarge`:
```php
use Filament\Infolists\Components\IconEntry;
use Filament\Support\Enums\IconSize;
IconEntry::make('status')
->size(IconSize::Medium)
```
As well as allowing a static value, the `size()` method also accepts a function to dynamically calculate it. You can inject various utilities into the function as parameters.
## Handling booleans
Icon entries can display a check or "X" icon based on the state of the entry, either true or false, using the `boolean()` method:
```php
use Filament\Infolists\Components\IconEntry;
IconEntry::make('is_featured')
->boolean()
```
> If this attribute in the model class is already cast as a `bool` or `boolean`, Filament is able to detect this, and you do not need to use `boolean()` manually.
Optionally, you may pass a boolean value to control if the icon should be boolean or not:
```php
use Filament\Infolists\Components\IconEntry;
IconEntry::make('is_featured')
->boolean(FeatureFlag::active())
```
As well as allowing a static value, the `boolean()` method also accepts a function to dynamically calculate it. You can inject various utilities into the function as parameters.
### Customizing the boolean icons
You may customize the [icon](../styling/icons) representing each state:
```php
use Filament\Infolists\Components\IconEntry;
use Filament\Support\Icons\Heroicon;
IconEntry::make('is_featured')
->boolean()
->trueIcon(Heroicon::OutlinedCheckBadge)
->falseIcon(Heroicon::OutlinedXMark)
```
As well as allowing static values, the `trueIcon()` and `falseIcon()` methods also accept functions to dynamically calculate them. You can inject various utilities into the functions as parameters.
### Customizing the boolean colors
You may customize the icon [color](../styling/colors) representing each state:
```php
use Filament\Infolists\Components\IconEntry;
IconEntry::make('is_featured')
->boolean()
->trueColor('info')
->falseColor('warning')
```
As well as allowing static values, the `trueColor()` and `falseColor()` methods also accept functions to dynamically calculate them. You can inject various utilities into the functions as parameters.