Перейти к содержанию

04 · Components · semantic mapping

Зачем этот файл

В master CSS (eco-components.css) ~150 классов. Без semantic mapping разработчик/дизайнер выбирает класс по визуальному сходству — получаются: - Дубли (.tier-l1 vs .tier-pill-l1 — оба есть, оба работают) - Inconsistency (один экран .btn-action, другой .btn-primary для одной задачи) - Brand drift (на одной странице gold, на другой bronze для одинаковой роли)

Этот файл говорит «когда какой компонент использовать», не «как он выглядит» (для последнего — ui-kit-v4.2.md).


Cards · 6+ семейств

Decision tree

Что показываем?
├─ Курс / протокол catalog → .course-card-big
├─ Service / feature block → .canvas-card / .svc-card
├─ Pricing tier (L0-L3) → .tier-card
├─ Continue learning state → .continue-card
├─ KPI / metric snapshot → .stat-card / .auth-kpi-tile
├─ Modal/dialog body → .eco-modal-card
└─ Profile section → .profile-acc (accordion-style)

Семейство 1 · .course-card-big (canonical · CEO 2026-05-03)

Когда: курс / протокол catalog в Academy (courses.html).

Spec: - Padding 24px (canonical space-6) - Gap 14px между внутренними блоками - Thumb 112×80px (для иконки/изображения) - Шрифты +5% bump для card text vs default body

Modifiers: - -locked — недоступен (chip top-left + thumb opacity gradient) - -flagman — флагманский курс (FLAGMAN ribbon top-right) - -vip — VIP/boardroom (purple/red border) - -purchased — куплен (green border + checkmark)

Эталон: ecosystem-prototype/academy/courses.html.

См. feedback_card_canonical_v1.md.

Семейство 2 · .canvas-card

Когда: section block с border + transparent bg на marketing landings.

Spec: 1px border + transparent bg (показывает body texture).

Эталон: ecosystem-prototype/ai/landing.html.

Семейство 3 · .svc-card / .service-card

Когда: marketing service cards (3-up grid на landing).

Spec: small padding, icon top, title middle, CTA bottom.

Семейство 4 · .tier-card

Когда: pricing tiers L0-L3 (dashboard / billing / pricing page).

Spec: prominent border (gold/purple/red per tier), price strong amber, CTA bottom, features list middle.

Семейство 5 · .continue-card

Когда: "продолжить обучение" CTA на dashboard hero.

Spec: wide horizontal card, course thumb left, progress middle, CTA right.

Семейство 6 · .stat-card / .auth-kpi-tile

Когда: KPI snapshot 4-up на dashboard / V3 success / cert.

Spec: centered text, big number top (Inter 700 23-32px), label bottom (JBM 12px uppercase).

Anti-patterns Cards

❌ Создавать .my-special-card page-isolated — сначала проверь не подходит ли existing ❌ Менять padding canonical 24px без обоснования — ломает rhythm ❌ Locked state через opacity: 0.55 — это anti-pattern v3, использовать chip + gradient overlay ❌ Heavy white bg + heavy border внутри .profile-acc — создаёт «решётку» (баг до v4.4.17)


Buttons · 7 semantic classes

Decision tree

Кнопка для чего?
├─ Brand primary CTA (купить курс) → .btn-action
├─ Bordered primary (купить L1/L2) → .btn-ai-primary
├─ Continue / в процессе → .btn-ai-success (green)
├─ VIP / boardroom request → .btn-ai-vip (purple)
├─ Investor portal CTA → .btn-ai-investor (steel-blue)
├─ Auth flow primary → .btn-auth (gold filled)
└─ Cert/admin toolbar → .toolbar-btn (bordered transparent)

Semantic mapping

