Skip to content

Commit 000aa15

Browse files
committed
Draft article
1 parent ad44f7d commit 000aa15

File tree

1 file changed

+222
-0
lines changed

1 file changed

+222
-0
lines changed
Lines changed: 222 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,222 @@
1+
---
2+
title: "Filament v4.1 is here!"
3+
slug: danharrin-filament-v4-1
4+
author_slug: danharrin
5+
publish_date: 2025-09-29
6+
categories: [general]
7+
type_slug: news
8+
---
9+
10+
We're very excited to announce the release of **Filament v4.1**!
11+
12+
Since v4.0 was released, the core team and community have been hard at work:
13+
14+
- **153 bug fixes merged**
15+
- **37 brand new features**
16+
17+
That's a lot of code reviewed, tested, and merged, and it wouldn't have been possible without the amazing efforts of the entire community. 💛
18+
19+
Special thanks to:
20+
- [**Adam Weston**](https://github.com/awcodes) for helping port rich editor improvements from his excellent v3 TipTap plugin.
21+
- [**@People-Sea**](https://github.com/People-Sea) for investigating bug reports from the community and providing a ton of fixes.
22+
23+
## Our favourite new features in v4.1
24+
25+
Here are a few of the highlights we're most excited about.
26+
27+
### New Panel Layout (No Topbar)
28+
29+
We've introduced a **panel layout option without a topbar**. This is perfect for apps that want to maximize vertical space. The user menu, notifications button, and global search can move to the sidebar, which opens up some interesting theming possibilities.
30+
31+
We can't wait to see what you build with it!
32+
33+
![No Topbar Layout Screenshot](#)
34+
35+
To enable this layout, pass `false` to the `topbar()` method in your panel configuration:
36+
37+
```php
38+
use Filament\Panel;
39+
40+
public function panel(Panel $panel): Panel
41+
{
42+
return $panel
43+
// ...
44+
->topbar(false);
45+
}
46+
```
47+
48+
Special thanks to [**Nolan Nordlund**](https://github.com/nolannordlund) for his time spent on this feature!
49+
50+
### Rich Editor Grid Tool
51+
52+
You can now insert **responsive grids** into rich editor content, up to 12 columns wide.
53+
54+
This includes asymmetrical splits (like a 2-column grid where one column takes 1/3 of the space). Perfect for more advanced layouts inside content.
55+
56+
![Rich Editor Grids Screenshot](#)
57+
58+
To enable this feature, add the `grid` tool to your rich Eeitor `toolbarButtons()`:
59+
60+
```php
61+
use Filament\Forms\Components\RichEditor;
62+
63+
RichEditor::make('content')
64+
->toolbarButtons([
65+
['bold', 'italic', 'link', 'h2', 'h3'],
66+
['grid', 'attachFiles'], // The grid tool can be added anywhere in the toolbar
67+
])
68+
```
69+
70+
### Rich Editor Text Color Tool
71+
72+
The rich editor now supports **text color selection**. You can pick from the default Tailwind color palette or pick your own custom color. You can also provide a custom color palette for users to pick from.
73+
74+
When picking from a palette, light/dark mode accessibility is handled automatically for the user.
75+
76+
![Rich Editor Text Color Screenshot](#)
77+
78+
To enable this feature, add the `textColor` tool to your rich editor `toolbarButtons()`:
79+
80+
```php
81+
use Filament\Forms\Components\RichEditor;
82+
83+
RichEditor::make('content')
84+
->toolbarButtons([
85+
['bold', 'italic', 'link', 'h2', 'h3'],
86+
['textColor', 'attachFiles'], // The text color tool can be added anywhere in the toolbar
87+
])
88+
```
89+
90+
You can also customize the color palette that is available using the `textColors()` method:
91+
92+
```php
93+
use Filament\Forms\Components\RichEditor;
94+
use Filament\Forms\Components\RichEditor\TextColor;
95+
96+
RichEditor::make('content')
97+
->textColors([
98+
'#0ea5e9' => 'Brand',
99+
'warning' => TextColor::make('Warning', '#f59e0b', darkColor: '#fbbf24'),
100+
])
101+
```
102+
103+
You can allow users to pick custom colors that aren't in the predefined list by using the `customTextColors()` method:
104+
105+
```php
106+
use Filament\Forms\Components\RichEditor;
107+
108+
RichEditor::make('content')
109+
->textColors([
110+
// ...
111+
])
112+
->customTextColors()
113+
```
114+
115+
[Documentation →](https://filamentphp.com.test/docs/4.x/forms/rich-editor#customizing-text-colors)
116+
117+
### Compact Table Repeater Style
118+
119+
The **table repeater** introduced in v4 makes it possible to render each form field in its own table cell, with each repeater item being a row. In v4.1, some fields (like `Select` and `TextInput`) can now have a **compact design**, making them look seamless within cells.
120+
121+
![Compact Table Repeater Screenshot](#)
122+
123+
To enable this, just set the `compact()` method on the repeater:
124+
125+
```php
126+
use Filament\Forms\Components\Repeater;
127+
128+
Repeater::make('members')
129+
->table([
130+
// ...
131+
])
132+
->compact()
133+
->schema([
134+
// ...
135+
])
136+
```
137+
138+
[Documentation →](https://filamentphp.com.test/docs/4.x/forms/repeater#compact-table-repeaters)
139+
140+
### New Table Layout For Repeatable Entry
141+
142+
Like the table repeater, but for **infolist entries**. Each entry is rendered in a cell, allowing you to output static tables inside schemas with **text, icons, images, and more**.
143+
144+
![Repeatable Entry Table Layout Screenshot](#)
145+
146+
To enable this, use the `table()` method on your `RepeatableEntry` component:
147+
148+
```php
149+
use Filament\Infolists\Components\IconEntry;
150+
use Filament\Infolists\Components\RepeatableEntry;
151+
use Filament\Infolists\Components\RepeatableEntry\TableColumn;
152+
use Filament\Infolists\Components\TextEntry;
153+
154+
RepeatableEntry::make('comments')
155+
->table([
156+
TableColumn::make('Author'),
157+
TableColumn::make('Title'),
158+
TableColumn::make('Published'),
159+
])
160+
->schema([
161+
TextEntry::make('author.name'),
162+
TextEntry::make('title'),
163+
IconEntry::make('is_published')
164+
->boolean(),
165+
])
166+
```
167+
168+
[Documentation →](https://filamentphp.com/docs/4.x/infolists/repeatable-entry#table-repeatable-layout)
169+
170+
### Empty State Schema Component
171+
172+
A brand-new schema component for inserting **empty states anywhere** in your app. Each empty state can include a heading, description, icon, and footer actions. Use this to guide users to take action when there's nothing to show.
173+
174+
![Empty State Schema Screenshot](#)
175+
176+
To insert this component into your schema, use the `EmptyState` class:
177+
178+
```php
179+
use Filament\Actions\Action;
180+
use Filament\Schemas\Components\EmptyState;
181+
use Filament\Support\Icons\Heroicon;
182+
183+
EmptyState::make('No users yet')
184+
->description('Get started by creating a new user.')
185+
->icon(Heroicon::OutlinedUser)
186+
->footer([
187+
Action::make('createUser')
188+
->icon(Heroicon::Plus),
189+
])
190+
```
191+
192+
[Documentation →](https://filamentphp.com/docs/4.x/schemas/empty-states)
193+
194+
## The Filament v4 Plugin Ecosystem
195+
196+
The plugin ecosystem keeps growing. There are now **190 v4 plugins** available on the website!
197+
198+
👉 [Browse all plugins](https://filamentphp.com/plugins)
199+
200+
Huge thanks to every community plugin author for building new plugins and upgrading existing ones. Your work makes Filament more powerful for everyone.
201+
202+
Here are a few of our recenty added favourites:
203+
204+
- [Plugin Name #1](#)
205+
- [Plugin Name #2](#)
206+
- [Plugin Name #3](#)
207+
208+
## Why sponsorships matter 💸
209+
210+
Reviewing 153 bug fixes, 37 new features, and supporting users with questions takes a **huge amount of time** from the Filament core team. Please consider **sponsoring the project on GitHub**:
211+
212+
👉 [Become a sponsor of Filament](https://github.com/sponsors/danharrin)
213+
214+
Sponsorship directly supports the team who develops Filament and provides support. Sponsorship money is shared among core team members. Monthly and one-time options are available, as well as advertising opportunities on our website for companies sponsoring **$100/month** or more.
215+
216+
Your support makes Filament possible. Thank you for helping us build the tools that power your applications. 💛
217+
218+
## Try Filament v4.1 today!
219+
220+
The upgrade is just a `composer update` away from v4.0, and you'll immediately benefit from the bug fixes and new features.
221+
222+
We'd love to see what you build. Come share your work in the [Filament Discord](https://filamentphp.com/discord)!

0 commit comments

Comments
 (0)