Перейти к содержимому

59. Utility-first (Tailwind подход)

Иллюстрация к уроку В этом уроке мы познакомимся с подходом к CSS, который называется “Utility-first”. Этот подход, популяризированный Tailwind CSS, предлагает альтернативный способ написания стилей, фокусируясь на создании небольших, многократно используемых классов утилит.

Традиционно, при написании CSS, мы создаем классы, описывающие компоненты веб-страницы, например, .button, .article, .header. В подходе Utility-first мы вместо этого создаем классы, описывающие стили, например, .text-center, .bg-blue-500, .p-4. То есть, вместо создания одного класса, описывающего кнопку, мы комбинируем несколько классов утилит, чтобы стилизовать ее.

Пример:

Предположим, нам нужна кнопка с синим фоном, белым текстом и отступами.

Традиционный CSS:

style.css
.blue-button {
background-color: blue;
color: white;
padding: 1rem;
border-radius: 0.25rem;
}
index.html
<button class="blue-button">Кнопка</button>

Utility-first (Tailwind):

index.html
<button class="bg-blue-500 text-white p-4 rounded">Кнопка</button>

В этом примере bg-blue-500 устанавливает синий фон, text-white устанавливает белый текст, p-4 добавляет отступы (padding), а rounded скругляет углы. Мы использовали готовые классы утилит, вместо создания нового класса .blue-button.

Пример 1: Заголовок с отступами и подчеркиванием:

<h1 class="text-2xl font-bold mb-4 border-b-2 border-gray-300">
Заголовок страницы
</h1>
  • text-2xl: Устанавливает размер текста (относительно).
  • font-bold: Делает текст жирным.
  • mb-4: Добавляет отступ снизу (margin-bottom).
  • border-b-2: Добавляет нижнюю границу.
  • border-gray-300: Устанавливает цвет нижней границы.

Пример 2: Карточка с тенью и отступами:

<div class="bg-white rounded-lg shadow-md p-6">
<h2 class="text-xl font-semibold mb-2">Заголовок карточки</h2>
<p class="text-gray-700">Содержимое карточки.</p>
</div>
  • bg-white: Устанавливает белый фон.
  • rounded-lg: Скругляет углы (больше, чем rounded).
  • shadow-md: Добавляет среднюю тень.
  • p-6: Добавляет отступы (padding).

Многие современные веб-сайты и приложения используют Utility-first подход, часто с помощью фреймворка Tailwind CSS. Например, Tailwind CSS используется в разработке интерфейсов для Laravel (PHP framework), Vue.js и React.js проектов. Многие стартапы и крупные компании выбирают этот подход из-за его скорости разработки и возможности поддерживать консистентность стилей. Вы можете найти примеры использования в документации Tailwind CSS и на сайтах, созданных с его помощью.

  • Utility-first подход предполагает использование готовых классов утилит вместо написания кастомного CSS для каждого компонента.
  • Tailwind CSS - популярный фреймворк, реализующий этот подход.
  • Преимущества: быстрая разработка, консистентность стилей, уменьшение размера CSS-файлов (при правильном использовании).
  • Недостатки: HTML может выглядеть загроможденным, кривая обучения при переходе с традиционного CSS.
  • Подходит для проектов, где важна скорость разработки и поддерживаемость стилей.