diff --git a/ui/dev/harness.html b/ui/dev/harness.html index 154b970..e7073d2 100644 --- a/ui/dev/harness.html +++ b/ui/dev/harness.html @@ -91,8 +91,8 @@
-
ours — file-panel.html (selected + cursor row)
- +
ours — focused panel (is-active): selected + cursor
+
diff --git a/ui/src/app/file-panel/file-panel.html b/ui/src/app/file-panel/file-panel.html index 137cb31..31b2c96 100644 --- a/ui/src/app/file-panel/file-panel.html +++ b/ui/src/app/file-panel/file-panel.html @@ -242,7 +242,7 @@ position:sticky, which is why it moved in here), the sorted column is .highlighted.indicator[.up], and the selection band is tr.highlighted. Widths come from because 7.css sets table-layout:fixed. --> -
+
@for (col of visibleColumns(); track col.key) { diff --git a/ui/src/styles.css b/ui/src/styles.css index 02078c3..55ae84e 100644 --- a/ui/src/styles.css +++ b/ui/src/styles.css @@ -610,10 +610,13 @@ body { white header gradient) instead of --w7-* vars, so unlike the rest of the skin it does NOT follow the hand-authored dark palette — the header labels came out invisible, dark on dark. These restate the same rules in dark - terms; they are scoped to the dark arms only so light keeps 7.css's own - values untouched. */ - .win7[data-theme='dark'] table, - .win7[data-theme='dark'] table > tbody > tr > * { + terms; light keeps 7.css's own values untouched. + + CRITICAL: the base surface goes on `table`, NEVER on `tbody > tr > *`. + 7.css paints the selection band on the ROW, and a cell background paints + over a row background — setting one erased the selection highlight + entirely in dark mode. */ + .win7[data-theme='dark'] table { background-color: var(--w7-el-bg-s-2); border-color: var(--w7-el-bd-d); color: var(--w7-el-c); @@ -626,11 +629,30 @@ body { .win7[data-theme='dark'] table > tbody > tr > :not(:last-child) { border-right-color: var(--w7-el-bd-d); } + /* 7.css drops the cell separators inside a selected row; the rule above is + more specific than its, so restore that behaviour explicitly. */ + .win7[data-theme='dark'] table > tbody > tr.highlighted > :not(:last-child) { + border-right: none; + } + .win7[data-theme='dark'] table > tbody > tr.highlighted { + background: var(--w7-li-bg-hl); + border-color: var(--w7-li-bd-hl); + } - /* The keyboard cursor. 7.css models only selection (tr.highlighted); Win7 - drew the focused row with a dotted focus rectangle on top of it, which is - what distinguishes "cursor" from "selected" when they differ. */ - .win7 table > tbody > tr.is-cursor > * { + /* Selection in the FOCUSED panel. 7.css's tr.highlighted is Win7's *inactive* + selection — a near-white wash that is almost invisible when it is the + panel you are actually working in. Win7 drew the focused pane's selection + as the stronger Aero band, which is what --w7-el-grad-h/-bd-h already are + (and the dark palette restates them, so this recolours for free). */ + .win7 table.is-active > tbody > tr.highlighted { + background: var(--w7-el-grad-h); + border-color: var(--w7-el-bd-h); + } + + /* The keyboard cursor: one dotted focus rectangle around the ROW, the way + Win7 drew a focused-but-unselected item. Applying this per cell (tr > *) + draws a dotted box around every cell instead — visibly wrong. */ + .win7 table > tbody > tr.is-cursor { outline: 1px dotted var(--w7-el-c); outline-offset: -1px; }