Files
Aislo/A00_Common/spreadsheet/spreadsheet_analysis.css
eomsangdonandClaude Sonnet 5 2d70be32ea fix(spreadsheet): 어두운 테마에서 글자가 검정으로 남던 메뉴 · 팝업을 테마 토큰으로
브레인 지시로 M02 면적산출(SA01010100) · 재료산출(SM01010100) 화면의 메뉴 · 팝업을 ORCA eval 로
전수로 열어 글자색 대 실제 바탕색 대비를 잼(투명이면 조상으로 올라가 겹침 · 4.5 미만 + 어두운
테마에서 흰 바탕 폼 칸 표시). 원인은 color 를 안 준 브라우저 기본 색(button · input · textarea)과
없는 토큰 · 검정 고정.
- spreadsheet.css: 서식 붓 단추(.ss-brush · 서식… 붓 ↑ ↓ 필터 Σ 데이터 ▾) · 찾기/바꾸기 입력 ·
  찾기 단추 · 메모 · 골라 붙여넣기 단추 · 목록 ▼ 단추에 color 를 줌 · 주소 상자(.ss-addr) ·
  수식 입력줄(.ss-formula)은 흰 바탕 · 검정 글이던 것을 투명 바탕 · 글 상속으로
- spreadsheet_links.css: 자재 찾기 입력 바탕 · 글 토큰
- spreadsheet_toolbar.css: 시트 탭 이름 바꾸기 입력 · select 의 option 바탕 · 글 토큰
- spreadsheet_sortfilter.css · spreadsheet_analysis.css · spreadsheet_links.css: 정의 안 된
  --color-surface-sunken(마우스 올림 바탕이 안 나오던 것)을 --color-mist-violet 로(색 줄만 ·
  주인 A · D 파일이라 최소로)
- spreadsheet_sortfilter.css: 정렬 창 select 의 option 바탕 · 글 토큰
- spreadsheet_format_dialog.ts: 글꼴 미리보기 글자색 · 테두리 미리보기 기본 선색이 검정 고정이던 것을
  「자동」(검정 · windowtext · auto)이면 테마 글자색으로(isAutoInk 재사용)
- spreadsheet_data_tools.ts: 텍스트 나누기 · 연속 채우기 창의 select 두 곳에 ss-toolbar__select 를 붙여
  흰 바탕 · 검정 글이던 것을 테마로

