/tall

A TALL (Tailwind CSS, Alpine.js, Laravel and Livewire) Preset for Laravel

Primary LanguagePHPMIT LicenseMIT

Laravel TALL Preset

CI Status Total Downloads

A front-end preset for Laravel to scaffold an application using the TALL stack, jumpstarting your application's development.

If you're not familiar with the name, it's an acronym that describes the main technologies involved in the stack:

Login View

Some notable features of this package include:

  • Views extending a default layout
  • Front-end assets like Tailwind CSS and Alpine.js compiled with Laravel Mix
  • Tailwind-powered pagination views
  • The Tailwind UI and Tailwind's Custom Forms extensions available out-of-the-box

Installation (without auth)

To install the preset in a fresh Laravel application, simply run the following commands:

composer require livewire/livewire laravel-frontend-presets/tall
php artisan ui tall
npm install
npm run dev

Installation (with auth)

If you would like to install the preset and its auth scaffolding in a fresh Laravel application, make sure to use the --auth flag on the ui command:

composer require livewire/livewire laravel-frontend-presets/tall
php artisan ui tall --auth
npm install
npm run dev

Some notable features of the authentication scaffolding include:

  • Powered by Livewire components and single action controllers
  • Bundled with pre-written tests

All routes, components, controllers and tests are published to your application. The idea behind this is that you have full control over every aspect of the scaffolding in your own app, removing the need to dig around in the vendor folder to figure out how things are working.

CSS purging

Tailwind uses PurgeCSS to remove any unused classes from your production CSS builds. You can modify or remove this behaviour in the purge section of your tailwind.config.js file. For more information, please see the Tailwind documentation.

Removing the package

If you don't want to keep this package installed once you've installed the preset, you can safely remove it. Unlike the default Laravel presets, this one publishes all the auth logic to your project's /app directory, so it's fully redundant.

A note on pagination

If you are using pagination, you set the default pagination views to the ones provided in the boot method of a service provider:

use Illuminate\Pagination\Paginator;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        Paginator::defaultView('pagination::default');

        Paginator::defaultSimpleView('pagination::simple-default');
    }
}

Credits