Правки для лучшей интеграции

This commit is contained in:
NikitaKalitov
2026-08-26 14:16:38 +03:00
parent 0d714ab38e
commit e8c05d307c
10 changed files with 453 additions and 123 deletions
+74 -7
View File
@@ -1,19 +1,69 @@
.diagram-shell {
display: flex;
position: relative;
height: 100%;
}
.diagram-canvas {
flex: 1;
min-width: 0;
width: 100%;
height: 100%;
}
.diagram-toolbar {
display: flex;
flex-wrap: wrap;
gap: 8px;
max-width: 280px;
}
/*
* Кнопка справки в правом верхнем углу холста. Раньше это место занимал
* переключатель режимов — он переехал в панель управления слева внизу,
* к остальным кнопкам работы с холстом.
*/
.diagram-help {
display: flex;
flex-direction: column;
align-items: flex-end;
gap: 6px;
}
/*
* Выпадающая справка под кнопкой «?». Не модалка и не портал в body:
* приложение работает внутри iframe, и оверлей во весь экран перекрыл бы
* только сам iframe — панель должна оставаться в границах приложения.
*/
.help-panel {
width: min(420px, 60vw);
max-height: min(460px, 70vh);
overflow: auto;
box-sizing: border-box;
padding: 4px 14px 14px;
border-radius: 6px;
background: canvas;
border: 1px solid color-mix(in srgb, canvastext 15%, transparent);
box-shadow: 0 8px 24px rgb(0 0 0 / 12%);
cursor: default;
}
.help-panel__section-title {
display: block;
margin: 12px 0 6px;
}
.help-panel__list {
margin: 0;
display: flex;
flex-direction: column;
gap: 8px;
}
.help-panel__row {
display: grid;
grid-template-columns: minmax(90px, 130px) 1fr;
gap: 2px 12px;
align-items: start;
}
.help-panel__row dd {
margin: 0;
}
/*
@@ -162,10 +212,27 @@
clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%);
}
/*
* Плавающая карточка поверх холста, а не колонка рядом с ним. Так холст не
* меняет ширину при открытии панели: фигуры остаются на своих экранных
* местах, и камеру подстраивать не нужно.
*
* Отступ сверху уводит карточку из-под кнопки справки в правом верхнем углу —
* иначе оверлей перекрывал бы её и справку нельзя было бы открыть, пока
* выбрана фигура.
*/
.diagram-aside {
position: absolute;
top: 52px;
right: 8px;
bottom: 8px;
width: 340px;
flex-shrink: 0;
border-left: 1px solid color-mix(in srgb, currentcolor 20%, transparent);
z-index: 5;
box-sizing: border-box;
background: canvas;
border: 1px solid color-mix(in srgb, canvastext 15%, transparent);
border-radius: 8px;
box-shadow: 0 8px 24px rgb(0 0 0 / 12%);
padding: 12px;
overflow: auto;
display: flex;