Tailwind CSS Academy · Урок

Соглашения команды и руководство по стилю

Определите руководство команды по порядку классов, именованию компонентов, случаям применения @apply и единообразной работе с единичными произвольными значениями.

Урок 4 из 413 шагов

«Соглашения команды и руководство по стилю» — бесплатный урок Tailwind CSS Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Tailwind CSS Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Tailwind CSS Academy содержит 4 уроков всего.

Зачем командам руководство по стилю Tailwind

Без согласованных соглашений проекты Tailwind постепенно становятся непоследовательными. Один разработчик везде пишет p-4, другой использует px-4 py-4. Один активно применяет @apply, другой полностью его избегает. Командное руководство по стилю фиксирует принятые решения, чтобы все писали Tailwind одинаково, а проверка кода проходила быстрее и кодовую базу было проще поддерживать.

Определение соглашений о порядке классов

Даже если плагин Prettier автоматически соблюдает порядок, в руководстве по стилю следует объяснить, почему используется канонический порядок и как он выглядит, чтобы разработчики понимали его, а не просто слепо ему следовали. Укажите порядок групп: компоновка, размеры, отступы, типографика, визуальные свойства и интерактивность. Тогда участники команды смогут предсказать, где должен находиться класс.

<!-- Canonical order groups -->
<div class="
  flex items-center gap-4    /* Layout */
  w-full max-w-md            /* Sizing */
  p-6 mx-auto                /* Spacing */
  text-sm font-medium        /* Typography */
  bg-white rounded-lg shadow /* Visual */
  hover:shadow-md transition  /* Interactive */
">

Когда использовать @apply

Частая причина разногласий — вопрос о том, когда выносить утилиты с помощью @apply. Определите чёткое правило: например, используйте @apply только если шаблон повторяется более трёх раз в разных компонентах И не может быть реализован с помощью общего компонента JSX или шаблона. Это предотвращает преждевременную абстракцию и помогает выявлять действительно повторяющийся код.

/* ALLOWED: repeated button pattern with no JSX component possible */
.btn-primary {
  @apply rounded-lg bg-blue-600 px-4 py-2 text-sm font-semibold text-white hover:bg-blue-700;
}

/* DISCOURAGED: abstracting a one-off layout that appears only once */
.hero-section {
  @apply flex min-h-screen flex-col items-center justify-center bg-gray-50;
}

Соглашения об использовании произвольных значений

Синтаксис Tailwind со скобками, например w-[347px], очень мощный, но может привести к распространению трудно поддерживаемых магических чисел. В руководстве по стилю следует требовать, чтобы произвольные значения были обоснованы в комментарии, а значения, встречающиеся более одного раза, вместо этого добавлялись в блок extend темы как именованные токены.

<!-- DISCOURAGED: unexplained magic number -->
<div class="h-[347px]">

<!-- BETTER: explain the constraint with a comment -->
<!-- Height matches the sidebar for visual alignment -->
<div class="h-[347px]">

<!-- BEST: promote to a named token in the config -->
<!-- tailwind.config.js: extend.height: { sidebar: '347px' } -->
<div class="h-sidebar">

Управление списком разрешённых классов

Каждая запись в safelist увеличивает стоимость каждой сборки. В руководстве по стилю следует требовать, чтобы для каждого класса в списке разрешённых был комментарий с объяснением, почему его нельзя обнаружить статически. Создайте график проверки списка разрешённых классов, например ежеквартальный, чтобы удалять записи для удалённых или переработанных функций.

// tailwind.config.js
module.exports = {
  safelist: [
    // REASON: color comes from CMS content, cannot be statically detected
    // REVIEW DATE: 2026-Q3
    { pattern: /bg-(red|green|blue|yellow)-(100|500)/ },

    // REASON: toast severity classes set by JS at runtime
    'border-red-500',
    'border-green-500',
  ],
};

Соглашения об именовании компонентов

Если Ваш проект использует @apply для создания классов компонентов, установите соглашение об именовании. Имена в стиле BEM, например .btn-primary и .card-body, являются распространённым вариантом. Зафиксируйте используемый командой шаблон именования и убедитесь, что пользовательские классы компонентов никогда не конфликтуют с собственными утилитами Tailwind.

/* Naming convention: {component}-{variant} */
.btn { @apply rounded-lg px-4 py-2 font-semibold; }
.btn-primary { @apply btn bg-blue-600 text-white hover:bg-blue-700; }
.btn-outline { @apply btn border border-blue-600 text-blue-600 hover:bg-blue-50; }

.card { @apply rounded-xl bg-white shadow; }
.card-header { @apply border-b border-gray-100 p-4 font-semibold; }
.card-body { @apply p-4; }

Соглашения об адаптивных префиксах

Документируйте подход команды к адаптивному дизайну. Распространённые соглашения включают постоянный подход mobile-first (базовые стили предназначены для мобильных устройств, а префиксы добавляют поведение для больших экранов), использование только части контрольных точек (например, только md и lg) и запрет на применение префикса без определения базового случая, чтобы стили корректно наследовались.

