- Set up 11ty with Nunjucks templates (src/ → _site/) - Extract shared header and footer into partials — single source of truth - Convert all 11 pages to .njk with front matter (layout, title, permalink) - Add base/default/ui-kit layout chain - Add custom JS element inspector (Alt+I) with Typography, Tokens and Styles panels - Add CLAUDE.md with architecture overview and dev commands - Add .claude/launch.json with dev server configs - Add docs/elementor-token-handoff.md - Add _site/ to .gitignore Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
21 KiB
Перенос UI-kit токенов и элементов в Elementor
Документ описывает безопасный перенос дизайн-токенов и базовых элементов DP Trade UI-kit в Elementor WordPress. Главная цель: внедрить новую дизайн-систему постепенно, не ломая текущие страницы и глобальные настройки сайта.
1. Базовый принцип переноса
Не заменяйте существующие настройки Elementor сразу. Сначала добавьте новые токены рядом со старыми, соберите тестовую страницу, проверьте визуально, затем постепенно переводите реальные шаблоны и страницы на новые значения.
Рекомендуемый порядок:
- Сделать backup сайта и базы данных.
- Работать на staging-копии или тестовой странице.
- Добавить новые Global Colors.
- Добавить новые Global Fonts.
- Настроить базовые элементы: кнопки, поля, карточки, теги.
- Создать страницу
UI Kit Previewв WordPress. - Проверить desktop, tablet, mobile.
- Только после проверки применять к Header, Footer, каталогу и страницам.
2. Источники токенов в проекте
Основные файлы:
css/tokens.css— базовые дизайн-токены сайта.css/site.css— стили реальных страниц, header, footer, карточек, каталога, форм.css/ui-kit.css— витрина UI-kit, состояния и примеры компонентов.ui-kit.html— живая HTML-витрина дизайн-системы.
В Elementor переносите не весь CSS целиком, а роли и значения: цвета, шрифты, отступы, радиусы, тени и повторяемые компоненты.
3. Карта цветов для Elementor Global Colors
Перейдите в:
Elementor -> Site Settings -> Global Colors
Добавьте новые цвета. Старые цвета пока не удаляйте.
| Elementor name | CSS token | Value | Role |
|---|---|---|---|
| DP Wine 100 | --color-primary-wine-100 |
#4b0f24 |
Основной брендовый цвет, primary buttons, hover menu, акценты |
| DP Wine 80 | --color-primary-wine-80 |
#6d1c36 |
Hover для primary, вторичный винный оттенок |
| DP Black | --color-neutral-black |
#161616 |
Основной текст |
| DP Gray 700 | --color-neutral-gray-700 |
#30343a |
Навигация, плотный вторичный текст |
| DP Gray 600 | --color-neutral-gray-600 |
#66605f |
Описания, muted text, подписи |
| DP Gray 300 | --color-neutral-gray-300 |
#d9dee6 |
Бордеры, разделители |
| DP Background | --color-background-base |
#f4f6f9 |
Основной фон страниц |
| DP Surface | --color-surface |
#ffffff |
Карточки, поля, панели |
| DP Gold | --color-accent-gold |
#b9965b |
Eyebrow, статусы, премиальные акценты |
| DP Blue | --color-accent-blue |
#1f3476 |
Логотип, телефон, информационные акценты |
| DP Error | --color-error |
#a33a2f |
Ошибки форм |
Важно: если в текущем Elementor уже есть цвета Primary, Secondary, Text, Accent, не заменяйте их сразу. Добавьте цвета с префиксом DP, затем перепривязывайте элементы вручную.
4. Карта шрифтов для Elementor Global Fonts
Перейдите в:
Elementor -> Site Settings -> Global Fonts
Подключение шрифтов:
- Headings:
Montserrat - Body:
Inter - Classic heading, если понадобится для редакционных блоков:
Playfair Display
| Elementor style | Font family | Weight | Size desktop | Line height | Transform |
|---|---|---|---|---|---|
| DP H1 | Montserrat |
800 |
48-72px |
1.1 |
Uppercase |
| DP H2 | Montserrat |
800 |
36-40px |
1.1-1.22 |
Uppercase |
| DP H3 | Montserrat |
800 |
24-28px |
1.15-1.25 |
Uppercase |
| DP Body | Inter |
400 |
16px |
1.5 |
None |
| DP Body Large | Inter |
400 |
18px |
28px |
None |
| DP Caption | Inter |
600-700 |
12-13px |
16px |
Optional uppercase |
| DP Button | Inter |
700 |
14-16px |
1.2 |
None |
| DP Nav | Inter |
800 |
12px |
1.2 |
Uppercase |
Рекомендация по responsive:
| Style | Tablet | Mobile |
|---|---|---|
| DP H1 | 40-48px |
34-40px |
| DP H2 | 32-36px |
28-32px |
| DP H3 | 22-24px |
20-22px |
| DP Body | 16px |
16px |
| DP Button | 14-16px |
14px |
Не используйте viewport-based font size в Elementor. Лучше задавать отдельные значения для desktop, tablet и mobile.
5. Spacing, radius, shadows
В Elementor нет полноценной системы design tokens для spacing, поэтому переносите значения как правила для секций, контейнеров и классов.
Spacing scale
| Token | Value | Где использовать |
|---|---|---|
--spacing-4 |
4px |
Мелкие зазоры, иконки |
--spacing-8 |
8px |
Gap внутри кнопок, compact controls |
--spacing-16 |
16px |
Карточки, поля, grid gap |
--spacing-24 |
24px |
Padding карточек, блоки форм |
--spacing-32 |
32px |
Gap между колонками |
--spacing-48 |
48px |
Крупные отступы секций |
--spacing-64 |
64px |
Hero, большие секции |
Layout
| Token | Value | Elementor setting |
|---|---|---|
--container |
1240px |
Site Settings -> Layout -> Content Width |
| Section desktop padding | 72px 24-72px |
Section/container padding |
| Section mobile padding | 48px 20px |
Responsive padding |
| Container side gap | 20px each side |
Container width: min(100% - 40px, 1240px) в CSS |
Radius
| Token | Value | Где использовать |
|---|---|---|
--radius-sm |
8px |
Кнопки, поля, карточки, теги |
--radius-md |
12px |
Крупные панели, preview blocks |
--radius-lg |
24px |
Редкие крупные акцентные блоки |
Shadows
Elementor поддерживает box-shadow в Advanced/Style, но удобнее завести CSS-классы.
| Token | Value | Где использовать |
|---|---|---|
--shadow-soft |
0 12px 32px rgba(22, 22, 22, 0.08) |
Обычные карточки, формы, footer panel |
--shadow-lift |
0 20px 52px rgba(75, 15, 36, 0.14) |
Hover карточек, mega menu, primary hover |
| Header shadow | 0 10px 28px rgba(22, 22, 22, 0.05) |
Sticky header |
| Focus shadow | 0 0 0 4px rgba(75, 15, 36, 0.08) |
Search/input focus |
6. Безопасный CSS-слой для Elementor
Добавляйте CSS не через глобальные теги body, h1, button, input, а через классы с префиксом dp-.
Где добавлять:
- Сначала на тестовой странице:
Page Settings -> Advanced -> Custom CSS. - После проверки:
Elementor -> Site Settings -> Custom CSS. - Если есть child theme, финальную версию можно перенести в
style.css.
Базовый слой:
:root {
--dp-wine-100: #4b0f24;
--dp-wine-80: #6d1c36;
--dp-black: #161616;
--dp-gray-700: #30343a;
--dp-gray-600: #66605f;
--dp-gray-300: #d9dee6;
--dp-bg: #f4f6f9;
--dp-surface: #ffffff;
--dp-gold: #b9965b;
--dp-blue: #1f3476;
--dp-error: #a33a2f;
--dp-radius-sm: 8px;
--dp-shadow-soft: 0 12px 32px rgba(22, 22, 22, 0.08);
--dp-shadow-lift: 0 20px 52px rgba(75, 15, 36, 0.14);
}
.dp-section {
padding-top: 72px;
padding-bottom: 72px;
}
.dp-surface {
background: var(--dp-surface);
border: 1px solid rgba(102, 96, 95, 0.16);
border-radius: var(--dp-radius-sm);
box-shadow: var(--dp-shadow-soft);
}
.dp-eyebrow {
color: var(--dp-gold);
font-family: Inter, Arial, sans-serif;
font-size: 12px;
line-height: 16px;
font-weight: 700;
letter-spacing: 0;
text-transform: uppercase;
}
Mobile override:
@media (max-width: 767px) {
.dp-section {
padding-top: 48px;
padding-bottom: 48px;
}
}
7. Перенос кнопок
В Elementor настройте:
Site Settings -> Buttons
Базовая кнопка:
| Property | Value |
|---|---|
| Min height | 48px |
| Padding | 12px 22px |
| Border radius | 8px |
| Font | Inter, 700 |
| Transition | 0.2s |
Primary:
| State | Text | Background | Border | Shadow |
|---|---|---|---|---|
| Default | #ffffff |
#4b0f24 |
transparent | 0 10px 22px rgba(75, 15, 36, 0.16) |
| Hover | #ffffff |
#6d1c36 |
transparent | 0 20px 52px rgba(75, 15, 36, 0.14) |
Secondary:
| State | Text | Background | Border |
|---|---|---|---|
| Default | #4b0f24 |
rgba(255,255,255,0.55) |
rgba(75,15,36,0.24) |
| Hover | #4b0f24 |
rgba(75,15,36,0.06) |
rgba(75,15,36,0.36) |
CSS-классы:
.dp-btn-primary .elementor-button {
min-height: 48px;
padding: 12px 22px;
border-radius: 8px;
background: var(--dp-wine-100);
color: #ffffff;
font-weight: 700;
box-shadow: 0 10px 22px rgba(75, 15, 36, 0.16);
transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.dp-btn-primary .elementor-button:hover {
background: var(--dp-wine-80);
box-shadow: var(--dp-shadow-lift);
transform: translateY(-1px);
}
.dp-btn-secondary .elementor-button {
min-height: 48px;
padding: 12px 22px;
border: 1px solid rgba(75, 15, 36, 0.24);
border-radius: 8px;
background: rgba(255, 255, 255, 0.55);
color: var(--dp-wine-100);
font-weight: 700;
}
.dp-btn-sm .elementor-button {
min-height: 38px;
padding: 8px 14px;
font-size: 14px;
}
В Elementor у виджета Button добавляйте классы:
dp-btn-primarydp-btn-secondarydp-btn-sm
8. Перенос форм и input fields
Для Elementor Forms:
Site Settings -> Form Fields
| Property | Value |
|---|---|
| Background | #ffffff |
| Text | #161616 |
| Placeholder | #66605f |
| Border | 1px solid rgba(102, 96, 95, 0.24) |
| Border radius | 8px |
| Padding | 12-14px |
| Focus border | #4b0f24 |
| Focus shadow | 0 0 0 3-4px rgba(75, 15, 36, 0.08-0.10) |
| Error color | #a33a2f |
CSS-класс для формы:
.dp-form .elementor-field {
border: 1px solid rgba(102, 96, 95, 0.24);
border-radius: 8px;
background: #ffffff;
color: var(--dp-black);
font-family: Inter, Arial, sans-serif;
font-size: 14px;
}
.dp-form .elementor-field:focus {
border-color: var(--dp-wine-100);
box-shadow: 0 0 0 4px rgba(75, 15, 36, 0.08);
}
.dp-form .elementor-field-label {
color: var(--dp-gray-700);
font-size: 13px;
font-weight: 700;
}
.dp-form .elementor-message-danger {
color: var(--dp-error);
}
Проверить после переноса:
- default state;
- focus state;
- required fields;
- error message;
- textarea;
- disabled field;
- submit button;
- mobile keyboard behavior.
9. Карточки товаров и контентные карточки
Карточки UI-kit используют:
- белую поверхность;
- radius
8px; - border
rgba(102, 96, 95, 0.16); - shadow soft;
- hover lift;
- внутренний padding
16-24px; - muted text
#66605f; - uppercase heading на
Montserrat 800.
CSS-класс:
.dp-card {
min-width: 0;
border: 1px solid rgba(102, 96, 95, 0.16);
border-radius: 8px;
background: #ffffff;
box-shadow: var(--dp-shadow-soft);
overflow: hidden;
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.dp-card:hover {
transform: translateY(-3px);
box-shadow: var(--dp-shadow-lift);
}
.dp-card-title {
color: var(--dp-black);
font-family: Montserrat, Inter, Arial, sans-serif;
font-size: 24px;
line-height: 1.15;
font-weight: 800;
text-transform: uppercase;
}
.dp-card-text {
color: var(--dp-gray-600);
font-size: 14px;
line-height: 1.45;
}
Для Elementor:
- Создайте контейнер карточки.
- В Advanced -> CSS Classes добавьте
dp-card. - Заголовку добавьте
dp-card-title. - Описанию добавьте
dp-card-text. - Кнопке добавьте
dp-btn-primaryилиdp-btn-secondary.
10. Теги, chips, статусы
Используются для стран, категорий, фильтров, статусов.
.dp-tag,
.dp-chip {
display: inline-flex;
align-items: center;
min-height: 30px;
padding: 6px 10px;
border-radius: 8px;
font-size: 12px;
font-weight: 800;
line-height: 1;
text-transform: uppercase;
}
.dp-tag-filled,
.dp-chip-active {
background: var(--dp-wine-100);
color: #ffffff;
}
.dp-tag-outline {
border: 1px solid rgba(75, 15, 36, 0.24);
color: var(--dp-wine-100);
background: transparent;
}
.dp-tag-gold {
background: rgba(185, 150, 91, 0.18);
color: #7c5f26;
}
В Elementor это можно делать через:
- Heading widget с HTML tag
span; - Text Editor;
- Button widget без ссылки;
- Loop item meta fields, если это каталог.
11. Header и навигация
Header в UI-kit использует:
- sticky position;
- background
rgba(248, 250, 252, 0.94); - border-bottom
rgba(102, 96, 95, 0.18); - shadow
0 10px 28px rgba(22, 22, 22, 0.05); - blur
backdrop-filter: blur(18px); - nav font
Inter 800 12px uppercase; - active/hover color
#4b0f24.
Рекомендация:
- Не меняйте текущий Header template сразу.
- Дублируйте шаблон Header в Elementor.
- Назовите копию
Header DP UI Kit Draft. - Примените новые стили на копии.
- Проверьте меню, dropdown, search, phone, cart/favorites icons.
- Только после проверки назначайте новый шаблон на сайт.
CSS-класс для контейнера:
.dp-header {
background: rgba(248, 250, 252, 0.94);
border-bottom: 1px solid rgba(102, 96, 95, 0.18);
box-shadow: 0 10px 28px rgba(22, 22, 22, 0.05);
backdrop-filter: blur(18px);
}
.dp-nav a,
.dp-nav .elementor-item {
color: var(--dp-gray-700);
font-family: Inter, Arial, sans-serif;
font-size: 12px;
font-weight: 800;
letter-spacing: 0;
text-transform: uppercase;
}
.dp-nav a:hover,
.dp-nav .elementor-item:hover,
.dp-nav .elementor-item-active {
color: var(--dp-wine-100);
}
12. Footer
Footer использует карточную панель:
- surface
#ffffff; - radius
8px; - shadow soft;
- структурированную сетку ссылок;
- muted legal text;
- акцентные ссылки на hover.
Безопасный перенос:
- Дублируйте текущий Footer template.
- Добавьте классы
dp-footer,dp-surface,dp-nav. - Проверьте desktop/mobile сетку.
- Не удаляйте старый footer до полной проверки.
13. Каталог и product cards
Для каталога важны следующие элементы:
- toolbar;
- sort select;
- filters;
- grid/list cards;
- compact cards;
- price block;
- tags;
- CTA button;
- hover state.
Порядок переноса:
- Сначала перенесите визуальный стиль карточки товара.
- Потом фильтры и chips.
- Потом toolbar/sort.
- Потом list/compact variants.
- Последним этапом подключайте hover и lift effects.
Минимальный набор CSS-классов:
dp-card
dp-product-card
dp-card-title
dp-card-text
dp-tag
dp-tag-filled
dp-btn-primary
dp-btn-sm
14. Страница UI Kit Preview в WordPress
Создайте отдельную страницу:
UI Kit Preview
Разместите на ней:
- Цветовые swatches.
- H1, H2, H3, body, caption.
- Primary, secondary, small buttons.
- Form fields: default, focus, error.
- Product card.
- Tags/chips.
- Header preview.
- Footer preview.
- Catalog toolbar preview.
- Mobile preview section.
Страница нужна как контрольная витрина. Любое изменение токенов сначала проверяйте на ней.
15. Что нельзя делать при переносе
Не добавляйте глобально такие правила без полной проверки:
* {
margin: 0;
padding: 0;
}
button {
all: unset;
}
a {
color: inherit;
text-decoration: none;
}
h1,
h2,
h3 {
margin: 0;
}
Они могут сломать тему, плагины, WooCommerce, формы, меню и старые страницы.
Также не рекомендуется:
- удалять старые Elementor Global Colors;
- массово заменять цвета по всему сайту;
- менять breakpoints без полного responsive QA;
- вставлять весь
site.cssв Elementor; - переносить demo-стили UI-kit sidebar;
- менять Header/Footer на production без дубликата и предпросмотра.
16. QA checklist перед публикацией
Проверьте:
- Главная страница.
- Каталог.
- Карточка товара.
- Страница контактов.
- Страница статьи/новости.
- Header desktop.
- Header mobile.
- Mega menu/dropdown.
- Footer desktop.
- Footer mobile.
- Все формы.
- Search.
- Cart/favorites/account icons, если есть.
- 404 page.
- WooCommerce cart/checkout/account, если сайт использует WooCommerce.
Для каждого экрана:
- нет горизонтального скролла;
- текст не обрезается;
- кнопки не ломаются;
- hover/focus состояния видны;
- карточки не прыгают по высоте;
- изображения не растягиваются;
- меню открывается и закрывается корректно;
- формы отправляются;
- ошибки форм читаемы;
- контраст текста достаточный.
17. Публикация на production
Финальный порядок:
- Сделать свежий backup production.
- Экспортировать Elementor templates.
- Перенести Global Colors.
- Перенести Global Fonts.
- Добавить проверенный CSS-слой.
- Импортировать или обновить шаблоны.
- Назначить Header/Footer только после проверки preview.
- Elementor -> Tools -> Regenerate CSS & Data.
- Очистить кэш плагина оптимизации.
- Очистить server/CDN cache, если есть.
- Проверить сайт в incognito.
18. План отката
Перед публикацией должны быть готовы:
- backup production;
- экспорт старых Elementor templates;
- список измененных Global Colors/Fonts;
- копия добавленного Custom CSS;
- скриншоты ключевых страниц до переноса.
Если что-то сломалось:
- Отключите новый Custom CSS.
- Верните старый Header/Footer template.
- Regenerate CSS & Data.
- Очистите кэш.
- Проверьте сайт.
- Если проблема осталась, восстановите backup.
19. Минимальный набор для первого этапа
Для первого безопасного внедрения достаточно перенести:
- Global Colors с префиксом
DP. - Global Fonts
DP H1,DP H2,DP H3,DP Body,DP Button. - CSS-переменные
--dp-*. - Классы кнопок
dp-btn-primary,dp-btn-secondary,dp-btn-sm. - Класс карточки
dp-card. - Класс формы
dp-form. - Классы тегов
dp-tag,dp-tag-filled,dp-tag-outline. - Тестовую страницу
UI Kit Preview.
После этого можно спокойно двигаться к Header, Footer, каталогу и product templates.