From 5e5db8d4fb2fb21eedaf438a4affb15eea753dbd Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 10 Oct 2026 11:44:48 +0900 Subject: [PATCH] =?UTF-8?q?style(b05):=20=EA=B5=AC=EC=A1=B0=EB=AC=BC=20?= =?UTF-8?q?=EC=A1=B0=ED=95=A9=20=EB=AF=B8=EC=97=B0=EA=B2=B0=20=EB=9D=BC?= =?UTF-8?q?=EB=B2=A8=20=3D=20=EC=97=B0=ED=95=9C=20=EB=85=B8=EB=9E=91=20?= =?UTF-8?q?=EA=B2=BD=EA=B3=A0=20=EB=B0=B0=EA=B2=BD=20+=20=ED=85=8C?= =?UTF-8?q?=EB=91=90=EB=A6=AC=20(177-1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_018jonfdxn1Xit9bdkNJpE4G --- .../B05_Profile_UI_Style_Structures.css | 6 +++++ .../test_177_1_summary_unassigned_bg.py | 27 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 resources/tester/test_177_1_summary_unassigned_bg.py diff --git a/B05_Profile/B05_Profile_UI_Style_Structures.css b/B05_Profile/B05_Profile_UI_Style_Structures.css index 63c9af9cc..d8fcc2277 100644 --- a/B05_Profile/B05_Profile_UI_Style_Structures.css +++ b/B05_Profile/B05_Profile_UI_Style_Structures.css @@ -453,6 +453,12 @@ background: color-mix(in srgb, var(--color-success) 18%, var(--color-surface)); } +/* 미연결 — 연한 노랑 배경 + 노랑 테두리(경고 · 밝음 · 어두움 같은 토큰). */ +.b05-structure__summary-name:not(.is-assigned) { + border-color: var(--color-warning); + background: color-mix(in srgb, var(--color-warning) 18%, var(--color-surface)); +} + .b05-structure__summary .b05-route__irregular-btn { flex: none; } diff --git a/resources/tester/test_177_1_summary_unassigned_bg.py b/resources/tester/test_177_1_summary_unassigned_bg.py new file mode 100644 index 000000000..bafa3cf4f --- /dev/null +++ b/resources/tester/test_177_1_summary_unassigned_bg.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +"""PLAN 177-1 — 구조물 조합 미연결 라벨 = 연한 노랑(경고) 배경 + 테두리(소스 시험).""" + +import os +import re + +ROOT = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +CSS = os.path.join(ROOT, "B05_Profile", "B05_Profile_UI_Style_Structures.css") + + +def _rule(sel: str) -> str: + src = open(CSS, encoding="utf-8").read() + m = re.search(re.escape(sel) + r"\s*\{([^}]*)\}", src) + assert m, sel + return m.group(1) + + +def test_미연결_배경_테두리_경고색_글자색_없음(): + body = _rule(".b05-structure__summary-name:not(.is-assigned)") + assert re.search(r"border-color:\s*var\(--color-warning\)", body) + assert re.search(r"background:\s*color-mix\([^;]*--color-warning[^;]*--color-surface", body) + assert not re.search(r"(^|[;\s])color:", body) + + +def test_테마_토큰_밝음_어두움_둘다(): + th = open(os.path.join(ROOT, "ui_template", "ui_template_theme.css"), encoding="utf-8").read() + assert len(re.findall(r"--color-warning:\s*#", th)) >= 2