Files
Aislo/E06_StabRock/E06_StabRock_UI_Style.css
eomsangdonandClaude Sonnet 5.5 917127a63c style(setting_row): 설정 줄 부품에 좁은 꼴 추가 · E06 설정 줄을 부품으로 · D03 3D 창의 B05 클래스 빌림 끊음 (PLAN 553-4 뒤처리)
- 설정 줄 좁은 꼴(compact · 줄 28 · 글 12 · 선 없음) + 부품 모음 견본 + 지킴 시험
- E06 e06-setting 걷음 · 가이드 장면 선택자 갱신
- D03 3D 창 = 자기 클래스(d03-plan__3d-modal · 3d-body) · 모달 부품 그대로 · 가이드 장면 선택자 갱신

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 23:04:33 +09:00

327 lines
5.2 KiB
CSS

/* =============================================================================
* E06_StabRock_UI_Style.css
* E06 암반 해석 — 좌측 절리 표 · 설정 / 가운데 위험 띠 · 스테레오넷 / 우측 측점 결과
* 색은 테마 토큰(밝음 · 어두움 같이) · 판정 · 모드 · 절리 색만 고정색(E03 판정색과 같음)
* ========================================================================== */
.e06-page {
--e06-ng: #d03b3b;
--e06-ok: #0ca30c;
--e06-check: #e0a106;
--e06-none: #9a9a95;
--e06-planar: #d03b3b;
--e06-wedge: #f1963b;
--e06-toppling: #9b6dde;
--e06-pole: #2f6fd6;
height: 100dvh;
box-sizing: border-box;
}
.e06-row {
height: 100%;
}
.e06-center {
display: flex;
flex-direction: column;
gap: var(--spacing-8);
height: 100%;
min-height: 0;
padding: var(--spacing-12) 0 var(--spacing-12) var(--spacing-12);
box-sizing: border-box;
overflow: auto;
}
/* 보조 글 · 빈 자리 · 띠 알림 · 표 · 설정 줄 · 판정 램프는 부품 — 여기는 자리만 */
.e06-status__text,
.e06-hint,
.e06-kin {
white-space: pre-line;
}
.e06-empty {
margin: var(--spacing-16);
}
.e06-panel .ui-sidebar-actions {
flex-wrap: wrap;
}
.e06-stale[hidden] {
display: none;
}
/* ---- 좌측 표 · 설정 ---- */
.e06-table-wrap {
overflow-x: auto;
}
.e06-input {
width: 4.2em;
}
.e06-input--name {
width: 3.6em;
}
select.e06-input {
width: auto;
}
.e06-row-actions {
display: flex;
justify-content: flex-end;
margin-top: var(--spacing-4);
}
.ui-setting-row .e06-input {
width: 5.5em;
}
.e06-ctl {
display: flex;
align-items: center;
gap: var(--spacing-4);
}
/* ---- 가운데 ---- */
.e06-toolbar {
display: flex;
align-items: center;
gap: var(--spacing-12);
flex-wrap: wrap;
}
.e06-title {
color: var(--color-text);
}
.e06-stage {
display: flex;
gap: var(--spacing-12);
align-items: flex-start;
flex-wrap: wrap;
padding: var(--spacing-8);
border-radius: var(--radius-sm);
background: var(--color-surface-raised);
}
.e06-net-slot {
flex: 1 1 360px;
max-width: 560px;
}
.e06-net {
display: block;
width: 100%;
height: auto;
color: var(--color-text);
font-size: 11px;
}
.e06-net__rim {
fill: var(--color-surface);
stroke: var(--color-text);
stroke-width: 1.4;
}
.e06-net__zone {
stroke: none;
opacity: 0.28;
}
.e06-net__zone--planar {
fill: var(--e06-planar);
}
.e06-net__zone--wedge {
fill: var(--e06-wedge);
}
.e06-net__zone--toppling {
fill: var(--e06-toppling);
}
.e06-net__friction {
fill: none;
stroke: var(--color-text-secondary);
stroke-width: 1;
stroke-dasharray: 5 3;
}
.e06-net__friction--line {
stroke-dasharray: 2 3;
}
.e06-net__envelope {
fill: none;
stroke: var(--e06-planar);
stroke-width: 1;
stroke-dasharray: 6 3;
}
.e06-net__gc {
fill: none;
stroke: currentColor;
stroke-width: 1.2;
}
.e06-net__slope {
fill: none;
stroke: var(--color-text);
stroke-width: 2.6;
}
.e06-net__slope-pole {
fill: var(--color-text);
}
.e06-net__pole circle {
fill: currentColor;
stroke: var(--color-surface);
stroke-width: 1;
}
.e06-net__pole.is-risk circle,
.e06-net__line.is-risk path {
stroke: var(--e06-ng);
stroke-width: 2.4;
}
.e06-net__pole text,
.e06-net__line text,
.e06-net__dir {
fill: var(--color-text);
}
.e06-net__line path {
fill: var(--e06-wedge);
stroke: var(--color-surface);
}
.e06-net__tick {
stroke: var(--color-text-secondary);
}
.e06-tone-0 {
color: #2f6fd6;
}
.e06-tone-1 {
color: #1f9d6a;
}
.e06-tone-2 {
color: #c2410c;
}
.e06-tone-3 {
color: #7c4dcc;
}
.e06-tone-4 {
color: #b8860b;
}
.e06-tone-5 {
color: #0e7490;
}
.e06-legend__mark--line {
clip-path: polygon(50% 0, 100% 100%, 0 100%);
}
/* ---- 위험 띠 ---- */
.e06-band {
display: flex;
flex-direction: column;
gap: 4px;
}
.e06-band__legend {
display: flex;
align-items: center;
gap: 6px;
flex-wrap: wrap;
font-size: 12px;
color: var(--color-text);
}
.e06-band__count {
margin-right: 6px;
color: var(--color-text-secondary);
}
.e06-band__strip {
position: relative;
height: 18px;
border-radius: var(--radius-sm);
background: var(--color-surface-raised);
overflow: hidden;
}
.e06-band__seg {
position: absolute;
top: 0;
bottom: 0;
padding: 0;
border: none;
cursor: pointer;
}
.e06-band__seg--ng {
background: var(--e06-ng);
}
.e06-band__seg--ok {
background: var(--e06-ok);
}
.e06-band__seg--check {
background: var(--e06-check);
}
.e06-band__seg--none {
background: var(--e06-none);
}
.e06-band__seg.is-active {
outline: 2px solid var(--color-text);
outline-offset: -2px;
z-index: 1;
}
.e06-band__ticks {
display: flex;
justify-content: space-between;
font-size: 11px;
color: var(--color-text-secondary);
}
/* ---- 우측 ---- */
.e06-side {
display: flex;
flex-direction: column;
gap: var(--spacing-12);
}
.e06-list-slot {
max-height: 46vh;
overflow: auto;
}
.e06-list-slot .ui-table-wrap {
overflow: visible;
border: 0;
border-radius: 0;
background: none;
}
.e06-list-slot th {
position: sticky;
top: 0;
z-index: 1;
background: var(--color-surface-raised);
}
.e06-list tbody tr {
cursor: pointer;
}
.e06-detail h4 {
margin: 0 0 4px;
color: var(--color-text);
}