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
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -183,5 +183,5 @@
|
||||
}
|
||||
|
||||
.ss-errtip__item:hover {
|
||||
background: var(--color-surface-sunken);
|
||||
background: var(--color-mist-violet);
|
||||
}
|
||||
|
||||
@@ -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 }),
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user