Files
marketplaces/docs/platform/04-layout-engine.md
sdarbinyan 10251f2fc6
Some checks failed
Architecture Governance / architecture (push) Has been cancelled
docs
2026-07-05 04:23:47 +04:00

2.4 KiB
Raw Blame History

04. Layout Engine

Назначение

Layout Engine отвечает за композицию страницы из секций по данным конфигурации и управляет только структурой и позиционированием, без доменной бизнес-логики.

Поведение системы

  • Engine читает page.sections.
  • Секции сортируются по order.
  • Для каждой секции применяется layout-стратегия.
  • Виджеты размещаются внутри секции согласно layout-параметрам.

Обязательные свойства JSON

  • section.id
  • section.type
  • section.order
  • section.widgets

Опциональные свойства JSON

  • section.layout.strategy
  • section.layout.columns
  • section.layout.gap
  • section.layout.align
  • section.visibility.desktop/tablet/mobile
  • section.featureFlag

Строгие правила

  • Layout определяется только конфигурацией.
  • Виджет не может переопределять секционный grid/columns на уровне страницы.
  • Если section.visible=false, секция не рендерится.
  • Секция должна рендериться в стандартном каркасе: section + page container.

Пример JSON секции

{
  "id": "section-featured-products",
  "type": "product-collection",
  "order": 2,
  "layout": {
    "strategy": "grid",
    "columns": 4,
    "gap": "16px",
    "align": "stretch"
  },
  "visibility": {
    "desktop": true,
    "tablet": true,
    "mobile": true
  },
  "widgets": [
    {
      "id": "widget-featured",
      "type": "product-carousel",
      "version": "1.0.0"
    }
  ]
}

Ответственность Frontend

  • Корректно применять сортировку и layout-параметры.
  • Гарантировать единые отступы и контейнеры секций.
  • Безопасно деградировать при частично некорректном layout.

Ответственность Backend

  • Отдавать корректные layout-атрибуты в bootstrap.
  • Не смешивать контентные данные с layout-инструкциями.
  • Поддерживать непротиворечивость секций внутри страницы.