Класс Когда Idle Hover (light)
.btn-action Brand primary CTA (главное действие на экране) gold dark / bronze light bronze fill + WHITE text
.btn-ai-primary Bordered primary (купить L1/L2 на courses) amber border + bronze text light bronze fill + WHITE text + glow
.btn-ai-success Continue / в процессе курса green border + green text green fill + WHITE text
.btn-ai-vip VIP / GOD MODE / boardroom request purple border + purple text purple fill + WHITE text
.btn-ai-investor Investor portal access CTA steel-blue border + text steel fill + WHITE text
.btn-auth Auth flow primary (Войти / Continue / Submit) gold filled gold darker fill
.toolbar-btn Cert/admin toolbar (Печать/PDF/Поделиться) bordered transparent gold border + gold text

.btn-group wrapper (canonical symmetry v4.4.12)

Когда: 2+ кнопки в группе (form-actions / dialog-actions / hero-CTAs).

Spec:

.btn-group { display: flex; gap: 8px; }
.btn-group > .btn-ai,
.btn-group > .btn-action,
.btn-group > .btn-auth { flex: 1; }

Зачем: правило симметрии — все кнопки в группе равной ширины (см. 01-mental-models.md § 3 уровень 2).

Hover canonical (light theme)

ВСЕ .btn-ai-* имеют: - bg = brand-color (solid) - color = WHITE (#FFFFFF inverse) - box-shadow = 0 4px 18px brand-color (glow) - !important overrides в master CSS line 357-364

Anti-pattern: hover только color без bg — bg остаётся idle (white), text становится white = invisible. См. 03-light-theme.md anti-pattern 10.


Header · .eco-header immutable canonical v3.2

ЕДИНЫЙ header на всех 36 экранах. CEO утвердил как brand-immutable.

Spec

Свойство Значение
Height 77px
Cube 44px + drop-shadow 0 0 11px rgba(235,197,84,0.35) gold
Wordmark 17.5px Space Mono Bold
Subline 14px JetBrains Mono Bold
Background dark rgba(18,18,22,0.88) immutable в обеих темах
Text WHITE immutable в обеих темах (master override на light)
Backdrop-filter blur(8px) (frosted glass)
Border-bottom 1px solid var(--border-faint)

Internal anatomy (left to right)

  1. .eco-cube — gold cube logo (44px)
  2. .eco-wordmarkGOLDJAXE (gold) + [ ACADEMY ] (white, square brackets)
  3. .eco-sublineBCE · ПРОТОКОЛЫ (контекстный subtitle)
  4. .eco-nav — nav links (5-7 items, JBM 12.5px uppercase)
  5. .eco-search (опционально) — Search ⌘K
  6. .eco-status-chip — green active pill (L0 · АКТИВЕН)
  7. .eco-lang-switcher — RU/EN toggle (2 buttons)
  8. .eco-theme-btn — ☀/🌙 toggle (icon button)
  9. .eco-profile-btn — avatar circle (1 letter + bordered)

Запрещено

  • Менять height / cube size / typography sizes без re-апрува CEO
  • Адаптировать на light theme (всегда dark)
  • Заменять Space Mono на другой шрифт в wordmark
  • Убирать brand cube или wordmark
  • Менять порядок элементов

См. feedback_header_canonical_v3.md + feedback_dont_change_approved_components.md.


2 сценария (context-dependent)

Где: .ai/.com/.org главные, syndicate marketing, landing pages.

Spec: - Background #0E0D0B (Stripe-pattern dark) + !important в master - Text WHITE (rgba(255,255,255,0.65)) - Triad tiles #181614 (dark on dark) с gold border на current - Gold accents (cube/wordmark gold) - Pulsing dot 7×7 + amber top-line glow на triad-current

Утверждено: CEO 2026-05-03 (feedback_light_theme_v2.md).

Эталон: ecosystem-prototype/ai/landing.html footer.

Где: academy / gate-admin / syndicate-app (after login).

Spec: - Background cream var(--bg-secondary) (#FAFAF7) + !important в page-isolated style - Text dark (var(--text-primary)) - Triad tiles rgba(10,10,10,0.02) faint wash on cream - Bronze accents (#998018 для wordmark gold + brackets) - Amber tint на triad-current rgba(235,197,84,0.06) + bronze dot

Утверждено: CEO 2026-05-06 (v4.4.17 fix Phase 2). Memory обновлено: feedback_light_theme_v2.md v4.5.0.

Эталон: ecosystem-prototype/academy/courses.html footer (page-isolated overrides).

Decision tree

Это marketing/landing страница?     → Сценарий 1 (Stripe-dark)
Это UI-app (после login)?           → Сценарий 2 (cream)
Сомневаешься?                        → Спросить CEO с контекстом

Triad tiles markup (canonical)

<div class="triad-grid">
  <a href="https://goldjaxe.com" class="triad-tile tile-purple">
    <div class="triad-caption">goldjaxe.com</div>
    <div class="triad-wordmark">[ VISION ]</div>
  </a>
  <a href="../ai/landing.html" class="triad-tile tile-gold triad-current">
    <span class="triad-current-dot"></span>
    <div class="triad-caption">goldjaxe.ai</div>
    <div class="triad-wordmark">[ INNOVATIONS ]</div>
  </a>
  <a href="https://goldjaxe.org" class="triad-tile tile-org">
    <div class="triad-caption">goldjaxe.org</div>
    <div class="triad-wordmark">[ VAULT ]</div>
  </a>
</div>

triad-current помечает текущий продукт (один из 3) — даёт user awareness "ты здесь в экосистеме холдинга".

См. feedback_triad_footer_current_marker.md.


Modals · .eco-modal-card (Modal F canonical v4.2.8)

Spec (default variant)

  • Width 620px (variants: 460 / 580 / 720)
  • Body center align (form override → left для полей)
  • Btn min-w 220px + padding 32px + gap 16px
  • Form override: flex: 1 + gap 14 = match form-row 263px

Anatomy

  1. .eco-modal-overlay — full-screen backdrop с blur
  2. .eco-modal-card — content container (620px default)
  3. .eco-modal-header — title (h2 24px) + close btn (top-right)
  4. .eco-modal-body — main content (center align default)
  5. .eco-modal-actions.btn-group с CTAs (равной ширины)

При правке модалов

ОБЯЗАТЕЛЬНО first-read: feedback_modal_f_canonical.md — иначе риск воспроизвести фейл v4.2.6 (CEO «провал»).

Variants

  • 460px — confirmation / simple alert
  • 580px — refund-request / single form
  • 620px — default (most cases)
  • 720px — complex form / multi-step

См. 05-patterns.md для конкретных pattern usage.


Forms · .eco-input + theme controls

Inputs

.eco-input canonical: - Height 36px - Border var(--border-default) - Focus state WHITE (rgba(255,255,255,0.55) border + caret 0.85) — НЕ gold, НЕ box-shadow, НЕ outline, НЕ pure white - Padding 0 12px - Font Inter 14px

Утверждено CEO 2026-05-03 после теста (feedback_input_focus_v37.md).

Theme controls (НЕ путать)

  • .eco-theme-btn — header toggle ☀/🌙 (icon button, 38×36, immutable)
  • .eco-theme-pill — settings page form context (pill-style toggle, ✓ выбран)

Anti-pattern: использовать одно вместо другого — header pill / settings icon-btn = inconsistency.

Lang switcher

.eco-lang-switcher — 2 buttons RU/EN, height 36px, активный gold filled, неактивный transparent.

Switch toggle

.eco-switch — checkbox-style toggle (для settings booleans). НЕ дублировать как .switch page-isolated.

Form rows

  • .form-row — label + input vertical pair
  • .form-row-h — label + input horizontal (для compact forms)
  • Gap 14px between rows (canonical)

Status indicators

Decision tree

Это что показывает?
├─ Active / в процессе → .eco-status-chip (green pulsing)
├─ Tier badge (L0-L4) → .tier-pill-l0/-l1/-l2/-l3/-l4
├─ Course state (locked/purchased) → .course-card-locked / -purchased class
├─ Order state (pending/success/failed) → .auth-success-bar variants
└─ Inline label → .eco-tag / .badge-* (мелкий tag)

.eco-status-chip (active green pulsing)

Spec: - Height 36px - Padding 0 12px - Border 1px solid rgba(34,197,94,0.3) green - Color #22C55E text - ::before circle 7×7 green с box-shadow glow + pulse animation

Где: header right side (показывает «активная сессия» / tier)

.tier-pill-l0/-l1/-l2/-l3/-l4 (tier classification)

Цвета: - L0 #EBC554 amber (free) - L1 #22C55E green (operator) - L2 #9933E6 purple (architect) - L3 #8B0000 red wine (boardroom) - L4 #4573A1 steel-blue (investor) - L5 #EF4444 red (team)

Anti-pattern: дублировать как .tier-l1 (без -pill) — это duplicate в master, использовать canonical .tier-pill-l1.

V3 success pattern (status screens)

3 элемента ритм: - .auth-success-bar (70px) — success header - .auth-kpi-row (100px, 3-4 KPI tiles) — что произошло - .auth-timeline-h (80px) — timeline/next steps

= 234px content в 823px viewport (compact-fold rule).

См. feedback_status_screens_v36.md + feedback_compact_fold_v3_v4_canonical.md.

Status colors = outcome (semantic)

  • Green = success / active / в процессе
  • Red = error / blocked / critical
  • Amber = warning / pending / recoverable
  • Steel-blue = info / investor / neutral
  • Gold = brand action (CTA, не status)

НЕ смешивать (gold = CTA, не «успех»). НЕ инверсировать (red = error, не «горячее предложение»).


Timeline · .eco-timeline-* canonical v4.4.12

.eco-timeline-row (vertical)

Spec: - 2-col grid: [meta-time] [text-content] - Text x-coordinate = meta-заголовка x-coordinate (symmetry rule v4.4.12 уровень 4) - Padding 14px vertical - Border-top dotted между rows

Где: profile активность / lesson timeline / cert history.

Anti-pattern в profile: heavy white-bg + heavy border создаёт «решётку» (баг до v4.4.17). Use:

.profile-acc .eco-timeline-row { 
  background: transparent; 
  border-top: 1px solid var(--border-faint); 
}

.eco-timeline-h (horizontal compact)

Spec: - Horizontal stack из 3-4 шагов - Каждый шаг: иконка + label - Used в V3 success pattern (compact-fold)

Где: auth-magic-link / checkout-success / lesson-completed.

См. feedback_visual_symmetry_rule.md + Spec раздел 32 + master CSS .eco-timeline-*.


CEO утвердил Sidebar Б (stripe-style) как стандарт админ-панели Academy.

Spec

  • Width 64px collapsed → 240px expanded
  • Background dark immutable
  • Items: SVG-иконки 16px (НЕ эмодзи) + text label
  • Active state — gold accent line на левой стороне + gold text
  • Hover state — subtle bg lift

Where

  • Settings (academy/settings.html)
  • Billing (academy/billing.html)
  • Future admin pages

Master CSS

  • .eco-sidebar-link — single item
  • .eco-sidebar-group — group wrapper с heading

См. feedback_admin_sidebar_canonical.md.


Search component (опционально)

.eco-search в header: - Width auto (responsive) - Placeholder Search + ⌘K hint key - Border 1px solid var(--border-default) - Icon search left + clear button right - Focus expands width slightly

Где: только на nav-heavy screens (academy dashboard / courses / library). НЕ обязательно везде.


Когда читать

  • Перед добавлением нового компонента — проверить не дублируешь ли existing
  • При создании экрана — выбрать components из этого каталога, не из воздуха
  • При аудите консистентности — проверить какие классы используются и есть ли дубли
  • При жалобе на «выглядит инородно» — first source of truth (вероятно используется page-specific вместо canonical)
  • При onboarding — после 01-mental-models.md + 02-tokens-canonical.md + 03-light-theme.md