ORCA(IP http://100.72.32.27:5181 · 전환 애니메이션 끄고 잼) — 어두운 테마: 기본 화면 · 셀/행 머리/열 머리
우클릭 메뉴 · 데이터 메뉴와 하위 · 조건부 서식 · 유효성 · 이름 관리 · 정렬 · 텍스트 나누기 · 중복 제거 ·
연속 채우기 · 칸 넣기/지우기 · 이동 · 셀 서식 창 여섯 탭 · 찾기/바꾸기 · 수식 편집 + 함수 자동완성 ·
메모 창 · 단위 · 테두리 패널 · 자재 알약 찾기 · 자동 필터 값 목록 · 풍선 · 붙여넣기 선택 · 유효성 목록 ·
오류 ⚠ 메뉴 · 수식 계산 · 알림, SM · SA 두 시트 모두 대비 4.5 미만 · 흰 바탕 폼 칸 0 건(고치기 전에는
서식 붓 계열 7 개가 글 rgb(0,0,0) 대 바탕 rgb(37,31,56) 대비 1.33 등). 밝은 테마도 같은 목록으로
재서 새로 깨진 곳 없음(남은 것은 --color-text-muted 가 밝은 테마 바탕에서 3.08 인 기존 토큰 값).
css 8KB 한도: 가장 큰 spreadsheet_toolbar.css 7432 바이트.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W9YEkMnYQnNnRZRPXoxFsw
2026-09-28 19:42:25 +09:00

188 lines
3.6 KiB
CSS

/* spreadsheet_analysis.css (주인 A) — 추적 화살표 겹판 · 수식 계산 창 · 오류 ⚠ 단추 */
/* 추적 화살표 — 크기 0 겹판(격자 조작을 막지 않음) */
.ss-trace {
position: absolute;
left: 0;
top: 0;
width: 1px;
height: 1px;
overflow: visible;
pointer-events: none;
}
.ss-trace__line {
stroke-width: 1.5;
}
.ss-trace__line.is-plain,
.ss-trace__dot.is-plain,
.ss-trace__head.is-plain {
stroke: var(--color-info);
fill: var(--color-info);
}
.ss-trace__line.is-error,
.ss-trace__dot.is-error,
.ss-trace__head.is-error {
stroke: var(--color-danger);
fill: var(--color-danger);
}
.ss-trace__line.is-sheet,
.ss-trace__dot.is-sheet,
.ss-trace__head.is-sheet {
stroke: var(--color-text-body);
fill: var(--color-text-body);
}
.ss-trace__line.is-sheet {
stroke-dasharray: 4 3;
}
.ss-trace__box {
fill: none;
stroke-width: 2;
stroke: var(--color-info);
}
.ss-trace__box.is-error {
stroke: var(--color-danger);
}
.ss-trace__sheet {
fill: var(--color-surface);
stroke: var(--color-text-body);
}
/* 수식 계산 창 */
.ss-steps {
position: absolute;
inset: 0;
z-index: var(--z-dropdown);
display: flex;
align-items: center;
justify-content: center;
background: rgb(0 0 0 / 18%);
}
.ss-steps__box {
display: flex;
flex-direction: column;
gap: var(--spacing-8);
min-width: 420px;
max-width: 90%;
padding: var(--spacing-12);
background: var(--color-surface-raised);
color: var(--color-text-body);
border: 1px solid var(--color-border);
border-radius: var(--radius-cards);
box-shadow: var(--shadow-lg);
font-size: 13px;
}
.ss-steps__title {
font-weight: 600;
}
.ss-steps__meta {
color: var(--color-text-secondary);
}
.ss-steps__text {
min-height: 60px;
padding: var(--spacing-8);
font-family: var(--font-mono, monospace);
white-space: pre-wrap;
word-break: break-all;
background: var(--color-canvas);
border: 1px solid var(--color-border);
border-radius: var(--radius-sm);
}
.ss-steps__foot {
display: flex;
justify-content: flex-end;
gap: var(--spacing-8);
}
/* 오류 ⚠ 단추 · 풍선 · 메뉴 */
.ss-errtip {
position: absolute;
z-index: var(--z-dropdown);
width: 0;
height: 0;
overflow: visible;
}
.ss-errtip__btn {
position: absolute;
width: 18px;
height: 18px;
padding: 0;
font-size: 11px;
line-height: 16px;
cursor: pointer;
color: var(--color-warning);
background: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: var(--radius-sm);
}
.ss-errtip__balloon {
display: none;
position: absolute;
left: 0;
top: 22px;
z-index: var(--z-dropdown);
width: max-content;
max-width: 320px;
padding: var(--spacing-4) var(--spacing-8);
font-size: 12px;
color: var(--color-text-body);
background: var(--color-surface-raised);
border: 1px solid var(--color-border);
border-radius: var(--radius-sm);
box-shadow: var(--shadow-lg);
}
.ss-errtip__btn:hover + .ss-errtip__balloon {
display: block;
}
.ss-errtip__menu {
position: absolute;
left: 0;
top: 22px;
z-index: var(--z-dropdown);
display: flex;
flex-direction: column;
min-width: 200px;
max-width: 320px;
padding: var(--spacing-4);
font-size: 13px;
color: var(--color-text-body);
background: var(--color-surface-raised);
border: 1px solid var(--color-border);
border-radius: var(--radius-sm);
box-shadow: var(--shadow-lg);
}
.ss-errtip__head {
padding: var(--spacing-4);
font-weight: 600;
}
.ss-errtip__item {
padding: var(--spacing-4);
text-align: left;
color: inherit;
background: none;
border: none;
cursor: pointer;
}
.ss-errtip__item:hover {
background: var(--color-mist-violet);
}