Настройка встроенных тем
Настройка всех тем
Вы могли заметить, что CSS-переменные темы по умолчанию включают переменные цветовой схемы:
--dhx-h-primary: 200;
--dhx-s-primary: 98%;
--dhx-l-primary: 40%;
--dhx-h-secondary: 0;
--dhx-s-secondary: 0%;
--dhx-l-secondary: 30%;
--dhx-h-danger: 0;
--dhx-s-danger: 100%;
--dhx-l-danger: 60%;
--dhx-h-success: 154;
--dhx-s-success: 89%;
--dhx-l-success: 37%;
--dhx-h-background: 0;
--dhx-s-background: 0%;
--dhx-l-background: 100%;
--dhx-a-background: 0.5;
Значения цвета указываются в формате HSL, где:
- тон — это градус на цветовом круге от 0 до 360. 0 — красный, 120 — зелёный, 240 — синий;
- насыщенность — процентное значение; 0% означает полностью ненасыщенный (серый) цвет, а 100% — полностью насыщенный;
- светлота — процентное значение; 100% — белый, 0% — чёрный, а 50% соответствует значению
"normal".
Благодаря этим CSS-переменным цветовая схема рассчитывается автоматически. Это означает, что при изменении значения переменной цветовой схемы в корне значения для тем "contrast-light", "dark" и "contrast-dark" будут автоматически пересчитаны в реальном времени.
Например, вы можете переопределить основные цвета для всех тем Diagram сразу следующим образом:
<style>
:root {
--dhx-h-primary: 0;
--dhx-l-primary: 30%;
}
</style>
Кроме того, значения переменных, которые рассчитываются на основе основного цвета, будут пересчитаны соответствующим образом. Например, значение цвета для состояния фокуса рассчитывается следующим образом:
--dhx-color-focused: hsl(calc(var(--dhx-h-primary) + 10), var(--dhx-s-primary), var(--dhx-l-primary));
Настройка отдельной темы
Если вы хотите переопределить некоторые значения цвета для отдельной темы Diagram, сделайте это в атрибуте 'data-dhx-theme':
<style>
[data-dhx-theme='light'] {
/* граница */
--dhx-border-color: #ced4da;
/* конец границы */
/* цветовая схема */
--dhx-h-primary: 210;
--dhx-s-primary: 30%;
--dhx-l-primary: 20%;
--dhx-h-secondary: 185;
--dhx-s-secondary: 5%;
--dhx-l-secondary: 50%;
--dhx-h-danger: 6;
--dhx-s-danger: 78%;
--dhx-l-danger: 57%;
--dhx-h-success: 168;
--dhx-s-success: 77%;
--dhx-l-success: 42%;
--dhx-l-background: 98%;
/* конец цветовой схемы */
}
</style>
<script>
const diagram = new dhx.Diagram("diagram_container", {
type: "default",
});
dhx.setTheme("light");
</script>