From 3e2adc828860075e205d4b43c0b17fd8d448459b Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Fri, 19 Jun 2026 00:40:30 -0500 Subject: refactor(theme-studio): polish the expander (underline inside, dynamic colspan, nd flag) Three cleanups to the per-row expander from 3B-2. The underline control moves from the in-row style cell into the expander, next to overline. The row keeps weight, slant, and strike inline, so the style cell drops from three wrapped rows to two and the table reads flatter. mkExpander no longer hardcodes each table's colspan. tableColCount reads the column count from the table's header, so a detail row spans correctly even if a column is added later. A collapsed expander now flags itself when it hides an attribute that differs from the face's default, so a non-default value is never invisible. overflowNonDefault (app-core.js, unit-tested) compares the expander's attributes against the default. The toggle re-checks after every edit and gets the gold marker when any differ. faceBoxNonDefaults drops underline from the in-row style box in the same move, since underline is now the expander's concern. The #expandtest gate covers the underline control in its new home, its wavy write, and the flag appearing then clearing. Full suite green: Python 59, Node 201, ERT 41, plus the browser hash gates. --- scripts/theme-studio/styles.css | 1 + 1 file changed, 1 insertion(+) (limited to 'scripts/theme-studio/styles.css') diff --git a/scripts/theme-studio/styles.css b/scripts/theme-studio/styles.css index 794ebd399..de9aa9fd0 100644 --- a/scripts/theme-studio/styles.css +++ b/scripts/theme-studio/styles.css @@ -23,6 +23,7 @@ select.stylesel{width:78px;padding:2px 4px;font:11px monospace;font-weight:normal} .exptoggle{width:18px;height:18px;padding:0;border:1px solid #3a3a3a;border-radius:3px;background:#1f1c19;color:#8a9496;font:12px monospace;line-height:1;cursor:pointer;vertical-align:middle} .exptoggle.on{background:#3a3320;border-color:#e8bd30;color:#e8bd30} + .exptoggle.exp-nd{border-color:#e8bd30;color:#e8bd30} .exptoggle:disabled{opacity:.3;cursor:default} tr.detailrow>td{background:#15120f;border-top:1px solid #2a2a2a;padding:8px 14px} .detailedit{display:flex;flex-wrap:wrap;align-items:center;gap:14px} -- cgit v1.2.3