From 7deaf34daff8408b2be9ed69fd48bbae13d16a38 Mon Sep 17 00:00:00 2001 From: erjemin Date: Mon, 27 Jul 2026 21:49:13 +0300 Subject: [PATCH] =?UTF-8?q?mod:=20front=20(6)=20=D1=81=D0=B1=D0=BE=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20TialWindCSS=20=D0=B8=20=D0=BA=D0=B0=D1=81=D1=82?= =?UTF-8?q?=D0=BE=D0=BC=D1=8B=D0=BD=D0=B5=20base=20=D0=B8=20=D1=81=D0=BB?= =?UTF-8?q?=D0=BE=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lpon_site/templates/_base.html | 50 +++++++++---- lpon_site/templates/css/tailwind-custom.css | 81 +++++++++++++++++++++ public/static/css/lpon.css | 10 +++ public/static/css/tailwind.min.css | 2 +- scripts/build-tailwind.sh | 48 ++++++++++-- 5 files changed, 169 insertions(+), 22 deletions(-) create mode 100644 lpon_site/templates/css/tailwind-custom.css create mode 100644 public/static/css/lpon.css diff --git a/lpon_site/templates/_base.html b/lpon_site/templates/_base.html index 89f88af..4ba7be9 100644 --- a/lpon_site/templates/_base.html +++ b/lpon_site/templates/_base.html @@ -27,22 +27,44 @@ {# Шутка #} - {% comment %} - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - ВАЖНО! В prod будет использоваться tailwind.min.css. Его собирет webpack специально под проект. - Для этого у него в input.css прописаны пути к шаблонам, на которые ему надо посмостеть, и он соберет только - используемые классы и сгенерирует уникальный tailwind.min.css проекта. - {# <-- ДОБАВИТЬ В ПРОДАКШЕНЕ #} + + {% if IS_DEBUG %}{% comment %} + Переключение dev/prod стилей Tailwind CSS происходит АВТОМАТИЧЕСКИ через + переменную IS_DEBUG (см. контексный-процессор frontend/context_processors.py), - В dev используем tailwindcss из CDN. В нем есть все, но он неимоверно грузит браузер.{% endcomment %} - {# <-- УБРАТЬ В ПРОДАКШЕНЕ #} + DEV: tailwindcss из CDN, компилируется прямо в браузере. Удобно для + разработки (не нужна сборка), но грузит браузер и prod не используется. + {% endcomment %}{% comment %} + + Кастомные @theme/@layer директивы проекта (токены цвета, типовой стиль + ссылок) лежат в css/tailwind-custom.css. @tailwindcss/browser сканирует + и компилирует ТОЛЬКО то, что видит в финальном DOM — то есть только + содержимое тегов style с type text/tailwindcss, а не внешние .css, + подключённые через link. Поэтому файл вставляется сюда через include, + а не подключается отдельным link. + + Строка "@import tailwindcss" ниже ОБЯЗАТЕЛЬНА (проверено на практике): + без неё @apply в css/tailwind-custom.css не может найти стандартные + классы Tailwind (border-slate-500 и т.п.), браузерный компилятор + падает с ошибкой уже на этапе разбора — и из-за этого перестаёт + генерироваться ВООБЩЕ ВСЯ Tailwind-разметка на странице (не только + кастомные стили), верстка превращается в неоформленный HTML.{% endcomment %} + {% else %}{% comment %} + PROD: заранее собранный Tailwind CLI файл (см. frontend-assembly/tailwind/input.css + и package.json). CLI сканирует шаблоны проекта и генерирует только реально + используемые классы, включая кастомные @theme/@layer директивы из того же + самого файла css/tailwind-custom.css (подключён в input.css через @import).{% endcomment %} + {% endif %} {% block EXTRAHEAD %}{% endblock EXTRAHEAD %} diff --git a/lpon_site/templates/css/tailwind-custom.css b/lpon_site/templates/css/tailwind-custom.css new file mode 100644 index 0000000..4e2ee6a --- /dev/null +++ b/lpon_site/templates/css/tailwind-custom.css @@ -0,0 +1,81 @@ +/* + tailwind-custom.css — кастомные Tailwind-директивы проекта lpon.ru + (c) 2026, Sergei Erjemin, https://lpon.ru +{% comment %} +ВНИМАНИЕ: этот файл не просто CSS! Это Django-шаблон, который подключается через + include-тег в инлайновый блок