DevGang
Авторизоваться

Как быстро добавить TailwindCSS в React для стилизации приложения?

TailwindCSS — один из популярных CSS-фреймворков, работающих на основе утилит для создания веб-приложений. Он совместим с любым front-end фреймворком или библиотекой, включая Reactjs. В этом руководстве мы рассмотрим, как добавить TailwindCSS в React.

Многие современные веб-приложения создаются на основе React + TailwindCSS, что стало популярным выбором для разработчиков, которые ценят скорость и гибкость при разработке пользовательского интерфейса.

В этом руководстве вы узнаете, почему TailwindCSS — хороший выбор для стилизации, как добавить его в проект React и как стилизовать страницу со списком товаров на практике.

Понимание TailwindCSS

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

В отличие от традиционных CSS-фреймворков, таких как Bootstrap, TailwindCSS дает разработчикам полный контроль над дизайном, не ограничивая их готовыми компонентами.

Благодаря такому подходу вы можете:

  • Легко создавать адаптивные дизайны.
  • Избегать сложных CSS-файлов.
  • Использовать повторно классы, которые легко понять и изменить.

TailwindCSS  это современный инструмент для веб-разработки, обеспечивающий гибкость, скорость и масштабируемость.

Почему TailwindCSS подходит для стилизации?

TailwindCSS завоевал популярность как инструмент для стилизации веб-приложений. Он упрощает процесс, позволяя применять стили непосредственно в HTML-коде, избавляя от необходимости переключаться между файлами. 

Ключевым достоинством TailwindCSS является возможность настройки и создания собственной дизайн-системы через файл tainwind.config.js.

Кроме того, TailwindCSS обладает развитой экосистемой. Его документация понятна и доступна, существует множество плагинов для расширения функциональности, а также активное и отзывчивое сообщество пользователей.

Разработчики выбирают TailwindCSS, потому что он:

  1. Прост в использовании
  2. Настраиваемый
  3. Легко создавать адаптивный дизайн
  4. Ускоряет разработку
  5. Имеет хорошую экосистему

Пошаговая инструкция по добавлению TailwindCSS в React

Давайте приступим к процессу интеграции. Следуйте этим шагам, чтобы установить TailwindCSS в ваш React-проект и сразу начать стилизовать.

Шаг 1: Создание React-приложения

Сначала подготовьте React-приложение. Если у вас уже есть проект, пропустите этот шаг. Иначе, используйте команду ниже для создания нового React-приложения:

    npx create-react-app my-app

Зайдите в папку вашего проекта:

    cd my-app

Шаг 2: Установка TailwindCSS в React

Установите TailwindCSS и его зависимости с помощью npm или yarn. Выполните следующую команду:

    npm install -D tailwindcss postcss autoprefixer

ShellScript

Затем сгенерируйте файл tailwind.config.js:

    npx tailwindcss init

Это создаст файл конфигурации по умолчанию, где вы сможете настраивать параметры TailwindCSS.

Шаг 3: Настройка TailwindCSS в приложении

Обновите файл tailwind.config.js, указав пути ко всем файлам шаблонов. Это позволит TailwindCSS удалять неиспользуемые стили во время сборки для продакшена:

    module.exports = {
      content: [
        "./src/**/*.{js,jsx,ts,tsx}",
      ],
      theme: {
        extend: {},
      },
      plugins: [],
    };

Затем добавьте директивы Tailwind в ваш CSS-файл. Найдите или создайте файл src/index.css и добавьте в него следующее:

    @tailwind base;
    @tailwind components;
    @tailwind utilities;

Наконец, импортируйте этот CSS-файл в ваш React-проект. Откройте src/index.js и добавьте:

    import './index.css';

Готово! Теперь TailwindCSS интегрирован в ваш React-проект.

Разработчики всегда стремятся ускорить разработку и готовы использовать готовые компоненты. Поэтому существует множество библиотек ReactJS-компонентов на основе Tailwind. Вот список некоторых из лучших библиотек компонентов React на основе TailwindCSS.

Создание карточки предварительного просмотра продукта (задача)

Возьмем за основу задачу Product Preview Card - Challenge от Frontendmentor.io. В этой статье вы увидите, как создать эту карточку предварительного просмотра продукта, используя TailwindCSS и React.

Обучение на практике – это хороший способ чему-то научиться, поэтому создадим небольшой проект. Вы можете посмотреть рабочую демо-версию здесь, а также получить доступ к коду на GitHub.

