Темы навигатора

Материал из 3v-wiki
< Платформа 3V‎ | Навигатор
Версия от 10:31, 12 ноября 2020; K.kuznetsov (обсуждение | вклад) (Новая страница: «{{DISPLAYTITLE:Темы навигатора}} == Тема == Тема это объект представляющий из себя следующие свой...»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску


Тема

Тема это объект представляющий из себя следующие свойства:

Свойство Описание
name Идентификатор/имя темы (по которому в дальнейшем тему можно применить)
title Наименование темы для комбобокса выбора темы
properties Справочник/мапа css-переменных, содержание темы
parent Ссылка на родительскую тему, таким образом текущая тема может доопределять/переопределять css-переменные родительской темы
parentName Тоже что parent, но возможность задать родительскую тему через ее имя

Темы по умолчанию

В навигаторе описаны 3 темы по умолчанию:

  • Стандартная (default)
  • Классическая (gray)
  • Тёмная (black)

Добавление кастомной темы

Есть две возможности добавления кастомных тем:

  • В прикладном коде (работает для случая прикладного приложения использующего компоненты навигатора, но не для самого навигатора)
  • В конфиге веб-приложения (работает и для навигатора и для прикладного приложения)

Добавление кастомной темы в прикладном коде

import { Theme, themeGray, ThemeService } from '@bsc/common-ui';

  constructor(private themeService: ThemeService) {}

  initTheme() {
    const customTheme: Theme = {
      name: 'testCodeTheme',
      parent: themeGray,
      properties: {
        '--img-cell-pattern': 'none'
      },
    };
    this.themeService.addAvailableTheme(customTheme);
    this.themeService.setActiveTheme(customTheme);
  }

Добавление кастомной темы в конфиге веб-приложения

В конфиг веб-приложения добавлен блок theme. Здесь в свойстве "additionalThemes" можно задать набор тем. А также задать тему по умолчанию "defaultThemeName".

  "theme": {
    "defaultThemeName": "testConfigTheme",
    "additionalThemes": [
      {
        "name": "testConfigTheme",
        "parentName": "gray",
        "properties": {
          "--img-cell-pattern": "none"
        }
      }
    ]
  }

Описание css-переменных темы

Поскольку тема реализована через css-переменные, то ссылаться на значения других переменных можно через var(--имя_переменной), имена css-переменных всегда начинаются с --

Свойство Значение(из темы default) Описание
--font-size "14px"
--font-size-small "12px"
--regular "var(--font-size) 'Roboto', sans-serif"
--black "#000"
--white "#fff"
--background-color-rgb [255, 255, 255]
--background-color "rgb(var(--background-color-rgb))"
--main-color-rgb [41, 53, 65]
--main-color "rgb(var(--main-color-rgb))"
--sub-color "#697c8e"
--readonly-color "#8798a9"
--error-color "#f37575"
--warning-color "#f08513"
--padding "8px"
--border-radius "4px"
--transition "0.3s"
--transparent-color-rgb "var(--main-color-rgb)"
--transparent-color "rgb(var(--transparent-color-rgb))"
--accent-color-rgb [23, 135, 238]
--accent-color "rgb(var(--accent-color-rgb))"
--label-color "#8798a9"
--hover-bg "rgba(var(--accent-color-rgb), 0.06)"
--active-bg "rgba(var(--accent-color-rgb), 0.1)"
--border-color "#e4ecf3"
--border-disabled-color "#80b3ee"
--treeItem-current-color "var(--hover-bg)"
--treeItem-checked-color "var(--treeItem-current-color)"
--treeItem-hover-color "var(--hover-bg)"
--sidebar-bg "var(--background-color)"
--sidebar-border "var(--border-color)"
--sidebar-separator-bg "var(--sidebar-border)"
--sidebar-input-bg "var(--background-color)"
--sidebar-input-border "var(--border-color)"
--sidebar-input-color-rgb "var(--main-color-rgb)"
--sidebar-input-color "rgb(var(--sidebar-input-color-rgb))"
--scrollbar-color-rgb "var(--main-color-rgb)"
--scrollbar-color "rgb(var(--scrollbar-color-rgb))"
--scrollbar-size "14px"
--scrollbar-padding "4px"
--icon-color-rgb "var(--main-color)"
--icon-color "rgb(var(--icon-color-rgb))"
--input-bg "var(--background-color)"
--input-color "var(--main-color)"
--input-border "var(--border-color)"
--input-padding "var(--padding)"
--object-bg "var(--background-color)"
--img-home-bg "url(~@bsc/trv-theme/images/white-theme/layout/logo-background.svg) bottom right no-repeat / 500px 415px"
--img-home-bg-filter "grayscale(1)"
--img-home-logo "url(~@bsc/trv-theme/images/new-design/logo-big.png) center center no-repeat"
--img-home-logo-w "414px"
--img-home-logo-h "100px"
--img-bin "url(~@bsc/trv-theme/images/white-theme/icons/ui/bin-big.svg)"
--img-area-empty "url(~@bsc/trv-theme/images/constructor/empty.svg)"
--img-refresh-area "url(~@bsc/trv-theme/images/white-theme/icons/ui/refresh.svg)" обновить отчет (при изменении параметров)
--img-no-active-area "url(~@bsc/trv-theme/images/constructor/noActiveArea.svg)" пустой(еще не настроенный) отчет
--img-no-active-area-indicators "url(~@bsc/trv-theme/images/constructor/Indicators.svg)" пустой(еще не настроенный) показатель
--img-loader-gif "url(~@bsc/trv-theme/images/loader/trivium.gif)" индикатор загрузки
--img-cell-loader "url(~@bsc/trv-theme/images/loader/loader.gif)" картинка, которая отображается в ячейках, данные которых еще грузятся
--img-cell-pattern "url(~@bsc/trv-theme/images/white-theme/icons/cell-pattern.png)" картинка, которой заполняется фон заблокированных ячеек
--img-logo-mini "url(~@bsc/trv-theme/images/new-design/logo.png)"
--img-home "url(~@bsc/trv-theme/images/white-theme/layout/home.svg)"
--img-toggle-expanded "url(~@bsc/trv-theme/images/white-theme/icons/ui/arrow-down.svg)"
--img-toggle-collapsed "url(~@bsc/trv-theme/images/white-theme/icons/ui/arrow-right.svg)"
--img-arrows-updown "url(~@bsc/trv-theme/images/white-theme/icons/ui/arrows-updown.svg)"
--img-group-1 "url(~@bsc/trv-theme/images/constructor/group1.svg)"
--img-group-2 "url(~@bsc/trv-theme/images/constructor/group2.svg)"
--img-group-3 "url(~@bsc/trv-theme/images/constructor/group3.svg)"
--img-person-svg "url(~@bsc/trv-theme/images/white-theme/icons/person-white.svg)"
--img-sort "url(~@bsc/trv-theme/images/white-theme/icons/ui/sort.svg)"
--img-sort-down "url(~@bsc/trv-theme/images/white-theme/icons/ui/sortDown.svg)"
--img-sort-up "url(~@bsc/trv-theme/images/white-theme/icons/ui/sortUp.svg)"
--img-checkbox-unchecked "url(~@bsc/trv-theme/images/white-theme/icons/ui/unchecked.svg)"
--img-checkbox-unchecked-hover "url(~@bsc/trv-theme/images/white-theme/icons/ui/unchecked_hover.svg)"
--img-checkbox-checked "url(~@bsc/trv-theme/images/white-theme/icons/ui/checked2.svg)"
--img-checkbox-checked-hover "url(~@bsc/trv-theme/images/white-theme/icons/ui/checked2_hover.svg)"
--img-checkbox-halfchecked "url(~@bsc/trv-theme/images/white-theme/icons/ui/halfchecked.svg)"
--img-checkbox-halfchecked-hover "url(~@bsc/trv-theme/images/white-theme/icons/ui/halfchecked_hover.svg)"
--img-checkbox-falsechecked "url(~@bsc/trv-theme/images/white-theme/icons/ui/falsechecked.svg)"
--img-checkbox-falsechecked-hover "url(~@bsc/trv-theme/images/white-theme/icons/ui/falsechecked_hover.svg)"
--tabs-bg "#eef2f8"
--checkbox-color "#fff"
--checkbox-border "var(--border-color)"
--btn-bg "var(--accent-color)"
--btn-color "#fff"
--btn-default-bg "transparent"
--btn-default-color "var(--main-color)"
--btn-default-bordercolor "var(--border-color)"
--remove-zone-border "#f59e9e"
--remove-zone-bg "#ffe4e4"
--remove-zone-bg-darken "darken(var(--remove-zone-bg), 5%)"
--grid-border-color "#e5ecf3"
--grid-cell-active "var(--accent-color)"
--grid-thead-color "#656565"
--grid-thead-bg "#f2f5f9"
--grid-abcd-color "var(--label-color)"
--grid-deleted "#e84b56"
--grid-wrapper-bg "#444444"
--grid-sys-number-color "var(--label-color)"
--grid-tr-bg "var(--background-color)"
--grid-tr-color "var(--main-color)"
--home-title-color "var(--main-color)"
--home-links-color "var(--sub-color)"
--home-hover-bg "var(--hover-bg)"