From ee64781a7c0022b26665fbf05f0c79767d18ad83 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Mon, 28 Sep 2026 09:53:53 +0900 Subject: [PATCH] =?UTF-8?q?fix(spreadsheet):=20D=20=C2=B7=20sub4=20?= =?UTF-8?q?=EB=8C=80=EC=8B=A0=20=EC=83=89=20=EC=A4=84=EB=A7=8C=20=E2=80=94?= =?UTF-8?q?=20=EB=91=90=20css=20=EB=8F=84=20=ED=85=8C=EB=A7=88=20=ED=86=A0?= =?UTF-8?q?=ED=81=B0=EC=9C=BC=EB=A1=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 브레인 승인(sub7 · sub4 는 같은 파일의 다른 부분 작업 중이라 색 줄만 최소로 고침 · 주인은 그대로 D(spreadsheet.css) · sub_laptop_4(spreadsheet_stage3.css)). spreadsheet.css — 부품 틀 · 주소 상자 · 수식 입력줄 · 칸 편집기 · 채우기 미리보기 · 알림 · 찾기 패널 · 메모 · 골라 붙여넣기 · 자동완성 · 데이터 메뉴의 하드코딩 색(#fff · #1f2328 · #d0d7de · #217346 · #6e7781 · #57606a · #24292f · #dafbe1 · #bf8700 · #fff8c5 · #ddf4ff · #8c959f · #f6f8fa · 그림자 rgb(0 0 0/15%))을 전역 토큰(--color-surface-raised · -text-body · -border · -focus-ring · -text-muted · -text-secondary · -primary/-primary-text · -warning · -accent · -surface · --shadow-lg/-sm)으로 바꿈. 메모(주석) 배경 · 자동완성 강조 · 서식 붓 켜짐 배경은 이름 없는 톤(포스트잇 옅은 노랑 등)이라 color-mix 로 기존 토큰에서 옅게 섞어냄 (새 토큰 안 만듦). spreadsheet_stage3.css — 조건부 서식 · 유효성 드롭다운 그림자 한 줄(rgba(0,0,0,0.12))만 남아 있던 것을 --shadow-sm 으로. ORCA 수치(C 시험 틀에 두 css 임시로 얹어 밝은 · 어두운 전환) — 밝은: .ss 배경 rgb(255,255,255)·글 rgb(51,51,51) · 알림(toast) 배경 rgb(38,17,74)·글 흰색 · 메모 테두리 rgb(184,134,11). 어두운: .ss 배경 rgb(37,31,56)·글 rgb(228,224,240) · 알림 배경 rgb(185,154,255)·글 rgb(22,18,31)(반전) · 메모 테두리 rgb(224,182,74) — 대화상자 · 찾기 · 자동완성 · 조건부 서식 패널 · 상태 표시줄까지 모두 두 테마에서 배경 · 글 대비 확인. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01VVM3xZ1aUPcUTuW2WZSnwg --- A00_Common/spreadsheet/spreadsheet.css | 84 +++++++++---------- A00_Common/spreadsheet/spreadsheet_stage3.css | 2 +- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/A00_Common/spreadsheet/spreadsheet.css b/A00_Common/spreadsheet/spreadsheet.css index 067f5f1a..1949871e 100644 --- a/A00_Common/spreadsheet/spreadsheet.css +++ b/A00_Common/spreadsheet/spreadsheet.css @@ -7,8 +7,8 @@ height: 100%; min-height: 0; font-size: 13px; - color: #1f2328; - background: #fff; + color: var(--color-text-body); + background: var(--color-surface-raised); } .ss-grid-host { @@ -21,26 +21,26 @@ flex: none; align-items: stretch; height: 26px; - border-bottom: 1px solid #d0d7de; + border-bottom: 1px solid var(--color-border); } .ss-addr { width: 96px; padding: 0 6px; border: none; - border-right: 1px solid #d0d7de; + border-right: 1px solid var(--color-border); font: inherit; outline: none; } .ss-addr:focus { - box-shadow: inset 0 0 0 2px #217346; + box-shadow: inset 0 0 0 2px var(--color-focus-ring); } .ss-fx { align-self: center; padding: 0 8px; - color: #6e7781; + color: var(--color-text-muted); font-style: italic; user-select: none; } @@ -49,7 +49,7 @@ flex: 1; padding: 4px 6px; border: none; - border-left: 1px solid #d0d7de; + border-left: 1px solid var(--color-border); font: inherit; line-height: 18px; white-space: pre; @@ -59,7 +59,7 @@ } .ss--readonly .ss-formula { - color: #57606a; + color: var(--color-text-secondary); } /* 칸 편집기 = 숨은 textarea — 쉴 때는 활성 칸 자리에 투명하게(한글 조합 창 자리) */ @@ -69,9 +69,9 @@ box-sizing: border-box; margin: 0; padding: 1px 3px; - border: 2px solid #217346; - background: #fff; - color: #000; + border: 2px solid var(--color-focus-ring); + background: var(--color-surface-raised); + color: var(--color-text-body); font: inherit; line-height: 1.25; white-space: pre; @@ -95,7 +95,7 @@ position: absolute; z-index: 4; box-sizing: border-box; - border: 1px dashed #57606a; + border: 1px dashed var(--color-text-secondary); pointer-events: none; } @@ -106,8 +106,8 @@ z-index: 20; padding: 6px 10px; border-radius: 4px; - background: #24292f; - color: #fff; + background: var(--color-primary); + color: var(--color-primary-text); } /* 2단계 잇기 — 서식 붓 · 찾기 패널 · 메모 · 골라 붙여넣기 */ @@ -115,15 +115,15 @@ flex: none; padding: 0 8px; border: none; - border-right: 1px solid #d0d7de; + border-right: 1px solid var(--color-border); background: none; font: inherit; cursor: pointer; } .ss-brush.is-on { - background: #dafbe1; - box-shadow: inset 0 0 0 2px #217346; + background: color-mix(in srgb, var(--color-focus-ring) 20%, var(--color-surface-raised)); + box-shadow: inset 0 0 0 2px var(--color-focus-ring); } .ss--painting .ss-grid-host { @@ -139,10 +139,10 @@ flex-direction: column; gap: 4px; padding: 8px; - border: 1px solid #d0d7de; + border: 1px solid var(--color-border); border-radius: 6px; - background: #fff; - box-shadow: 0 4px 12px rgb(0 0 0 / 15%); + background: var(--color-surface-raised); + box-shadow: var(--shadow-lg); } .ss-find[hidden], @@ -162,15 +162,15 @@ .ss-find__input { width: 180px; padding: 2px 6px; - border: 1px solid #d0d7de; + border: 1px solid var(--color-border); font: inherit; } .ss-find__btn { padding: 2px 8px; - border: 1px solid #d0d7de; + border: 1px solid var(--color-border); border-radius: 4px; - background: #f6f8fa; + background: var(--color-surface); font: inherit; cursor: pointer; } @@ -184,7 +184,7 @@ .ss-find__status { font-size: 12px; - color: #57606a; + color: var(--color-text-secondary); } .ss-memo, @@ -194,11 +194,11 @@ min-width: 140px; max-width: 260px; padding: 4px 6px; - border: 1px solid #bf8700; - background: #fff8c5; + border: 1px solid var(--color-warning); + background: color-mix(in srgb, var(--color-warning) 15%, var(--color-surface-raised)); font: inherit; white-space: pre-wrap; - box-shadow: 0 2px 6px rgb(0 0 0 / 15%); + box-shadow: var(--shadow-sm); } .ss-memo { @@ -213,15 +213,15 @@ display: flex; gap: 2px; padding: 4px; - border: 1px solid #d0d7de; - background: #fff; - box-shadow: 0 4px 12px rgb(0 0 0 / 15%); + border: 1px solid var(--color-border); + background: var(--color-surface-raised); + box-shadow: var(--shadow-lg); } .ss-pick > button { padding: 2px 8px; - border: 1px solid #d0d7de; - background: #f6f8fa; + border: 1px solid var(--color-border); + background: var(--color-surface); font: inherit; cursor: pointer; } @@ -232,10 +232,10 @@ z-index: 6; min-width: 200px; max-width: 360px; - border: 1px solid #d0d7de; - background: #fff; + border: 1px solid var(--color-border); + background: var(--color-surface-raised); font-size: 12px; - box-shadow: 0 4px 12px rgb(0 0 0 / 15%); + box-shadow: var(--shadow-lg); } .ss-hint[hidden] { @@ -255,7 +255,7 @@ } .ss-hint__item.is-on { - background: #ddf4ff; + background: color-mix(in srgb, var(--color-accent) 18%, var(--color-surface-raised)); } /* 데이터 메뉴 — 패널 창 · 유효성 목록 ▼ */ @@ -266,10 +266,10 @@ z-index: 21; max-height: calc(100% - 8px); overflow: auto; - border: 1px solid #d0d7de; + border: 1px solid var(--color-border); border-radius: 6px; - background: #fff; - box-shadow: 0 4px 12px rgb(0 0 0 / 15%); + background: var(--color-surface-raised); + box-shadow: var(--shadow-lg); } .ss-dialog[hidden], @@ -283,7 +283,7 @@ justify-content: space-between; gap: 8px; padding: 6px 8px; - border-bottom: 1px solid #d0d7de; + border-bottom: 1px solid var(--color-border); font-weight: bold; } @@ -296,8 +296,8 @@ z-index: 8; width: 16px; padding: 0; - border: 1px solid #8c959f; - background: #f6f8fa; + border: 1px solid var(--color-border); + background: var(--color-surface); font-size: 9px; cursor: pointer; } diff --git a/A00_Common/spreadsheet/spreadsheet_stage3.css b/A00_Common/spreadsheet/spreadsheet_stage3.css index 549d2588..453ab197 100644 --- a/A00_Common/spreadsheet/spreadsheet_stage3.css +++ b/A00_Common/spreadsheet/spreadsheet_stage3.css @@ -75,7 +75,7 @@ background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 4px; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12); + box-shadow: var(--shadow-sm); max-height: 160px; overflow-y: auto; }