Перейти к содержимому

API: Оформление узла

API: Оформление узла

Базовый путь: /api/v1/nodes/{nodeId}/style

Настройки цветовой темы узла с наследованием от родительского узла (по умолчанию inherit_from_parent = true).

GET /nodes/{nodeId}/style

Эффективная тема для отображения интерфейса в контексте узла.

Требует право view на узел.

Ответ:

{
"success": true,
"data": {
"inheritFromParent": true,
"inherited": true,
"sourceNodeId": "uuid",
"tokens": {
"accent": "#6366f1",
"surface": "#ffffff"
}
}
}
  • tokens — только явно заданные переопределения; отсутствующие ключи означают использование значений по умолчанию из ui.min.css.
  • sourceNodeId — узел-владелец эффективной темы (после обхода цепочки наследования).
  • inheritedtrue, если тема взята от предка (не определена локально на запрошенном узле).

Наследование

В node_style_settings.inherit_from_parent (по умолчанию true):

  • true и есть родитель — используется тема родителя (рекурсивно вверх);
  • false — только переопределения, заданные на этом узле;
  • у корневого узла при inherit=true используются собственные переопределения (или дефолты CSS, если переопределений нет).

Допустимые ключи tokens / overrides

КлючCSS-переменная
accent--ui-accent
accentSecondary--ui-accent-secondary
surface--ui-surface
surfaceMuted--ui-surface-muted
border--ui-border
text--ui-text
textSecondary--ui-text-secondary
textMuted--ui-text-muted
success--ui-success
danger--ui-danger
sidebarBg--ui-sidebar-bg

Значения — HEX (#6366f1) или rgb() / rgba().

Управление (право edit на узел)

GET /nodes/{nodeId}/style/manage

Данные для редактора оформления.

{
"success": true,
"data": {
"inheritFromParent": true,
"editable": false,
"sourceNodeId": "uuid",
"overrides": {
"accent": "#6366f1"
}
}
}

При активном наследовании (editable: false) возвращаются переопределения узла-источника (только просмотр).

PUT /nodes/{nodeId}/style/settings

{ "inheritFromParent": false }

При отключении наследования (true → false), если локальные переопределения пусты, копируются effective overrides от родительского узла-владельца.

PUT /nodes/{nodeId}/style/overrides

{
"overrides": {
"accent": "#2563eb",
"surface": "#ffffff"
}
}

Сохраняет локальные переопределения. Доступно только когда наследование отключено (inherit_from_parent = false или узел корневой).

Пустой объект {} сбрасывает все переопределения — используются дефолты CSS.

Связь с глобальным брендингом

Логотип и favicon остаются глобальными (/api/v1/branding, админка «Оформление портала»). Цветовая тема узла применяется на frontend через CSS-переменные при навигации по узлам.

UI

Вкладка Оформление в настройках узла: /portal/settings/appearance (или /{nodePath}/settings/appearance).