Многие из вас уже знают, что новый форк Apache Superset выступает в роли BI-конструктора для Битрикс24 CRM. После того как вы сверстаете компоненты для своего дашборда и поэкспериментируете с цветовыми схемами, сможете увидеть результат на общей панели. Superset предлагает два способа оформления вашего дашборда: выбор встроенных цветовых схем или использование собственного CSS-кода. В этой статье мы подробно рассмотрим второй вариант — создание CSS, а также разберём, какие классы в нём используются.

Сначала давайте определимся с первым вариантом. Где искать и где менять? Ответ: Дашборды 🖋️Переход в режим редактирования ➡️ . . . ➡️Редактировать свойства ➡️Выбор цветовой схемы из встроенных.

CSS для Apache Superset Dashboard

А теперь рассмотрим более гибкий вариант через кодинг CSS. Написать CSS не проблема, но прежде вам надо знать основные классы, которые описывают как общую страницу дашборда, так и компонентов. В открытых источниках я не нашел полного описания, хотя можно было б пройтись по классам Ant Design, плюс есть справка от Битрикса (см. ниже). После недолгих изысканий в этой области привожу вам список действенных классов для манипуляциями настройками дашборда. Применение пользовательского стиля особенно критично, если у вас есть требования к брендированному представлению UI дашбордов. Тогда без CSS не обойтись. Для вставки пользовательского CSS вам необходимо перейти: Дашборды 🖋️Переход в режим редактирования ➡️ . . . ➡️Редактировать CSS.

Привожу типовой листинг классов, включая раскраску нечетных строк табличного компонента.

/* CSS Template for Birtix Apache Superset Dashboard */
.dashboard-component-header{
  flex-direction: column;
  border-radius: 5px;
  box-shadow: 0 2px 2px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  cursor: pointer;
  justify-content: center;
  color:#0062c2;
}
/* Header */
.dashboard-component-header span {
    font-weight: bold;
}
.dashboard-header {
    position: relative;
}
.dashboard-header:after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 5px;
    background: linear-gradient(90deg, #006CE7, #D8ECF5);
}
/* Dashboard */
.dashboard {
    background: #FFF;
}
/* Tabs */
.ant-tabs .ant-tabs-nav {
    background: #D8ECF5;
}
.ant-tabs .dashboard-component-tabs-content {
    background: #D8ECF5;
}
.ant-tabs .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn {
    color: #188cff;
}
.ant-tabs .ant-tabs-tab:hover {
    color: #006CE7;
}
.ant-tabs .ant-tabs-ink-bar {
    background: #006CE7;
}
/* Card */
.dashboard .chart-header {
    font-size: 18px;
    font-weight: bold;
}
.dashboard .dashboard-component-chart-holder {
  border: 1px solid #DEEBEE;
  background: #FFF;
  border-radius: 5px;
  box-shadow: 0 2px 2px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
/* Card dots */
.dashboard .dot {
    background: #006CE7;
}
.dashboard .ant-dropdown-trigger:hover .dot {
    background: #188cff;
}
/* Buttons */
.dashboard .ant-btn.superset-button {
    background: #006CE7;
    color: #fff;
}
.dashboard .ant-btn.superset-button:not([disabled]):hover {
    background: #188cff;
}
/* Filters */
.dashboard .filters-inactive {
    background: #0062c2;
}
.dashboard .filters-inactive:hover {
    background: #188cff;
}
.dashboard .filter-counts {
    background: #0062c2;
}

.dashboard .filter-counts:hover {
    background: #188cff;
}
.dashboard .filter-counts .anticon+span {
    padding-left: 4px;
    font-size: 0.9em;
    font-weight: normal;
}
/* Filters box */
.ant-popover-inner-content {
    padding-left: 8px;
    padding-right: 8px;
}
.ant-collapse-content-box span,
.ant-collapse-content-box div {
    color: #000;
}
.ant-collapse-content-box button i svg {
    color: #000;
    opacity: 0.25;
}
.ant-collapse-content-box button:hover i svg {
    opacity: 1;
}
.filterStatusPopover .ant-popover-inner {
    background: #FFF;
}
.filterStatusPopover .ant-popover-arrow {
    display: none;
}
.filterStatusPopover.ant-popover {
    padding: 0;
}
/* Options box */
.dashboard .ant-dropdown-menu-item,
.ant-dropdown-menu-submenu-title {
    font-weight: bold;
}
/* Table */
.table tbody tr:nth-child(2n-1) {
    background: #EEE;
}

Здесь привожу черновой вариант (не очень красивый), вам же необходимо изменить, дописать свои параметры классов. Не забывайте сохранить свое творение и вы сразу увидите результат.