<!-- GOOD: mobile-first base, then larger breakpoints -->
<div class="flex-col gap-4 md:flex-row md:gap-6 lg:gap-8">

<!-- CONFUSING: responsive prefix without a base style -->
<div class="md:flex-row">
<!-- What displays on mobile? The browser's UA default — unpredictable -->

Соглашения о тёмном режиме

Выберите и задокументируйте одну стратегию тёмного режима для всего проекта — либо стратегию классов, либо медиастратегию, — и никогда не смешивайте их. Укажите, каким элементам всегда нужен вариант для тёмного режима (фонам, тексту, границам), а какие могут наследовать стили. Добавьте контрольный список для проверки новых компонентов на полноту поддержки тёмного режима перед слиянием.

/* Documented decision: we use class strategy */
/* tailwind.config.js: darkMode: 'class' */

/* Component dark mode checklist:
   [ ] bg-* has a dark:bg-* variant
   [ ] text-* has a dark:text-* variant
   [ ] border-* has a dark:border-* variant
   [ ] ring-* has a dark:ring-* variant if used as focus indicator
*/

<div class="bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100">

Контрольный список проверки запроса на слияние

Включите соглашения Tailwind в процесс проверки PR. Короткий список в шаблоне PR напомнит автору и проверяющему проверить ключевые правила. В него можно включить следующие пункты: классы отсортированы, динамическое создание классов без списка разрешённых не используется, произвольные значения снабжены комментарием, варианты тёмного режима полны, противоречащие утилиты отсутствуют.

## Tailwind Checklist
- [ ] Classes sorted (Prettier ran)
- [ ] No typos (ESLint passed)
- [ ] Arbitrary values explained with comments
- [ ] Dark mode variants added for new surfaces
- [ ] No dynamic class concatenation without safelist
- [ ] Responsive base styles defined before breakpoint prefixes

Документирование руководства по стилю

Напишите руководство по стилю в файле STYLE_GUIDE.md и добавьте его в репозиторий. Храните его рядом с кодом, а не в отдельной вики, которая может устареть. Для каждого соглашения укажите краткое обоснование, чтобы новые участники команды понимали зачем оно нужно и могли легче его принять и соблюдать. Проверяйте руководство ежеквартально и обновляйте его по мере развития проекта.

# Tailwind CSS Style Guide

## 1. Class Ordering
Use Prettier plugin — no manual sorting required.

## 2. @apply Usage
Only for patterns repeated 3+ times with no component solution.

## 3. Arbitrary Values
Add a comment. If used 2+ times, promote to theme.extend.

## 4. Dark Mode
Class strategy. Every new background and text color needs dark variant.

Адаптация новых разработчиков

Руководство по стилю эффективно только в том случае, если новые разработчики его читают. Добавьте ссылку на руководство по стилю Tailwind в README проекта и в список шагов адаптации новых участников команды. Можно также добавить небольшой тест или упражнение, в котором новые разработчики применят соглашения к учебному компоненту до начала работы с рабочим кодом.

# README.md

## Getting Started
1. `npm install`
2. Read [STYLE_GUIDE.md](./STYLE_GUIDE.md) before writing any Tailwind classes
3. Enable the recommended VS Code extensions from `.vscode/extensions.json`
4. Run `npm run lint && npm run format:check` before every commit

Быстрая проверка

Проверьте, насколько хорошо Вы усвоили концепции Tailwind CSS Mastery из этого урока.

Итоги урока

В этом уроке Вы научились: определять соглашения об использовании @apply и произвольных значений, чтобы предотвращать неправильное применение, включать соглашения в контрольные списки PR для единообразной проверки и документировать руководство по стилю в репозитории, чтобы оно оставалось актуальным. Далее мы создадим полноценный первый экран целевой страницы и навигацию.

Можно начать бесплатно

Изучай HTML с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
30
Уроки
120

Часто задаваемые вопросы

Урок «Соглашения команды и руководство по стилю» бесплатный?

Да — полный текст урока «Соглашения команды и руководство по стилю» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Tailwind CSS Academy, подпишись на CoddyKit PRO. Курс Tailwind CSS Academy содержит 4 уроков всего.

Чему я научусь в уроке «Соглашения команды и руководство по стилю»?

Определите руководство команды по порядку классов, именованию компонентов, случаям применения @apply и единообразной работе с единичными произвольными значениями. Ты практикуешь Tailwind CSS Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Tailwind CSS Academy?

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

Сколько времени занимает урок «Соглашения команды и руководство по стилю»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Tailwind CSS Academy?

Да. Каждый урок Tailwind CSS Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Проверка результата работы CSS
  2. Сортировка классов и плагин Prettier
  3. Проверка Tailwind с помощью ESLint
  4. Соглашения команды и руководство по стилю
← Назад к Tailwind CSS Academy