Notifications
Installation
The Notifications package is pre-installed with the Panel Builder. This guide is for using the Notifications package in a custom TALL Stack application (Tailwind, Alpine, Livewire, Laravel).
Requirements
Filament requires the following to run:
- PHP 8.1+
- Laravel v10.0+
- Livewire v3.0+
- Tailwind v3.0+ (Using Tailwind v4?)
Require the Notifications package using Composer:
composer require filament/notifications:"^3.2" -W
New Laravel projects
To quickly get started with Filament in a new Laravel project, run the following commands to install Livewire, Alpine.js, and Tailwind CSS:
Since these commands will overwrite existing files in your application, only run this in a new Laravel project!
php artisan filament:install --scaffold --notifications npm install npm run dev
Existing Laravel projects
Run the following command to install the Notifications package assets:
php artisan filament:install --notifications
Installing Tailwind CSS
Filament uses Tailwind CSS v3 for styling. If your project uses Tailwind CSS v4, you will unfortunately need to downgrade it to v3 to use Filament. Filament v3 can't support Tailwind CSS v4 since it introduces breaking changes. Filament v4 will support Tailwind CSS v4.
Run the following command to install Tailwind CSS with the Tailwind Forms and Typography plugins:
npm install tailwindcss@3 @tailwindcss/forms @tailwindcss/typography postcss postcss-nesting autoprefixer --save-dev
Create a new tailwind.config.js
file and add the Filament preset
(includes the Filament color scheme and the required Tailwind plugins):
import preset from './vendor/filament/support/tailwind.config.preset' export default { presets: [preset], content: [ './app/Filament/**/*.php', './resources/views/filament/**/*.blade.php', './vendor/filament/**/*.blade.php', ],}
Configuring styles
Add Tailwind's CSS layers to your resources/css/app.css
:
@tailwind base;@tailwind components;@tailwind utilities;@tailwind variants;
Create a postcss.config.js
file in the root of your project and register Tailwind CSS, PostCSS Nesting and Autoprefixer as plugins:
export default { plugins: { 'tailwindcss/nesting': 'postcss-nesting', tailwindcss: {}, autoprefixer: {}, },}
Automatically refreshing the browser
You may also want to update your vite.config.js
file to refresh the page automatically when Livewire components are updated:
import { defineConfig } from 'vite'import laravel, { refreshPaths } from 'laravel-vite-plugin' export default defineConfig({ plugins: [ laravel({ input: ['resources/css/app.css', 'resources/js/app.js'], refresh: [ ...refreshPaths, 'app/Livewire/**', ], }), ],})
Compiling assets
Compile your new CSS and Javascript assets using npm run dev
.
Configuring your layout
Create a new resources/views/components/layouts/app.blade.php
layout file for Livewire components:
<!DOCTYPE html><html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> <head> <meta charset="utf-8"> <meta name="application-name" content="{{ config('app.name') }}"> <meta name="csrf-token" content="{{ csrf_token() }}"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>{{ config('app.name') }}</title> <style> [x-cloak] { display: none !important; } </style> @filamentStyles @vite('resources/css/app.css') </head> <body class="antialiased"> {{ $slot }} @livewire('notifications') @filamentScripts @vite('resources/js/app.js') </body></html>
Publishing configuration
You can publish the package configuration using the following command (optional):
php artisan vendor:publish --tag=filament-config
Upgrading
Upgrading from Filament v2? Please review the upgrade guide.
Filament automatically upgrades to the latest non-breaking version when you run composer update
. After any updates, all Laravel caches need to be cleared, and frontend assets need to be republished. You can do this all at once using the filament:upgrade
command, which should have been added to your composer.json
file when you ran filament:install
the first time:
"post-autoload-dump": [ // ... "@php artisan filament:upgrade"],
Please note that filament:upgrade
does not actually handle the update process, as Composer does that already. If you're upgrading manually without a post-autoload-dump
hook, you can run the command yourself:
composer update php artisan filament:upgrade
Edit on GitHubStill need help? Join our Discord community or open a GitHub discussion