IT + Творчество
Открыта27 июня — 10 июля · 14 дней
Все правки собраны в одном месте: кнопки, spacing, motion, модалки, breakpoints
Только через CSS-переменные. Никаких #ec7c00 в компонентах.
Текущая проблема: полная ширина + тёмный текст на оранжевом → давит. Новое правило: всегда белый текст на цветном фоне.
btn-xl · 52px Hero CTA, Sticky CTA btn-pill-xl → border-radius:100px btn-l · 48px Form submit, ShiftCard Выбрать btn-pill-l или rounded-xl btn-m · 44px Secondary CTA, Contacts rounded-lg btn-s · 36px Card utilities (Даты, Детали) rounded-md Сейчас в коде: mt-2, mt-3, mt-4, gap-1.5, gap-2.5 — хаос. Шкала: кратно 4px.
4px var(--s1) gap между иконкой и текстом внутри badge 8px var(--s2) gap между кнопками, отступ badge от края 12px var(--s3) padding карточки маленькой, gap в форме 16px var(--s4) padding px карточки, gap между элементами 24px var(--s5) padding py секции внутри карточки, mx мобиль 32px var(--s6) gap между карточками, padding крупных блоков 48px var(--s7) padding py секции страницы 64px var(--s8) gap между крупными секциями Три скорости. Только transform/opacity — не width/height.
fast 150ms base 220ms slow 350ms spring 300ms Конфликты: StickyCta перекрывал Header на некоторых устройствах. Фиксированная шкала.
z-toast 100 Toast-уведомления, глобальные ошибки z-modal 50 Модалки, drawer, backdrop z-header 30 Header / Navbar — всегда поверх контента z-sticky 20 StickyCta, PhoneDropdown, BookingBar z-card 10 Hover карточек (translateY + shadow) z-base 0 Обычные элементы 27 июня — 10 июля · 14 дней
27 июня — 10 июля · 14 дней
11 — 24 июля · 14 дней
z-index: 50 z-modal — поверх header (z=30) backdrop: blur(4px) rgba(13,26,43,0.7) — не чёрный, не прозрачный border-radius: 24px 24px 0 0 Bottom sheet на мобиле drag-handle: 40×4px bg-gray-200, center, margin-bottom 20px close: ESC + backdrop click Keyboard accessible focus trap Tab внутри модалки, не выходит наружу scroll lock body overflow:hidden пока модалка открыта animation: slideUp translateY(100%) → 0, duration:350ms, ease-out Секция на bg-surface-alt (#f0f4ff). FAQ-карточки — белые на голубом. Не glass.
| Компонент | Mobile <768px | Tablet 768–1024px | Desktop >1024px |
|---|---|---|---|
| Hero | Mobile.astro — фото+текст+pill кнопки | Скрыт (md:hidden) | Desktop.astro — две колонки |
| Shifts | Горизонтальный скролл, snap | Горизонтальный скролл | Сетка 3 колонки |
| ShiftCard | min-w-[calc(100vw-48px)] | min-w-[320px] | auto, grid-item |
| LeadForm | variant=mobile, полная ширина | полная ширина | variant=desktop, max-w-md |
| StickyCta | fixed bottom-0, z-20 | fixed bottom-0 | hidden (md:hidden) |
| FAQ | Карточки на всю ширину | 2 колонки | 2 колонки max-w-4xl |
| Reviews | 1 карточка (горизонтальный скролл) | 2 карточки | 3 карточки |
| Header | Логотип + burger меню | Логотип + burger | Полная навигация |
| Footer | 1 колонка, стек | 2 колонки | 4 колонки |
Основная проблема: backdrop-filter меняет контраст в зависимости от подложки. Решение — минимальный контраст зафиксировать через цвет текста.
bg-orange-* любые Tailwind-оранжевые · только bg-primary Тёмный текст color:#1e2430 на оранжевой кнопке → всегда white Прямоугольник full-width + large button = давит · pill или auto-width Glass на белом невидимо и бессмысленно Comfortaa не использовать шрифт в production компонентах Emoji в UI 🚀 🎯 ⚡ 🔥 вместо bi-* — запрещено Arbitrary values rounded-[14px] mt-[18px] → только шкала width/height animate только transform/opacity для GPU-ускорения Partytown разбивает Яндекс.Метрику · инцидент 60К₽ Прямой push в dev только через PR из design/glassmorphism-v1