После принятия вызова и загрузки исходных файлов с frontendmentor.io, нам необходимо настроить некоторые стили в нашем файле tailwind.config.ts (будем использовать TypeScript в этом примере, поэтому расширение файла .ts).

Вот как выглядит итоговый файл tailwind.config.ts:

    import type { Config } from "tailwindcss";

    const config: Config = {
      content: [
        "./pages/**/*.{js,ts,jsx,tsx,mdx}",
        "./components/**/*.{js,ts,jsx,tsx,mdx}",
        "./app/**/*.{js,ts,jsx,tsx,mdx}",
      ],
      darkMode: "class",
      theme: {
        extend: {
          screens: {
            xs: "400px",
            xxs: "300px",
          },
          colors: { // Customize & Define design specific colors here
            productPreview: {
              dark_cyan: "hsl(158, 36%, 37%)",
              cream: "hsl(30, 38%, 92%)", 
              dark_blue: "hsl(212, 21%, 14%)",
              grayish_blue: "hsl(228, 12%, 48%)"
            }
          },
        },
      },
      plugins: [],
    };
    export default config;

Определив здесь цвета, можно использовать их в любом месте своего проекта, например, text-productPreview-dark_cyan, bg-productPreview-cream. Видите, как легко можно определить цвет один раз и использовать его для всего, например, для текста, фона, границ и т.д.

Далее мы посмотрим на саму карточку. Для карточки предварительного просмотра продукта создадим отдельный компонент, используя компоненты React. Код будет выглядеть следующим образом:

    import React from 'react'

    export default function ProductPreviewCard() {
      return (
        <section className="bg-white max-w-[500px] sm:max-w-[700px] overflow-hidden rounded-lg grid grid-cols-1 sm:grid-cols-2">

            {/* product image */}
            <picture className='w-full h-full object-center'>
                <source srcSet='/icons/product-preview-card/image-product-mobile.jpg' media="(max-width:639px)" className='w-full h-full object-cover' />
                <img src='/icons/product-preview-card/image-product-desktop.jpg' alt="Product Image" className='w-full h-full object-cover' />
            </picture>

            {/* text content */}
            <article className="p-6 sm:p-8 flex flex-col justify-between">
                <p className='uppercase text-productPreview-grayish_blue font-medium tracking-[0.3em]'>Perfume</p>
                <h1 className='mt-4 sm:mt-6 text-3xl sm:text-4xl font-bold'>Gabrielle Essence Eau De Parfum</h1>
                <p className='mt-4 sm:mt-6 text-base text-productPreview-grayish_blue font-medium'>A floral, solar and voluptuous interpretation composed by Olivier Polge, 
                Perfumer-Creator for the House of CHANEL.</p>

                <div className="flex items-center gap-4 mt-6 sm:mt-8">
                    <h2 className='text-productPreview-dark_cyan font-bold text-3xl'>$149.99</h2>
                    <p className='text-sm line-through text-productPreview-grayish_blue font-medium'>$169.99</p>
                </div>

                <button type='button' className='bg-productPreview-dark_cyan rounded-lg p-4 text-base text-white flex items-center gap-2 justify-center w-full mt-8'>
                    <img src='/icons/product-preview-card/icon-cart.svg' alt='cart icon' />
                    <span>Add to Cart</span>
                </button>

            </article>

        </section>
      )
    }

Код довольно емкий, но мы обратим внимание только на атрибут className. Это все. Здесь отсутствуют дополнительные или пользовательские CSS, и эти классы не применяются ни в каких других CSS-файлах. Все эти классы сгенерированы и предоставлены TailwindCSS, который мы и использовали.

Результат будет таковым:

После компиляции tailwindcss генерирует классы и объединяет в файл CSS только те, которые используются в данном проекте. Это позволяет сохранить меньший размер файла.

Заключение

Интеграция TailwindCSS с React дает возможность быстро и эффективно разрабатывать стильные и адаптивные веб-приложения. Благодаря подходу, основанному на классах-утилитах, можно сосредоточиться на создании качественных пользовательских интерфейсов, не тратя время на написание большого количества CSS-кода с нуля.

Изучение комбинации React + TailwindCSS - это ценный навык, который будет полезен как начинающим, так и опытным разработчикам, позволяя оптимизировать рабочий процесс и повысить производительность.

Хотите попробовать? Начните использовать React и TailwindCSS уже сегодня и убедитесь, что процесс стилизации стал намного проще!

Источник:

#JavaScript #CSS #React #TypeScript
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу