--- title: Installation --- **The Widgets package is pre-installed with the [Panel Builder](/docs/panels).** This guide is for using the Widgets 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+ > **Livewire v3 is recently released!**
> The Livewire team have done a great job in making it stable, but it was a complete rewrite of Livewire v2. You may encounter issues, so we recommend testing your application thoroughly before using Filament v3 in production. ## Installation Require the Widgets package using Composer: ```bash composer require filament/widgets:"^3.0-stable" -W ``` ## New Laravel projects To quickly get started with Filament in a new Laravel project, run the following commands to install [Livewire](https://livewire.laravel.com), [Alpine.js](https://alpinejs.dev), and [Tailwind CSS](https://tailwindcss.com): > Since these commands will overwrite existing files in your application, only run this in a new Laravel project! ```bash php artisan filament:install --scaffold --widgets npm install npm run dev ``` ## Existing Laravel projects Run the following command to install the Widgets package assets: ```bash php artisan filament:install --widgets ``` ### Installing Tailwind CSS Run the following command to install Tailwind CSS with the Tailwind Forms and Typography plugins: ```bash npm install tailwindcss @tailwindcss/forms @tailwindcss/typography postcss 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)*: ```js 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`: ```css @tailwind base; @tailwind components; @tailwind utilities; ``` Create a `postcss.config.js` file in the root of your project and register Tailwind CSS and Autoprefixer as plugins: ```js export default { plugins: { 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: ```js 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: ```blade {{ config('app.name') }} @filamentStyles @vite('resources/css/app.css') {{ $slot }} @filamentScripts @vite('resources/js/app.js') ``` ## Publishing configuration You can publish the package configuration using the following command (optional): ```bash php artisan vendor:publish --tag=filament-config ``` ## Upgrading 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: ```json "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: ```bash composer update php artisan filament:upgrade ```