우측 속성 패널을 [200] 인스펙터 목업에 맞췄다. 바뀐 것 여섯.
· 탭이 알약에서 밑줄로. 알약은 '고르는 필터'로 읽히는데 탭은 화면을 가르는 것이지 값이 아니다.
좌측 패널 탭 스타일을 재사용할 수 없었다 — 저쪽은 TabControl 의 키 없는 암시 스타일이고
템플릿 안에 알약 컨테이너가 박혀 있어 고치면 레이어·팔레트 패널이 통째로 바뀐다.
미선택도 밑줄 두께 2 를 Transparent 로 잡아 둔다. 안 그러면 고르는 순간 글자가 2px 튄다.
밑줄과 글자는 같은 토큰(B.AccentText)이다 — B.Accent 는 라이트에서 3.0:1 이라 글자로 못 쓴다.
· 탭 배지를 뺐다. 잃는 게 없다: 개수가 0 인 탭은 RefreshTabCounts 가 탭 자체를 접으므로
배지가 "0"을 보여 줄 기회가 애초에 없고, 누르기 전에 정확한 개수를 알아야 할 작업이 없다.
DesignCount/DataCount/BehaviorCount 는 남긴다 — ShowDataTab/ShowBehaviorTab 이 그걸 물고 있다.
· 제목 줄이 생겼다. 타입 아이콘 + 이름 + ⋮. 무엇을 편집 중인지 아이콘으로 즉시 읽힌다.
타입은 툴팁으로 보냈다(Summary 가 "TextBox — TextBox1" 형태로 이미 그 말을 한다).
여럿을 골랐어도 타입이 같으면 그 타입 아이콘을 쓴다.
· 참/거짓이 체크박스에서 스위치로. 17px 사각형이 목록 오른쪽에 흩어져 정렬 축이 없었다.
손잡이는 켬·끔 모두 흰색이다 — 색이 아니라 위치가 상태를 말하게 한다.
불확정(다중선택 값 불일치)은 가운데다. 꺼짐으로 보이면 조용한 덮어쓰기 사고가 된다.
미끄러지지 않고 튄다: 이 저장소에는 Storyboard 가 한 곳도 없어 여기만 움직이면 물성이 달라진다.
ToggleButton 을 유지했으므로 스크린리더가 On/Off/Indeterminate 를 그대로 읽는다.
· 섹션 머리 — 위쪽에 구분선(아래에 그으면 마지막 섹션 밑에 뜬 선이 남는다), 제목을 B.Ink 로 승격,
개수는 접혔을 때만. 펼쳤으면 개수는 바로 아래가 답이라 잡음이다.
목업의 오른쪽 ⌃ 는 안 그린다 — 왼쪽 셰브론이 이미 같은 상태를 말하는데 한 행에 같은 정보를
두 번 그리면 둘이 다른 뜻이라고 읽힌다.
· 라벨 폭 92 → 72, 세그먼트는 가로 꽉. 목업의 56 은 못 준다 — 목업에 없는 데이터·동작 탭에
11자 라벨("입력 파라미터 컨트롤")이 있고 56 이면 3줄로 접힌다. 72 가 2줄을 지키는 최소값이다.
줄어든 20px 은 그대로 입력 칸으로 갔다(121 → 141). 태그 제안 칩의 하드코딩 들여쓰기도 같이 옮겼다.
목업에 있지만 넣지 않은 것 둘. 회전 행과 그 옆 자물쇠 — Rotation/Angle 이 Core·레지스트리 전부
0건이다. 레거시 WinForms 컨트롤에 회전이 없다. 모델부터 새로 만들 신규 기능이지 리스킨이 아니다.
자물쇠도 종횡비 잠금이 없는 기능이고, 레이어 잠금과 같은 아이콘을 쓰면 오해가 확정된다.
'자동 줄바꿈'은 그 키가 레지스트리에 없어 실제 키인 '자동 높이'로 둔다.
'선택 정보' 탭은 만들지 않기로 했다(사용자 결정). 탭은 3개 그대로, 밑줄 스타일만 입혔다.
정렬 행은 디자인 탭 상단에 그대로 둔다 — 목업이 그려진 시점보다 나중에 생긴 기능이라
목업의 부재는 '빼라'는 뜻이 아니다.
새 토큰 B.SwitchOff 를 양 테마에 넣었다. 기존 토큰으로는 못 만든다 —
B.Input 은 라이트에서 패널과 같은 색이고, 다크는 입력 테두리가 Transparent 라
36x20 알약이 #262626 위 #151515 = 1.23:1 로 사라진다. 비텍스트 3:1 을 넘긴 값으로 골랐다.
아이콘 ellipsis-vertical / file-text 2종 추가.
게이트: 테스트 267/267, --edit-smoke 237건 0실패, --query-popup 17/17, --maxrect 10/10,
--db-smoke 3000 diff 0·예외 0, --db-render P062 md5 8d683835f5d81e7bb41c79071d6bf954 동일,
--dialog-shots 57파일(인스펙터 스냅샷은 전부 바뀐다 — 이번 변경의 산출물이다).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
135 lines
9.7 KiB
XML
135 lines
9.7 KiB
XML
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
|
|
|
<!-- ============================================================
|
|
디자이너 라이트 토큰 — Tokens.Dark.xaml 과 동일 키, 라이트값
|
|
· Framer 라이트 에디터 기준: 중립 회색(쿨/블루톤 제거) + 강조는 Framer 블루 #0099FF
|
|
· 회색은 무채색(R=G=B)로 통일, 블루 틴트는 선택/활성(Accent2/Sel)에만
|
|
============================================================ -->
|
|
|
|
<!-- 색상 토큰 -->
|
|
<SolidColorBrush x:Key="B.Ink" Color="#222222" />
|
|
<!--
|
|
보조 텍스트·아이콘. 다크와 같은 #969696 을 쓰면 라이트에서 명암비가 2.5~2.96:1 로 떨어져
|
|
본문 기준(4.5:1)은 물론 아이콘 기준(3:1)도 못 넘긴다(다크는 같은 값이 4.85~6.53:1).
|
|
회색 하나를 양 테마가 공유할 수 없다 — 배경이 정반대이기 때문이다.
|
|
#6B6B6B 는 이 토큰이 얹히는 모든 배경에서 4.5:1 이상: Panel 5.33 / AppBg 4.89 /
|
|
CanvasBg 4.51 / Chip 4.63. 전 사용처 59곳이 전부 Foreground 라 채움 룩에는 영향이 없다.
|
|
-->
|
|
<SolidColorBrush x:Key="B.Muted" Color="#6B6B6B" />
|
|
<SolidColorBrush x:Key="B.Line" Color="#EAEAEA" />
|
|
<!-- 체크박스 상자·포커스 링 등 '컨트롤 경계'로도 쓰인다 — 흰 배경에서 1.43:1 이면 컨트롤이
|
|
거기 있다는 사실 자체가 안 보인다. -->
|
|
<SolidColorBrush x:Key="B.Line2" Color="#C6C6C6" />
|
|
<SolidColorBrush x:Key="B.Accent" Color="#0099FF" /><!-- 브랜드색 유지 — 아이콘·테두리·강조선(3:1) 용도 -->
|
|
<!--
|
|
강조'글자' 전용. #0099FF 는 흰 배경에서 3.0:1 이라 본문 4.5:1 을 못 넘긴다
|
|
(쿼리 편집기 변수 그룹 헤더, 마스크 미리보기 등). 라이트에서만 짙게 간다.
|
|
-->
|
|
<SolidColorBrush x:Key="B.AccentText" Color="#0F6FBF" />
|
|
<!-- 강조 채움(Primary 버튼) — 흰 글자를 얹으므로 5.19:1. 양 테마 동일값. -->
|
|
<SolidColorBrush x:Key="B.AccentFill" Color="#0F6FBF" />
|
|
<!--
|
|
레이어 목록 전용 4종 — 다크 대응본과 <b>방향이 반대</b>다.
|
|
다크는 짙은 파랑 채움 + 흰 글자, 라이트는 연한 파랑 채움 + 진한 글자로 간다.
|
|
흰 배경에 짙은 파랑 슬라브를 얹으면 선택 몇 줄이 패널 전체를 짓눌러 목록이 안 읽힌다.
|
|
|
|
#A8D3F7: 흰 패널 대비 1.58:1 로 밴드가 분명히 보이고, 그 위 B.Ink 는 10.1:1.
|
|
-->
|
|
<SolidColorBrush x:Key="B.LayerSel" Color="#A8D3F7" />
|
|
<!--
|
|
그룹 전원 선택 시 멤버 행 배경 — 선택 밴드보다 한 단계 옅게(선택 대비 1.30:1)
|
|
해서 '폴더가 주인, 멤버는 딸림'이 색 세기로 읽히게 한다.
|
|
[200] 원본 #E4F2FF 는 흰 패널 위 1.14:1 이고 같은 hex 가 B.Accent2 에서 이미 기각됐다.
|
|
-->
|
|
<SolidColorBrush x:Key="B.LayerSubtree" Color="#DCEBFB" />
|
|
<!-- 선택 밴드 위 글자 — 라이트는 연한 채움이라 흰 글자를 쓸 수 없다 -->
|
|
<SolidColorBrush x:Key="B.OnLayerSel" Color="#222222" />
|
|
<!-- 선택 밴드 위 보조 텍스트(컨트롤 이름 둘째 줄·멤버 수) — #A8D3F7 위 5.12:1 -->
|
|
<SolidColorBrush x:Key="B.OnSelMuted" Color="#35536C" />
|
|
<SolidColorBrush x:Key="B.Accent2" Color="#CFE7FF" /><!-- 활성 틴트 — 흰 바 위 1.14:1 로는 켜짐이 안 읽혀 진하게 -->
|
|
<SolidColorBrush x:Key="B.Sel" Color="#C2E2FF" /><!-- 선택 채움 — 흰 배경 1.19:1 은 선택 여부가 안 보인다 -->
|
|
<SolidColorBrush x:Key="B.Hover" Color="#EAEAEA" />
|
|
<SolidColorBrush x:Key="B.AppBg" Color="#F5F5F5" />
|
|
<SolidColorBrush x:Key="B.Panel" Color="#FFFFFF" />
|
|
<SolidColorBrush x:Key="B.PanelHeader" Color="#FAFAFA" />
|
|
<SolidColorBrush x:Key="B.Surface" Color="#FFFFFF" />
|
|
<SolidColorBrush x:Key="B.Titlebar" Color="#F7F7F7" /><!-- 순백 아님(패널과 미묘한 분리) -->
|
|
<SolidColorBrush x:Key="B.Input" Color="#FFFFFF" /><!-- 입력칩=흰색(라이트). 옅은 테두리 B.InputBorder 동반 -->
|
|
<!--
|
|
흰 입력칩 가장자리. 라이트는 B.Input = B.Panel = B.Surface = #FFFFFF 라 채움 대비가
|
|
정확히 1.000:1 — 이 테두리 하나가 입력란의 유일한 경계다. #E3E3E3(1.28:1)로는 보이지 않는다.
|
|
#C4C4C4 는 1.74:1 — WCAG 의 컨트롤 경계 3:1 을 채우려면 #949494 까지 가야 하지만
|
|
그건 [200] 의 가벼운 룩을 크게 벗어난다. 가시성을 확보하는 선에서 멈췄다.
|
|
-->
|
|
<SolidColorBrush x:Key="B.InputBorder" Color="#C4C4C4" />
|
|
<!--
|
|
캔버스(용지 뒷배경). #ECECEC 는 흰 용지와 명암비 1.18:1 이라 종이 경계가 사실상 안 보였다
|
|
(다크는 14.35:1). #D8D8D8 로 낮춰 1.43:1 — PageView 의 오프셋 그림자·테두리와 합쳐져야
|
|
용지가 떠 보인다. 용지 자체(PageView 의 종이·테두리·그림자)는 손대지 않는다 —
|
|
레거시 1:1 렌더 영역이고 P062 픽셀 대조가 회귀 게이트다.
|
|
-->
|
|
<SolidColorBrush x:Key="B.CanvasBg" Color="#D8D8D8" />
|
|
<SolidColorBrush x:Key="B.Chip" Color="#EFEFEF" />
|
|
<!-- 결과 문구용. #2E9E6B 는 B.Chip(#EFEFEF) 위 2.94:1 로 본문 기준 미달이었다 → 4.6:1 -->
|
|
<SolidColorBrush x:Key="B.Success" Color="#217A52" />
|
|
<!--
|
|
알림 대화상자 성격색 — 다크값을 그대로 쓸 수 없다.
|
|
경고 #E0A33A 는 흰 면 위 2.22:1 로 아이콘 기준(3:1)도 못 넘고, 오류 #E04A2B 는 4.05:1 로
|
|
아이콘은 되지만 본문 기준(4.5:1)에 못 미쳐 나중에 글자로 쓰면 무너진다.
|
|
#B45309 경고 5.02:1 / #C4321A 오류 5.50:1 (둘 다 B.Surface 기준).
|
|
-->
|
|
<SolidColorBrush x:Key="B.Warning" Color="#B45309" />
|
|
<SolidColorBrush x:Key="B.Danger" Color="#C4321A" />
|
|
<SolidColorBrush x:Key="B.Ok" Color="#1A7F37" />
|
|
|
|
<!-- 캔버스 오버레이 — 종이는 양 테마 모두 흰색이라(PageView 의 PaperBrush) 값이 같다.
|
|
테마별로 가르면 흰 종이 위 대비가 무너진다. -->
|
|
<!-- 스위치 꺼짐 트랙 — 기존 토큰으로는 못 만든다. B.Input 은 라이트에서 패널과 같은 색이고,
|
|
다크는 입력 테두리가 Transparent 라 알약이 통째로 사라진다(1.23:1). 비텍스트 3:1 을 넘긴 값이다. -->
|
|
<SolidColorBrush x:Key="B.SwitchOff" Color="#8A8A8A" />
|
|
|
|
<SolidColorBrush x:Key="B.CanvasGuide" Color="#F24822" /><!-- 정렬 가이드 -->
|
|
<SolidColorBrush x:Key="B.CanvasSpacing" Color="#F24822" /><!-- 간격 균등 막대 -->
|
|
|
|
<!-- SQL 구문 색 — 흰 배경 대비 4.5:1 이상.
|
|
치환 변수는 이 편집기에서 가장 중요한 조각이라 가장 진하게 둔다. -->
|
|
<SolidColorBrush x:Key="B.SqlKeyword" Color="#0B5FA5" />
|
|
<SolidColorBrush x:Key="B.SqlFunction" Color="#7A3E9D" />
|
|
<SolidColorBrush x:Key="B.SqlNumber" Color="#B25000" />
|
|
<SolidColorBrush x:Key="B.SqlText" Color="#1A7F37" />
|
|
<SolidColorBrush x:Key="B.SqlComment" Color="#6B7280" />
|
|
<SolidColorBrush x:Key="B.SqlVariable" Color="#9A3412" />
|
|
<!-- 편집기 현재 줄 띠 — B.Hover 는 버튼 호버용이라 편집 면 위에서 안 보인다(다크에선 더 어둡기까지 하다) -->
|
|
<SolidColorBrush x:Key="B.SqlCurrentLine" Color="#F0F4F8" />
|
|
<!-- 카드 그림자 — B.FloatShadow 는 팔레트·플라이아웃용이라 카드엔 세다 -->
|
|
<DropShadowEffect x:Key="B.CardShadow" BlurRadius="10" ShadowDepth="1" Direction="270" Opacity="0.07" Color="Black" RenderingBias="Quality" />
|
|
<!-- 강조 채움 버튼의 호버·누름 — 다크 대응본 주석 참조(양 테마 동일값) -->
|
|
<SolidColorBrush x:Key="B.AccentFillHover" Color="#0C5B9C" />
|
|
<SolidColorBrush x:Key="B.AccentFillPressed" Color="#0A4C83" />
|
|
<SolidColorBrush x:Key="B.Dark" Color="#1A1A1A" />
|
|
|
|
<!-- 트리거/템플릿 추출 토큰 -->
|
|
<SolidColorBrush x:Key="B.BtnHover" Color="#F3F3F3" />
|
|
<SolidColorBrush x:Key="B.BtnPressed" Color="#EAEAEA" />
|
|
<SolidColorBrush x:Key="B.TabHover" Color="#F0F0F0" />
|
|
<SolidColorBrush x:Key="B.TabSel" Color="#E8E8E8" />
|
|
<SolidColorBrush x:Key="B.OnAccent" Color="#FFFFFF" />
|
|
<SolidColorBrush x:Key="B.ScrollThumb" Color="#CDCDCD" />
|
|
<SolidColorBrush x:Key="B.ScrollThumbHover" Color="#B6B6B6" />
|
|
<SolidColorBrush x:Key="B.ScrollThumbDrag" Color="#A2A2A2" />
|
|
<SolidColorBrush x:Key="B.CaptionFg" Color="#444444" />
|
|
<SolidColorBrush x:Key="B.CaptionFgHover" Color="#1A1A1A" />
|
|
<SolidColorBrush x:Key="B.CaptionHover" Color="#E8E8E8" />
|
|
<SolidColorBrush x:Key="B.CloseHover" Color="#E04A2B" />
|
|
<!-- 흰 슬라이더 썸은 라이트 배경에서 1.15:1 이라 이 링이 썸의 유일한 윤곽이다 — 옅으면 썸이 사라진다 -->
|
|
<SolidColorBrush x:Key="B.SliderRing" Color="#9A9A9A" />
|
|
|
|
<!-- 플로팅 요소(팔레트 바·플라이아웃) 그림자 — 라이트는 흰 배경에 검은 그림자가 튀지 않게 더 넓고 옅게 -->
|
|
<DropShadowEffect x:Key="B.FloatShadow" BlurRadius="26" ShadowDepth="5" Direction="270" Opacity="0.14" Color="Black" RenderingBias="Quality" />
|
|
|
|
<!-- ScrollViewer 코너 사각형 — 다크 대응본 주석 참조(프레임워크 템플릿 소속이라 키를 덮어쓴다) -->
|
|
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="#FFFFFF" />
|
|
|
|
</ResourceDictionary>
|