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— узел-владелец эффективной темы (после обхода цепочки наследования).inherited—true, если тема взята от предка (не определена локально на запрошенном узле).
Наследование
В 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).