From 2d70be32ea193f6a1673a5634f5957cd3fc9e205 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Mon, 28 Sep 2026 19:42:25 +0900 Subject: [PATCH] =?UTF-8?q?fix(spreadsheet):=20=EC=96=B4=EB=91=90=EC=9A=B4?= =?UTF-8?q?=20=ED=85=8C=EB=A7=88=EC=97=90=EC=84=9C=20=EA=B8=80=EC=9E=90?= =?UTF-8?q?=EA=B0=80=20=EA=B2=80=EC=A0=95=EC=9C=BC=EB=A1=9C=20=EB=82=A8?= =?UTF-8?q?=EB=8D=98=20=EB=A9=94=EB=89=B4=20=C2=B7=20=ED=8C=9D=EC=97=85?= =?UTF-8?q?=EC=9D=84=20=ED=85=8C=EB=A7=88=20=ED=86=A0=ED=81=B0=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 브레인 지시로 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 Claude-Session: https://claude.ai/code/session_01W9YEkMnYQnNnRZRPXoxFsw --- A00_Common/spreadsheet/spreadsheet.css | 11 +++++++++++ A00_Common/spreadsheet/spreadsheet_analysis.css | 2 +- A00_Common/spreadsheet/spreadsheet_data_tools.ts | 2 ++ A00_Common/spreadsheet/spreadsheet_format_dialog.ts | 5 +++-- A00_Common/spreadsheet/spreadsheet_links.css | 4 +++- A00_Common/spreadsheet/spreadsheet_sortfilter.css | 7 ++++++- A00_Common/spreadsheet/spreadsheet_toolbar.css | 7 +++++++ 7 files changed, 33 insertions(+), 5 deletions(-) diff --git a/A00_Common/spreadsheet/spreadsheet.css b/A00_Common/spreadsheet/spreadsheet.css index 1949871e..87a49d13 100644 --- a/A00_Common/spreadsheet/spreadsheet.css +++ b/A00_Common/spreadsheet/spreadsheet.css @@ -29,6 +29,8 @@ padding: 0 6px; border: none; border-right: 1px solid var(--color-border); + background: transparent; + color: inherit; font: inherit; outline: none; } @@ -50,6 +52,8 @@ padding: 4px 6px; border: none; border-left: 1px solid var(--color-border); + background: transparent; + color: inherit; font: inherit; line-height: 18px; white-space: pre; @@ -117,6 +121,7 @@ border: none; border-right: 1px solid var(--color-border); background: none; + color: inherit; font: inherit; cursor: pointer; } @@ -163,6 +168,8 @@ width: 180px; padding: 2px 6px; border: 1px solid var(--color-border); + background: var(--color-surface-raised); + color: var(--color-text-body); font: inherit; } @@ -171,6 +178,7 @@ border: 1px solid var(--color-border); border-radius: 4px; background: var(--color-surface); + color: var(--color-text-body); font: inherit; cursor: pointer; } @@ -196,6 +204,7 @@ padding: 4px 6px; border: 1px solid var(--color-warning); background: color-mix(in srgb, var(--color-warning) 15%, var(--color-surface-raised)); + color: var(--color-text-body); font: inherit; white-space: pre-wrap; box-shadow: var(--shadow-sm); @@ -222,6 +231,7 @@ padding: 2px 8px; border: 1px solid var(--color-border); background: var(--color-surface); + color: var(--color-text-body); font: inherit; cursor: pointer; } @@ -298,6 +308,7 @@ padding: 0; border: 1px solid var(--color-border); background: var(--color-surface); + color: var(--color-text-body); font-size: 9px; cursor: pointer; } diff --git a/A00_Common/spreadsheet/spreadsheet_analysis.css b/A00_Common/spreadsheet/spreadsheet_analysis.css index 47541bbd..31a7041d 100644 --- a/A00_Common/spreadsheet/spreadsheet_analysis.css +++ b/A00_Common/spreadsheet/spreadsheet_analysis.css @@ -183,5 +183,5 @@ } .ss-errtip__item:hover { - background: var(--color-surface-sunken); + background: var(--color-mist-violet); } diff --git a/A00_Common/spreadsheet/spreadsheet_data_tools.ts b/A00_Common/spreadsheet/spreadsheet_data_tools.ts index 5d935a5a..4857c782 100644 --- a/A00_Common/spreadsheet/spreadsheet_data_tools.ts +++ b/A00_Common/spreadsheet/spreadsheet_data_tools.ts @@ -168,6 +168,7 @@ export function openTextToColumnsDialog(ctx: SpreadsheetContext): void { let breaksText = ""; const modeSelect = el("select", { + className: "ss-toolbar__select", children: [ el("option", { attrs: { value: "구분" }, text: TEXT.byDelimiter }), el("option", { attrs: { value: "고정" }, text: TEXT.byFixedWidth }), @@ -394,6 +395,7 @@ export function openFillSeriesDialog(ctx: SpreadsheetContext): void { let stop: number | null = null; const dirSelect = el("select", { + className: "ss-toolbar__select", children: [ el("option", { attrs: { value: "열" }, text: TEXT.down }), el("option", { attrs: { value: "행" }, text: TEXT.right }), diff --git a/A00_Common/spreadsheet/spreadsheet_format_dialog.ts b/A00_Common/spreadsheet/spreadsheet_format_dialog.ts index 65d67581..a743c20f 100644 --- a/A00_Common/spreadsheet/spreadsheet_format_dialog.ts +++ b/A00_Common/spreadsheet/spreadsheet_format_dialog.ts @@ -22,6 +22,7 @@ import { type Category, type NegStyle, } from "./spreadsheet_format_code"; +import { isAutoInk } from "./spreadsheet_cellstyle"; import { formatValue } from "./spreadsheet_numfmt"; import type { BorderLine, BorderSide, CellStyle, HAlign, VAlign } from "./spreadsheet_types"; import type { SpreadsheetContext } from "./spreadsheet_view_types"; @@ -87,7 +88,7 @@ function row(label: string, ...controls: HTMLElement[]): HTMLElement { function borderCss(side?: BorderSide): string { if (!side) return "none"; - const color = side.색 ?? "#000000"; + const color = isAutoInk(side.색) ? "var(--color-text-body)" : (side.색 as string); const width = side.선 === "medium" ? 2 : side.선 === "thick" || side.선 === "double" ? 3 : 1; const style = side.선 === "hair" ? "dotted" : side.선 === "double" ? "double" : side.선; return `${width}px ${style} ${color}`; @@ -302,7 +303,7 @@ export function openFormatDialog(ctx: SpreadsheetContext): void { ] .filter(Boolean) .join(" "); - sample.style.color = colorInput.value; + sample.style.color = isAutoInk(colorInput.value) ? "" : colorInput.value; } nameInput.addEventListener("input", () => { draft.글꼴 = nameInput.value || undefined; diff --git a/A00_Common/spreadsheet/spreadsheet_links.css b/A00_Common/spreadsheet/spreadsheet_links.css index 715161d6..695b3b97 100644 --- a/A00_Common/spreadsheet/spreadsheet_links.css +++ b/A00_Common/spreadsheet/spreadsheet_links.css @@ -77,6 +77,8 @@ padding: 4px 6px; border: 1px solid var(--color-border); border-radius: var(--radius-sm); + background: var(--color-canvas); + color: var(--color-text-body); font: inherit; } @@ -101,7 +103,7 @@ } .ss-links__row:hover { - background: var(--color-surface-sunken); + background: var(--color-mist-violet); } .ss-links__note { diff --git a/A00_Common/spreadsheet/spreadsheet_sortfilter.css b/A00_Common/spreadsheet/spreadsheet_sortfilter.css index 57d40347..2d545d29 100644 --- a/A00_Common/spreadsheet/spreadsheet_sortfilter.css +++ b/A00_Common/spreadsheet/spreadsheet_sortfilter.css @@ -55,6 +55,11 @@ color: inherit; } +.ss-sort__row option { + background: var(--color-canvas); + color: var(--color-text-body); +} + .ss-sort__foot, .ss-filter__foot { justify-content: flex-end; @@ -124,5 +129,5 @@ } .ss-filter__link:hover { - background: var(--color-surface-sunken); + background: var(--color-mist-violet); } diff --git a/A00_Common/spreadsheet/spreadsheet_toolbar.css b/A00_Common/spreadsheet/spreadsheet_toolbar.css index 89c2410e..80a619e5 100644 --- a/A00_Common/spreadsheet/spreadsheet_toolbar.css +++ b/A00_Common/spreadsheet/spreadsheet_toolbar.css @@ -47,6 +47,11 @@ font-size: 0.8rem; } +.ss-toolbar__select option { + background: var(--color-canvas); + color: var(--color-text-body); +} + .ss-toolbar__input { height: 28px; width: 72px; @@ -221,6 +226,8 @@ width: 96px; border: 1px solid var(--color-focus-ring); border-radius: var(--radius-sm); + background: var(--color-canvas); + color: var(--color-text-body); font: inherit; }