Files
Aislo/ui_template/ui_template_side_panels.css
T

133 lines
3.1 KiB
CSS

/* 본문 오른쪽 접는 패널 여럿 — 왼쪽 가장자리 손잡이(좌측 패널과 같은 꼴) · 편 패널 = 공유 폭(--ui-side-panels-width)
보이는 칸 안에 붙음(JS followView) — 몸만 따로 스크롤 · 메인 스크롤과 따로 */
/* 부르는 쪽 칸 — [본문, 패널 묶음] */
.ui-side-panels-row {
display: flex;
align-items: stretch;
min-width: 0;
}
.ui-side-panels-row[hidden] {
display: none;
}
.ui-side-panels-row > :first-child {
flex: 1 1 auto;
min-width: 0;
}
.ui-side-panels {
position: relative;
display: flex;
flex: none;
align-self: flex-start;
/* 높이 · 붙는 자리 = JS(followView) · 처음 한 번 그릴 때까지 */
height: calc(100vh - 80px);
/* 손잡이 자리(24) + 틈 */
margin-left: calc(var(--spacing-24) + var(--spacing-8));
}
/* follow:false(85-5) — 부르는 칸(고정 높이) 높이를 채움 · 패널 내용이 칸 높이를 늘리지 않음 */
.ui-side-panels.is-fill {
align-self: stretch;
width: var(--ui-side-panels-width, 420px);
height: auto;
min-height: 240px;
}
.ui-side-panels.is-fill > .ui-side-panels__panel {
position: absolute;
inset: 0;
width: auto;
height: auto;
}
/* 모두 접힘 — 폭 0 · 손잡이만 왼쪽 밖에 남음 */
.ui-side-panels.is-collapsed {
width: 0;
}
/* 손잡이 줄 — 패널 왼쪽 밖 세로 가운데 · 패널 둘이면 위아래로 */
.ui-side-panels__handles {
position: absolute;
z-index: 2;
top: 50%;
left: calc(-1 * var(--spacing-24));
display: flex;
flex-direction: column;
gap: var(--spacing-4);
transform: translateY(-50%);
}
.ui-side-panels__handles > .ui-workflow-overlay__handle--side {
position: static;
transform: none;
border-right: 0;
border-left: 1px solid var(--panel-handle-border, var(--color-border));
border-radius: var(--radius-buttons) 0 0 var(--radius-buttons);
}
.ui-side-panels.is-resizing {
user-select: none;
}
.ui-side-panels__panel {
position: relative;
display: flex;
flex: none;
flex-direction: column;
width: var(--ui-side-panels-width, 420px);
min-width: 0;
height: 100%;
border: 1px solid var(--color-border);
border-radius: var(--radius-cards);
background: var(--color-surface);
}
.ui-side-panels__panel[hidden] {
display: none;
}
/* 왼쪽 경계 — 끌기 · 화살표 키 */
.ui-side-panels__grip {
position: absolute;
top: 0;
bottom: 0;
left: -5px;
width: 8px;
cursor: col-resize;
touch-action: none;
z-index: 1;
}
.ui-side-panels__grip:hover,
.ui-side-panels__grip:focus-visible,
.ui-side-panels.is-resizing .ui-side-panels__grip {
background: var(--color-primary);
opacity: 0.4;
}
.ui-side-panels__head {
display: flex;
align-items: center;
gap: var(--spacing-8);
padding: var(--spacing-8) var(--spacing-12);
border-bottom: 1px solid var(--color-border);
}
.ui-side-panels__title {
flex: 1 1 auto;
min-width: 0;
color: var(--color-text);
}
.ui-side-panels__body {
flex: 1 1 auto;
min-width: 0;
min-height: 0;
padding: var(--spacing-12);
overflow: auto;
overscroll-behavior: contain; /* 몸 끝에서 메인으로 이어 굴리지 않음(85-5) */
}