Как использовать Tailwind CSS с Laravel

Tailwind — это современный CSS-фреймворк. Это платформа, в которой основное внимание уделяется утилитам, и она предоставляет вам уникальный набор служебных классов, что делает процесс разработки очень простым и приводит к созданию уникального дизайна. CSS, ориентированный на утилиты, быстр, надежен и очень эффективен, что упрощает кодирование. CSS Tailwind также не самоуверен; это означает, что вы совершенно свободны в настройке дизайна и компонентов веб-сайта.

Laravel — это полноценная среда для разработки приложений. Это PHP-фреймворк с открытым исходным кодом, в котором разработка надежна и проста. Самое главное, что при использовании Tailwind CSS с Laravel легко поддерживать качество кода по сравнению с пользовательским CSS.

Установка фреймворка Tailwind не проста, как установка фреймворка начальной загрузки, она требует небольшой настройки с помощью laravel Mix. В этом посте мы узнаем, как установить фреймворк tailwind внутри нашего проекта laravel.

Создание проекта Laravel

Сначала откройте Терминал и выполните следующую команду, чтобы создать новый проект Laravel:

composer create-project --prefer-dist laravel/laravel tailwind-laravel

или, если вы установили установщик Laravel как глобальную зависимость composer:

laravel new tailwind-laravel

Установка Tailwind через NPM

Сначала давайте установим зависимости NPM

npm install

Теперь установите Tailwind CSS через npm.

npm install tailwindcss

Добавление Tailwindcss в resources/sass/app.scss

Вам не нужно устанавливать autoprefixer или postcss-import, поскольку они уже установлены вместе с laravel mix.

@import "tailwindcss/base";

@import "tailwindcss/components";

@import "tailwindcss/utilities";

Создание файла конфигурации Tailwind.

Далее нам нужно сгенерировать файл конфигурации tailwind. Эта заливка будет использоваться laravel mix (webpack) при преобразовании файла scss в CSS.

Выполните следующую команду, чтобы создать файл конфигурации.

npx tailwindcss init

Включение Tailwind в процесс сборки Laravel Mix

Далее нам нужно указать Laravel Mix (который внутри использует webpack) скомпилировать sass tailwind с использованием файла конфигурации tailwind.

Откройте webpack.mix.js файл и внесите следующие изменения.

const mix = require('laravel-mix');

mix.js('resources/js/app.js', 'public/js');
    
const tailwindcss = require('tailwindcss')

mix.sass('resources/sass/app.scss', 'public/css')
   .options({
      processCssUrls: false,
      postCss: [ tailwindcss('tailwind.config.js') ],
})

Откройте resources/views/welcome.blade.php файл и внесите следующие изменения.

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Laravel + Tailwind CSS - TechvBlogs</title>

        <!-- Fonts -->
        <link href="https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap" rel="stylesheet">

        <link rel="stylesheet" href="{{ mix('css/app.css') }}">

        <script src="{{ mix('js/app.js') }}"></script>
    </head>
    <body class="antialiased">
        <div class="relative flex items-top justify-center min-h-screen bg-gray-100 dark:bg-gray-900 sm:items-center py-4 sm:pt-0">
            <div class="w-full max-w-xs">
                <h1 class="text-center text-2xl mb-3">Tailwind Laravel TechvBlogs</h1>
                <form class="bg-white shadow-md rounded px-8 pt-6 pb-8 mb-4">
                    <div class="mb-4">
                        <label class="block text-gray-700 text-sm font-bold mb-2" for="username">
                            Username
                        </label>
                        <input class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline" id="username" type="text" placeholder="Username">
                    </div>
                    <div class="mb-4">
                        <label class="block text-gray-700 text-sm font-bold mb-2" for="password">
                            Password
                        </label>
                        <input class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline" id="password" type="password" placeholder="******************">
                    </div>
                    <div class="mb-2">
                        <button class="w-full bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded focus:outline-none focus:shadow-outline" type="button">
                            Sign In
                        </button>
                    </div>
                    <a class="inline-block align-baseline font-bold text-sm text-blue-500 hover:text-blue-800" href="#">
                        Forgot Password?
                    </a>
                </form>
                <div class="text-center">
                    <a class="text-blue-500 hover:text-blue-800 hover:underline" href="https://techvblogs.com/blog/tailwind-css-with-laravel?ref=code" target="_blank">Read Blog</a>
                </div>
            </div>
        </div>
    </body>
</html>

Запустите NPM

Теперь мы готовы запустить процесс сборки npm, выполните следующую команду в вашем терминале/командной строке.

npm run dev

Теперь пришло время запустить наш проект.

php artisan serve

Готово, спасибо за прочтение.