feat(tasks-ui): readability pass, height-budget fix and leftover sweep
The native port is finished off with the readability work the earlier rounds left open, plus the cleanup of everything the shadcn era or the older canvas left behind. - Geometry: node height is now composed from named parts (chrome, two title lines, meta row) and per-node extras, so a teammate card that carries a task line no longer gets clipped by the old fixed 68px budget; the layout spec follows the new model and GRAPH_ROW_STRIDE stays exported for it. - Readability: row rhythm (28-32px), three ink levels for title/meta/owner, truncation with title hints, current-row and hover expressed as an accent bar plus a hover fill (no shadows), phase frames and edges back on the l1/l2 hairlines, control cluster uniformly 28px, drawer durations on tabular figures, kill action revealed on hover/focus without shifting the row, no horizontal overflow at 360px. - Task window: the markdown body is pulled onto the page scale (12px body, 12/13px headings, tightened list indent and paragraph spacing) while the shared MarkdownText/markdownTextProps contract is untouched. - Cleanup: dead stylesheet rules, unused TSX exports and helpers, stale comments that still described the retired Variant-D canvas, zero-reference i18n keys across the dictionaries, and the Tailwind/shadcn/Variant-D narrative in the design doc, AGENTS.md and the plugin guide (kept as one short "why it was rolled back" section). Verified here: typecheck and lint clean; 133 files / 1413 tests; build with no radix-ui or --tw- strings in lib/client.js (988.9 KiB); the 70-assertion real-browser contract at 70/70 with the 20 reference screenshots regenerated; mount e2e 7/7.
This commit is contained in:
@@ -1,15 +1,16 @@
|
||||
/**
|
||||
* Graph-only styles of the workflow graph (TasksGraph.tsx) — the two pieces
|
||||
* the page sheet (tasks-graph.module.css) does not carry:
|
||||
* tasks-graph.module.css does not carry:
|
||||
*
|
||||
* - the card title, clamped to TWO lines (the 68px card reserve in
|
||||
* tasks-graph-layout.ts is sized for that second line: a single ellipsized
|
||||
* line left too few CJK characters to tell two siblings apart), and
|
||||
* - the card title, clamped to TWO lines (the card reserve in
|
||||
* tasks-graph-layout.ts is sized for exactly that clamp and for the token's
|
||||
* 18px title line: a single ellipsized line left too few CJK characters to
|
||||
* tell two siblings apart), and
|
||||
* - the hydration hint drawn over an empty canvas.
|
||||
*
|
||||
* Everything else the graph wears (the dotted canvas, the bezier edges, the
|
||||
* node cards, the control cluster) stays in the page sheet — one source of
|
||||
* truth per rule.
|
||||
* node cards, the control cluster) stays in tasks-graph.module.css — one source
|
||||
* of truth per rule.
|
||||
*
|
||||
* Skin contract: colors resolve to `--dsw-alias-*`, type to `--dsw-font-*` —
|
||||
* tokens only, no literal, no palette class, no shadow on a static panel.
|
||||
@@ -18,8 +19,11 @@
|
||||
/* Card line 1 of an agent / run node. `-webkit-box` + `-webkit-line-clamp` is
|
||||
* the only way to cap WRAPPED text with an ellipsis, and `overflow-wrap:
|
||||
* anywhere` keeps an unbroken run id from forcing one wide line. The recipe
|
||||
* mirrors the page sheet's node title (12px strong) so only the truncation
|
||||
* differs; the untruncated text stays in the element's `title`. */
|
||||
* mirrors the tree row title in tasks-graph.module.css (12px strong) so only
|
||||
* the truncation differs; the untruncated text stays in the element's `title`.
|
||||
* The clamp count and the token's 18px line are PAIRED with the layout's
|
||||
* `NODE_TITLE_LINES` / `NODE_TITLE_LINE_H`: the card reserves that block, so
|
||||
* changing either side alone leaves the card taller or shorter than its box. */
|
||||
.nodeTitle {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
@@ -33,7 +37,7 @@
|
||||
}
|
||||
|
||||
/* The fold aggregate carries a count, not a name: it recedes one rung in both
|
||||
* weight and ink (the page sheet's plain title). */
|
||||
* weight and ink (the plain-ink node title). */
|
||||
.nodeTitlePlain {
|
||||
font: var(--dsw-font-xxs-12);
|
||||
color: var(--dsw-alias-label-secondary);
|
||||
|
||||
Reference in New Issue
Block a user