Files
Aislo/B05_Profile/B05_Profile_UI_Profile_CrossModal.css
T
eomsangdonandClaude Opus 5.5 6414fb83d8 feat(490-1 임시 횡단 표시): B05 종단 그래프 — 누르면 임시 횡단이 열리는 자리 가까이 원 · 세로 점선 · 측점 글 · 손가락 커서
- 판정 셈을 logic/B05_Profile_Profile_CrossPick.ts 한 함수(crossPickAt)로 뺌 — 누름 · 표시가 같은 판정
- 원지반선 위아래 8 px · 추가 측점 선 = 그 측점 · 측점선 · 단추 · 도구 중 · 끌기 · 스크롤 = 안 그림
- 포인터 이동 소수 px 를 누름과 같이 내려 맞춤 — 0.5 m 경계 1 m 어긋남 막음
- 시험 test_490_1_cross_pick · test_368_3 연결 자리 갱신

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 22:43:19 +09:00

104 lines
2.3 KiB
CSS

/* 종단 원지반 점 임시 횡단 작은 창(368-3) — 종단 칸 오른쪽 위 겹침 · 유토 배지(7) 위. */
.b05-crossmodal {
position: absolute;
top: 52px;
right: var(--spacing-12, 12px);
z-index: 8;
display: flex;
flex-direction: column;
gap: var(--spacing-8, 8px);
width: min(380px, calc(100% - 24px));
padding: var(--spacing-12, 12px);
border: 1px solid var(--color-border);
border-radius: var(--radius-8, 6px);
background: var(--color-surface-raised);
color: var(--color-text-body);
box-shadow: 0 4px 16px color-mix(in srgb, var(--color-text-body) 18%, transparent);
}
.b05-crossmodal[hidden] {
display: none;
}
.b05-crossmodal__head {
display: flex;
align-items: baseline;
gap: var(--spacing-8, 8px);
}
.b05-crossmodal__station {
color: var(--color-text-secondary);
font-size: var(--text-caption);
}
.b05-crossmodal__box {
height: 200px;
overflow: hidden;
border: 1px solid var(--color-border);
border-radius: var(--radius-8, 6px);
background: var(--color-surface);
}
.b05-crossmodal__foot {
color: var(--color-text-secondary);
font-size: var(--text-caption);
line-height: 1.5;
}
.b05-crossmodal__actions {
display: flex;
justify-content: flex-end;
gap: var(--spacing-8, 8px);
}
/* 임시 횡단이 열리는 자리 가까이 표시(490-1) — 누름은 아래 그래프 몫(통과) · 세로 축(5) 밑 */
.b05-crosshint {
position: absolute;
top: 0;
bottom: 0;
left: 0;
z-index: 4;
width: 0;
pointer-events: none;
}
.b05-crosshint[hidden],
.b05-crosshint__dot[hidden] {
display: none;
}
.b05-crosshint__line {
position: absolute;
top: 0;
bottom: 0;
left: 0;
border-left: 1px dashed var(--color-accent);
}
.b05-crosshint__dot {
position: absolute;
top: var(--crosshint-y);
left: 0;
width: 10px;
height: 10px;
border: 2px solid var(--color-accent);
border-radius: 50%;
background: var(--color-surface);
transform: translate(-50%, -50%);
box-sizing: border-box;
}
.b05-crosshint__label {
position: absolute;
top: var(--crosshint-y);
left: 10px;
transform: translateY(-50%);
padding: 1px 6px;
border: 1px solid var(--color-border);
border-radius: var(--radius-4, 4px);
background: var(--color-surface-raised);
color: var(--color-text-body);
font-size: var(--text-caption);
white-space: nowrap;
}