This Filament plugin empowers you to transform your auth pages with ease, allowing you to make them truly stand out. It offers a flexible alternative to the default auth pages in the Filament Panels package.
Setting it up is a breeze, and it comes packed with a variety of customizable features—plus, there’s a lot more to come! 🔥
- Installation
- Usage
- Customizing the Auth UI
- Further Customization - CSS
- Working Examples
- Todo
- Changelog
- Contributing
- Security Vulnerabilities
- Credits
- License
First, starting by installing the plugin via composer:
composer require diogogpinto/filament-auth-ui-enhancer
In an effort to align with Filament's theming methodology you will need to use a custom theme to use this plugin.
Important
If you have not set up a custom theme, follow the instructions in the Filament Docs first.
- Add the plugin's views to your
tailwind.config.js
file. (path: /resource/css/filament/admin)
content: [
'./vendor/diogogpinto/filament-auth-ui-enhancer/resources/**/*.blade.php',
]
Important
The above content should be placed in your filament theme's tailwind.config.js
file, under the /resources/css/filament path
- Run
npm run build
in your terminal
To start using the plugin, you need to add the plugin to your plugins array in your filament panel.
use DiogoGPinto\AuthUIEnhancer\AuthUIEnhancerPlugin;
->plugins([
AuthUIEnhancerPlugin::make(),
])
If you don't have any custom classes on the auth methods of your Filament panel (login(), registration(), resetPassword() and emailVerification()), this plugin will work almost out of the box.
If your panel provider is setup like below, this plugin will automatically apply the changes to your UI.
$panel
->login()
->registration()
If you have custom logic in the mentioned methods, there is a simple way to make that UI pop, using a simple trait from this plugin. If your panel looks like the below:
$panel
->login(YourLoginClass::class)
Just add the following trait to YouLoginClass
:
use DiogoGPinto\AuthUIEnhancer\Pages\Auth\Concerns\HasCustomLayout;
class YourLoginClass extends BaseLogin
{
use HasCustomLayout;
}
The view for this package divides your screen in two sections:
- Form Panel - The panel that contains the form
- Empty Panel - The panel that contains the image
You can customize:
- The form panel position in both desktop and mobile
- The form panel width in desktop
- The form panel background color
You can make the form appear on the left side of the page or in the right side of the page.
->formPanelPosition('left')
On mobile devices, you can chose if the form appears above the empty container or below.
->mobileFormPanelPosition('bottom')
This method accepts top
or bottom
as arguments. You can also hide the empty panel on mobile (see below).
The form panel width has a default value of 50%
. You can change it by adding the following method and passing the desired width.
->formPanelWidth('40%')
Sizes must be expressed in rem, %, px, em, vw, vh or pt.
You can change the form panel background color by using the following method:
use Filament\Support\Colors\Color;
->formPanelBackgroundColor(Color::Zinc, '300')
In this case, 300 is the shade of the color you want to use.
You can also set the color using HEX or RGB, like in a typical filament panel:
use Filament\Support\Colors\Color;
->formPanelBackgroundColor(Color::hex('#f0f0f0'))
You can customize:
- The empty panel background color
- The empty panel background image and its opacity
- Either to show or hide empty panel on mobile
You can set an image to be displayed on the empty panel, and control its opacity.
->emptyPanelBackgroundImageUrl('images/login.webp')
You can pass an asset url, with Laravel's function asset('images/login.webp')
.
If you would like to chance the image opacity of your image, you can use the following method:
->emptyPanelBackgroundImageOpacity('50%')
The default background color is your panel's primary color. You can change the empty panel background color by using the following method:
use Filament\Support\Colors\Color;
->emptyPanelBackgroundColor(Color::Zinc, '300')
In this case, 300 is the shade of the color you want to use.
You can also set the color using HEX or RGB, like in a typical filament panel:
use Filament\Support\Colors\Color;
->emptyPanelBackgroundColor(Color::hex('#f0f0f0'))
You can just use the following method, so the empty panels disappears on mobile and the form container spans to full height:
->showEmptyPanelOnMobile(false)
You can create further customizations in your theme's CSS file. The following classes are avaliable:
/* Whole page wrapper */
.custom-auth-wrapper {}
/* Empty panel wrapper */
.custom-auth-empty-panel {}
/* Form panel wrapper */
.custom-auth-form-panel {}
/* Form wrapper */
.custom-auth-form-wrapper {}
If you're just looking to plug and play some code into your Filament Panel, here's a working code so you can just insert into your plugins array:
use DiogoGPinto\AuthUIEnhancer\AuthUIEnhancerPlugin;
$panel
->plugins([
AuthUIEnhancerPlugin::make()
->showEmptyPanelOnMobile(false)
->formPanelPosition('right')
->formPanelWidth('40%')
->emptyPanelBackgroundImageOpacity('70%')
->emptyPanelBackgroundImageUrl('https://images.pexels.com/photos/466685/pexels-photo-466685.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2')
]);
Warning
This is a random image URL I got from Pexels. If you want to use it in production or commercially you should check its license.
- Render custom views on empty panel
- Develop different layouts
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
- Diogo Pinto - you can follow me on Twitter
- Joao Patrício for his amazing support
- CodeWithDennis for his early contributions
- Geridoc for allowing me to release our packages with Open Source licenses
- All Contributors
The MIT License (MIT). Please see License File for more information.