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

Overview

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

Note: If you're looking for an application boilerplate that supports the TALL stack, you should check out Laravel Jetstream. It comes with authentication scaffolding, account management, teams support.

Installation

This preset is intended to be installed into a fresh Laravel application. Follow Laravel's installation instructions to ensure you have a working environment before continuing.

Installation (without auth)

Then 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

Comments
  • Laravel 9.x Compatibility

    Laravel 9.x Compatibility

    This is an automated pull request from Shift to update your package code and dependencies to be compatible with Laravel 9.x.

    Before merging, you need to:

    • Checkout the l9-compatibility branch
    • Review all comments for additional changes
    • Thoroughly test your package

    If you do find an issue, please report it by commenting on this PR to help improve future automation.

    enhancement 
    opened by laravel-shift 11
  • Use Livewire's routing helper

    Use Livewire's routing helper

    I noticed a lot of views that only return a Livewire component, which I think is redundant.

    This PR uses Livewire's routing helper to cut out the extra boilerplate code.

    PS: There are some CS fixes as well. 😄

    enhancement 
    opened by pktharindu 9
  • The Mix manifest does not exist.

    The Mix manifest does not exist.

    There seems to be a problem with the laravel-mix-tailwind package, which in turn also prevents the mix manifest from being generated.

    ERESOLVE unable to resolve dependency tree
    npm ERR!
    npm ERR! While resolving: undefined@undefined
    npm ERR! Found: [email protected]
    npm ERR! node_modules/laravel-mix
    npm ERR!   dev laravel-mix@"^5.0.7" from the root project
    npm ERR!
    npm ERR! Could not resolve dependency:
    npm ERR! peer laravel-mix@"^2.1.7" from [email protected]
    npm ERR! node_modules/laravel-mix-tailwind
    npm ERR!   laravel-mix-tailwind@"*" from the root project
    npm ERR!
    npm ERR! Fix the upstream dependency conflict, or retry
    npm ERR! this command with --force, or --legacy-peer-deps
    npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
    npm ERR!
    npm ERR! See /Users/quentin/.npm/eresolve-report.txt for a full report.
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /Users/quentin/.npm/_logs/2020-11-05T10_24_54_803Z-debug.log
    

    Not sure how to work around this.

    opened by QuentinWatt 8
  • Custom redirect  after login / Register

    Custom redirect after login / Register

    Hi

    Thanks for this package.

    I would like to redirect to the previous page when a user login or register just like mentioned in this article:

    https://stackoverflow.com/questions/42326430/how-to-redirect-to-previous-page-after-successful-register-in-laravel

    how can it be implemented using livewire in the login/register?

    opened by techguydev 8
  • Login component cannot authenticate

    Login component cannot authenticate

    I'm using TALL v2.0.0 on Laravel 8, fresh install with auth.

    First attempt at logging in via the Login component, I got the following error:

    SQLSTATE[42S22]: Column not found: 1054 Unknown column 'remember' in 'where clause' (SQL: select * from users where email = [email protected] and remember = 0 limit 1)

    This appears to be due to the validation in the Login component's authenticate() method:

    $credentials = $this->validate([
        'email' => ['required', 'email'],
        'password' => ['required'],
    ]);
    

    It seems $this->validate() will return all public members of the component class, whether they are listed in the validation rules or not. The $remember member therefore gets sent to Auth::attempt() so it adds it into the users query.

    If this is desired behaviour by Livewire, then the issue is with the component needing to restrict $credentials to the keys in the rules array only. If this isn't desired behaviour then I guess this is a Livewire bug?

    opened by theriftlab 6
  • Could not open input file: artisan

    Could not open input file: artisan

    After a fresh install using the command: composer require livewire/livewire laravel-frontend-presets/tall

    I can't run the command: php artisan ui tall because I get Could not open input file: artisan

    Previously I was able to do it (its not the first time I us TALL)

    question 
    opened by lucaros97 6
  • Use Tailwind's built-in `purge`

    Use Tailwind's built-in `purge`

    I don't know if this is something that anyone wants to do because it is incredibly opinionated, but I thought I would PR it anyway.

    Tailwind v1.4 has PurgeCSS built-in now, so it's not strictly necessary we use Spatie's package. However, I know Tailwind's implementation does not automatically set up all the directories to scan.

    This package will put the burden on the end developer to manage their own directories, but I can foresee an increase in tickets here because "CSS classes are missing".

    If there are no objections, I will mark the PR as ready for review so it can be merged. Otherwise, we can close this PR.

    enhancement 
    opened by mikemand 6
  • Issue on

    Issue on "npm install && npm run dev"

    When i run "npm install && npm run dev" i get below warnings and errors:

    vagrant@homestead:~/code/teamsy$ npm install && npm run dev npm WARN deprecated [email protected]: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2. npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules/chokidar/node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.1.2 (node_modules/watchpack/node_modules/chokidar/node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) npm WARN [email protected] requires a peer of laravel-mix@^2.1.7 but none is installed. You must install peer dependencies yourself.

    npm ERR! code ENOENT npm ERR! syscall open npm ERR! path /home/vagrant/code/teamsy/node_modules/webpack-dev-server/node_modules/ansi-regex/package.json.3885035533 npm ERR! errno -2 npm ERR! enoent ENOENT: no such file or directory, open '/home/vagrant/code/teamsy/node_modules/webpack-dev-server/node_modules/ansi-regex/package.json.3885035533' npm ERR! enoent This is related to npm not being able to find a file. npm ERR! enoent

    npm ERR! A complete log of this run can be found in: npm ERR! /home/vagrant/.npm/_logs/2020-11-25T13_55_39_251Z-debug.log

    And the application fails with error:

    "The Mix manifest does not exist"

    opened by Sintaxis 5
  • missing tailwindcss

    missing tailwindcss

    ❯ npm install && npm run dev
    npm WARN @tailwindcss/[email protected] requires a peer of tailwindcss@^1.2.0 but none is installed. You must install peer dependencies yourself.
    

    I had tonpm install tailwindcss first. Then the npm run dev ran fine.

    bug 
    opened by garyblankenship 5
  • Update NPM Dependencies

    Update NPM Dependencies

    Solves #86 (hopefully).

    Both @ryangjchandler and I are unable to reproduce the original issue so hopefully bumping all NPM dependencies to their latest versions should help out.

    bug 
    opened by danharrin 4
  • Laravel 8.x fresh install: NPM unable to resolve dependency tree

    Laravel 8.x fresh install: NPM unable to resolve dependency tree

    Fresh Laravel v8.5.7 installation on MacOs Big Sur and using ^2.2 of the TALL preset.

    Steps to reproduce

    laravel new my-app or curl -s https://laravel.build/my-app | bash

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

    Error

    npm ERR! code ERESOLVE
    npm ERR! ERESOLVE unable to resolve dependency tree
    npm ERR!
    npm ERR! While resolving: undefined@undefined
    npm ERR! Found: [email protected]
    npm ERR! node_modules/laravel-mix
    npm ERR!   dev laravel-mix@"^6.0.6" from the root project
    npm ERR!
    npm ERR! Could not resolve dependency:
    npm ERR! peer laravel-mix@"^2.1.7" from [email protected]
    npm ERR! node_modules/laravel-mix-tailwind
    npm ERR!   dev laravel-mix-tailwind@"^0.1.0" from the root project
    

    Solution

    npm install --force works but ideally should not error and Tailwind 2.0 should now be the standard..

    opened by nathandaly 4
  • Write a workflow for screenshotting important screens in application

    Write a workflow for screenshotting important screens in application

    I think it would be a nice idea to take some screenshots of the important pages in an application that uses this preset and upload them when a pull request is opened so that we can quickly see what things look like.

    If we wanted, we could probably do videos as well since GH nows support MP4 files on issues / PRs.

    enhancement 
    opened by ryangjchandler 0
  • Optional --pest test suite

    Optional --pest test suite

    Would you be interested in a --pest option which would convert the existing PHPUnit test suite to Pest tests? I'm converting it on my project anyway, and it would be ideal if the work could be reused by others.

    enhancement 
    opened by AlexMartinFR 4
  • WIP: Extra Features

    WIP: Extra Features

    Per #22, this PR adds some extra features on top of the basic preset. Currently, this is just an application layout shell and a stub for an account settings page, but the goal would be to also cover the other things mentioned in the issue.

    Right now, it also requires you to use the --auth preset too, as the links in the application shell and account settings page makes no sense without authentication.

    enhancement 
    opened by imliam 0
  • Use concerns of laravel/ui

    Use concerns of laravel/ui

    Many solutions of laravel are not accessible if you are using this preset (including security features). For example the concern AuthenticatesUsers. It ships with throttling login attempts and choosing a custom username() instead of only email.

    Maybe the concerns should be added but then this preset or better laravel/ui cannot be uninstalled because the concerns are implemented there.

    enhancement 
    opened by Jubeki 6
  • "Extra" option with more out-of-the-box

    While the current preset was made to pretty much a match the existing laravel/ui presets one-to-one, I feel like we could probably go a little bit further for people that want it, to get even closer to a real-world application, and offer some extra utilities out of the box.

    Here are some of the things I think this "extra" option could possibly do:

    • Include some basic styling for the "app" layout"
    • Include a "change password" form for authenticated users
    • Include a few basic components/classes for things like form elements
    • Include additional tools commonly used in the stack, like Spruce, Alpine Test Utils and implement Tailwind CSS Spinner into the loading states

    It may be a little more opinionated than the basic version, without being a full-blown boilerplate.

    What do people think of this? Is this something we could consider or is it just out of the scope of this package?

    enhancement 
    opened by imliam 3
  • Extract styles/components from reused classes?

    Extract styles/components from reused classes?

    I figured I'd raise this as a discussion point to see what people think so we can come to a consensus before raising anything.

    Right now we've got a handful of CSS classes we re-use all over the auth views, in particular for things like <button> styles. In most real applications, I'd personally see this as something I need to commonly reuse, and I'd extract it to either a Blade component <x-button> or CSS class .button

    That said, the buttons we have so far are not typical buttons you'd find in an app - there's no primary/secondary/danger/etc. styles and it's not guaranteed people will use these styles again as the button is specifically styled for the auth pages.

    Thoughts?

    enhancement 
    opened by imliam 1
