Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W4uKaV4ZBhsJN4GHG7yRj4
133 lines
3.1 KiB
CSS
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) */
|
|
}
|