mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-10-10 01:09:43 +02:00
fix(tabs): route the lineage spine between the state labels and the tabs
With tabArrangement 'state' (the default) and lineage lines on (the desktop default), the spine ran straight through the WORKING / WAITING / NEEDS YOU label of every row it passed. #538's `.session-tabs.tabs-triage:is(.tabs-auto-wrap, .tabs-two-rows)` pads the strip by the label gutter and pulls each label to the strip's edge with a negative margin; it outranks #544's `.lineage-tree.tabs-auto-wrap` `padding-left: 20px`, so the spine channel disappeared, and the spine, anchored at the strip's left edge (computeLineageTree), sat in the label column. The channel now opens BETWEEN the label column and the tabs: with lineage, the state strip pads by gutter + --lineage-spine-channel, every label keeps its column at the edge (still under the brand) and hands the channel back after itself, and the lead label still starts right after the brand. computeLineageTree takes the channel's left edge as `spineLeft`, which session-lineage.js reads back from the padding the CSS laid out (content edge minus the channel), so the two cannot drift; without it, or where the channel is the padding itself (classic, ledger, case), the spine stays at the strip's edge exactly as before. The spine's clamp now only considers tabs in rows the spine can run beside (every row after the first), so a first row that starts left of the channel (a quiet idle group right after the brand) no longer drags the spine back over the labels. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -20734,7 +20734,7 @@ html .toolbar .btn-git-status[aria-expanded='true'] {
|
||||
line's cross size is clamped at zero. A margin on the items spaces a group
|
||||
boundary and a group's own continuation line alike, and the break, which
|
||||
carries none, adds nothing. The last row's margin replaces the bottom
|
||||
padding (with lineage, part of its room). The gap is --lineage-row-gap
|
||||
padding (with lineage, part of its room, below). The gap is --lineage-row-gap
|
||||
while lineage lines are routed through it (`.session-tabs.lineage-tree`,
|
||||
near the top of this file). */
|
||||
.session-tabs-host > .session-tabs.tabs-triage:is(.tabs-auto-wrap, .tabs-two-rows) {
|
||||
@@ -20747,10 +20747,6 @@ html .toolbar .btn-git-status[aria-expanded='true'] {
|
||||
margin-bottom: var(--lineage-row-gap, 4px);
|
||||
}
|
||||
|
||||
.session-tabs-host > .session-tabs.tabs-triage.lineage-tree:is(.tabs-auto-wrap, .tabs-two-rows) {
|
||||
padding-bottom: calc(var(--lineage-bottom-room) - var(--lineage-row-gap));
|
||||
}
|
||||
|
||||
.session-tabs-host > .session-tabs.tabs-triage:is(.tabs-auto-wrap, .tabs-two-rows) > .tab-triage-head {
|
||||
justify-content: flex-start;
|
||||
width: var(--tab-triage-gutter, 92px);
|
||||
@@ -20771,6 +20767,31 @@ html .toolbar .btn-git-status[aria-expanded='true'] {
|
||||
height: 0;
|
||||
}
|
||||
|
||||
/* Lineage lines (session-lineage.js): the spine channel (the 20px the lineage
|
||||
rule reserves on the left of a wrapped strip) opens BETWEEN the label column
|
||||
and the tabs, not at the strip's edge. At the edge it was the label column
|
||||
itself: the gutter padding replaced the channel and the spine ran through
|
||||
every label it passed. session-lineage.js reads the channel's position back
|
||||
from this padding (the content edge minus --lineage-spine-channel), so the
|
||||
two cannot drift apart. Labels keep their column under the brand, and the
|
||||
lead row, which the spine never runs alongside, still starts right after
|
||||
the brand. */
|
||||
.session-tabs-host > .session-tabs.tabs-triage.lineage-tree:is(.tabs-auto-wrap, .tabs-two-rows) {
|
||||
padding-left: calc(var(--tab-triage-gutter, 92px) + var(--lineage-spine-channel));
|
||||
/* The last row's margin is part of the bottom routing room. */
|
||||
padding-bottom: calc(var(--lineage-bottom-room) - var(--lineage-row-gap));
|
||||
}
|
||||
|
||||
.session-tabs-host > .session-tabs.tabs-triage.lineage-tree:is(.tabs-auto-wrap, .tabs-two-rows) > .tab-triage-head {
|
||||
margin-left: calc(-1 * (var(--tab-triage-gutter, 92px) + var(--lineage-spine-channel)));
|
||||
margin-right: var(--lineage-spine-channel);
|
||||
}
|
||||
|
||||
.session-tabs-host > .session-tabs.tabs-triage.lineage-tree:is(.tabs-auto-wrap, .tabs-two-rows) > .tab-triage-head--lead {
|
||||
margin-left: calc(var(--tab-triage-brand, 100px) - var(--tab-triage-gutter, 92px) - var(--lineage-spine-channel));
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
/* Side rail and sidebar: each heading is a section row above its rows. */
|
||||
html[data-tab-orientation='vertical'] .tab-rail .session-tabs.tabs-triage > .tab-triage-head,
|
||||
html[data-session-list='sidebar'] .session-sidebar .session-tabs.tabs-triage > .tab-triage-head {
|
||||
|
||||
Reference in New Issue
Block a user