Releases(v5.0.3)
  • v5.0.3(Dec 11, 2022)

    What's Changed

    • Bump @tailwindcss/forms to a new version by @Blinks44 in https://github.com/laravel-frontend-presets/tall/pull/122

    New Contributors

    • @Blinks44 made their first contribution in https://github.com/laravel-frontend-presets/tall/pull/122

    Full Changelog: https://github.com/laravel-frontend-presets/tall/compare/v5.0.2...v5.0.3

    Source code(tar.gz)
    Source code(zip)
  • v5.0.2(Dec 10, 2022)

    What's Changed

    • Resolved "Uncaught ReferenceError: require is not defined" by @inDeev in https://github.com/laravel-frontend-presets/tall/pull/120

    New Contributors

    • @inDeev made their first contribution in https://github.com/laravel-frontend-presets/tall/pull/120

    Full Changelog: https://github.com/laravel-frontend-presets/tall/compare/v5.0.1...v5.0.2

    Source code(tar.gz)
    Source code(zip)
  • v5.0.1(Jul 28, 2022)

    What's Changed

    • Update Laravel Installation Link by @brandon-9 in https://github.com/laravel-frontend-presets/tall/pull/117
    • Needs to be in array by @brandon-9 in https://github.com/laravel-frontend-presets/tall/pull/118

    New Contributors

    • @brandon-9 made their first contribution in https://github.com/laravel-frontend-presets/tall/pull/117

    Full Changelog: https://github.com/laravel-frontend-presets/tall/compare/v5.0.0...v5.0.1

    Source code(tar.gz)
    Source code(zip)
  • v5.0.0(Jul 26, 2022)

    What's Changed

    • add vite 3 support for Laravel 9 by @kustomrtr in https://github.com/laravel-frontend-presets/tall/pull/115

    New Contributors

    • @kustomrtr made their first contribution in https://github.com/laravel-frontend-presets/tall/pull/115

    Full Changelog: https://github.com/laravel-frontend-presets/tall/compare/v4.2.0...v5.0.0

    Source code(tar.gz)
    Source code(zip)
  • v4.2.0(Mar 13, 2022)

    What's Changed

    • Upgrade to TailwindCSS v3 by @andcl in https://github.com/laravel-frontend-presets/tall/pull/98

    Full Changelog: https://github.com/laravel-frontend-presets/tall/compare/v4.1.0...v4.2.0

    Source code(tar.gz)
    Source code(zip)
  • v4.1.0(Mar 9, 2022)

    What's Changed

    • moving Alpine JS from Bootstrap.js to app.js by @sxshateri in https://github.com/laravel-frontend-presets/tall/pull/94
    • Alpine.js now has a site by @titonova in https://github.com/laravel-frontend-presets/tall/pull/96
    • Laravel 9.x Compatibility by @laravel-shift in https://github.com/laravel-frontend-presets/tall/pull/100

    New Contributors

    • @sxshateri made their first contribution in https://github.com/laravel-frontend-presets/tall/pull/94
    • @titonova made their first contribution in https://github.com/laravel-frontend-presets/tall/pull/96
    • @laravel-shift made their first contribution in https://github.com/laravel-frontend-presets/tall/pull/100

    Full Changelog: https://github.com/laravel-frontend-presets/tall/compare/v4.0.0...v4.1.0

    Source code(tar.gz)
    Source code(zip)
  • v4.0.0(Aug 16, 2021)

  • v3.1.0(Jan 15, 2021)

  • v3.0.0(Jan 13, 2021)

  • v2.2.0(Dec 24, 2020)

  • v2.1.1(Oct 26, 2020)

  • v2.1.0(Oct 12, 2020)

  • v2.0.1(Sep 22, 2020)

  • v2.0.0(Sep 10, 2020)

    Added

    • Updated minimum Alpine version to 2.6. (#61)

    Fixed

    • Added support for Livewire v2. (#61)
    • Move js/app.js bundle into <head> of the document to fix errors with Alpine. (#61)
    • Added missing return statements to redirects in Livewire components. (#61)
    Source code(tar.gz)
    Source code(zip)
  • v1.7.3(Jul 21, 2020)

    • Add default named route to default (non-auth) stubs
    • Add test to check the Registered event is triggered
    • Update Tailwind UI to latest version
    • Add Tailwind's new typography plugin
    • Redirect to intended route after login or registration
    • Fix descriptive text disappearing when using pagination views
    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(May 7, 2020)

Owner
Laravel Frontend Presets
Laravel Frontend Presets
It's like React for PHP. Powered by Laravel, Livewire, Tailwind, & Alpine.

Tailwire It's like React for PHP. Powered by Laravel, Livewire, Tailwind, & Alpine. Features: Use a custom view component class namespace Declare rout

null 5 Dec 12, 2021
Free and open-source Laravel admin dashboard interface built with Livewire & Alpine.js based on Bootstrap 5

Volt Dashboard Laravel Free Frontend Web App for Laravel with Livewire & Alpine.js Never start a development project from scratch again. We've partner

Themesberg 200 Jan 4, 2023
Laravel Livewire (TALL-stack) form generator with realtime validation, file uploads, array fields, blade form input components and more.

TALL-stack form generator Laravel Livewire, Tailwind forms with auto-generated views. Support Contributions Features This is not an admin panel genera

TinaH 622 Jan 2, 2023
🔌 Convert Bootstrap CSS code to Tailwind CSS code

Tailwindo This tool can convert Your CSS framework (currently Bootstrap) classes in HTML/PHP (any of your choice) files to equivalent Tailwind CSS cla

Awssat 938 Dec 24, 2022
A TALL-based Laravel Livewire component to replace the (multiple) select HTML input form with beautiful cards.

TALL multiselect cards A TALL-based Laravel Livewire component to replace the (multiple) select HTML input form with beautiful cards. Table of content

Frederic Habich 19 Dec 14, 2022
Livewire Notifier is a simple notifications system with zero dependencies above TALL-stack

Livewire Notifier is a simple notifications system with zero dependencies above TALL-stack (Tailwind CSS, Alpine.JS, Laravel and Livewire).

CodeSPB 18 Jul 27, 2022
A Laravel UI preset for UIkit and Vue.js

New version: torrix/laravel-uikit This package is for Laravel 6, and is no longer maintained. Please use the Laravel 8 version UIkit frontend UI prese

Torrix 66 Jan 29, 2022
Sweetalert and Toaster notifications for Laravel livewire with support for tailwind and bootstrap.

Larabell Integrate livewire with sweetalert. Installation How to use Sweetalert Toast Available configuration Installation composer require simtabi/la

Simtabi 3 Jul 27, 2022
Aplicación Laravel-Livewire-Tailwind. La aplicación se conecta a APIRest y muestra resultados, búsquedas, historial, Responsive Design

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Juan Gómez 0 Feb 10, 2022
Livewire UI components with tailwind base style

WireUI ?? Documentation Wire UI is a library of components and resources to empower your Laravel and Livewire application development. Starting a new

WireUi 811 Jan 2, 2023
Twitter clone project being developed by using PHP Laravel Framework and tailwind.css

Twits! About Twits! We, as enthusiastic learners and new developers, kicked of this project in order to improve our skills and capabilities in PhP Lar

Furkan Meraloğlu 10 Aug 29, 2022
A simple blog app where a user can signup , login, like a post , delete a post , edit a post. The app is built using laravel , tailwind css and postgres

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Nahom_zd 1 Mar 6, 2022
This package wraps up the standalone executable version of the Tailwind CSS framework for a Laravel application.

Tailwind CSS for Laravel Introduction This package wraps the standalone Tailwind CSS CLI tool. No Node.js required. Inspiration This package was inspi

Tony Messias 240 Nov 19, 2022
Laravel blade directives and php helpers for serverside rendered content, based on browser window size WITHOUT css. Requires Livewire and AlpineJS.

Laravel Livewire Window Size and Breakpoints Laravel blade directives and php helpers for server side rendered content, based on browser window size W

Tina Hammar 15 Oct 6, 2022
Laravel-comments-livewire - Livewire components for the laravel-comments package

Associate comments and reactions with Eloquent models This package contains Livewire components to be used with the spatie/laravel-comments package. S

Spatie 15 Jan 18, 2022
Gallium is a TALL stack starter kit offering a robust set of options enabling you to get up and running in a snap.

Very short description of the package This is where your description should go. Try and limit it to a paragraph or two, and maybe throw in a mention o

null 1 Nov 20, 2021
Laravel Package to generate CRUD Files using TALL Stack

tall-crud-generator Laravel Package to generate CRUD Files using TALL Stack Requirements Make sure that Livewire is installed properly on your project

AscSoftwares 75 Jan 2, 2023
Automated Laravel TALL-stack installation with superpowers.

Easy command to install the TALL-stack & jumpstart development ?? This package provides a simple artisan command for Laravel that can fully scaffold y

Ralph J. Smit 38 Dec 3, 2022
A collection of tools for rapidly building beautiful TALL stack interfaces, designed for humans.

Filament is a collection of tools for rapidly building beautiful TALL stack interfaces, designed for humans. Packages Admin Panel • Documentation • De

Filament 5.4k Jan 4, 2023