Skip to content

fix(core): align TreeList guides to chevrons - #8774

Merged
rubyycheung merged 3 commits into
mainfrom
ruby/align-treelist-guides
Oct 30, 2026
Merged

rubyycheung merged 3 commits into
mainfrom
ruby/align-treelist-guides

Conversation

@rubyycheung

Copy link
Copy Markdown
Contributor

User impact

TreeList hierarchy guides align to the center of each expand/collapse chevron without shifting the interactive control. Labels remain in their existing position, and showing or hiding guides does not move the chevron.

Visual authority

  • Durable component-local intent added to the optional Design decisions table by a team design owner: component:TreeList DD4.

Before and after

Matched Chromium capture of Core/TreeList/Fully Expanded, lineGuides, light mode, 480 × 520 CSS px at 2× device scale.

Before After
Before: guides and chevrons are moved four pixels inward After: chevrons stay in their natural column and guides align to their centers

The label column is unchanged. The visible four-pixel movement is the chevron and its aligned guide moving to the chevron's natural column.

State matrix

  • lineGuides: guide centers equal chevron centers at every visible depth.
  • noGuides: chevron centers are identical to lineGuides.
  • LTR and RTL: chevrons have zero logical-start compensation and guides remain centered.
  • Existing hover, selection, focus, label spacing, and row geometry remain unchanged.

Scope

  • Appearance is the primary intent.
  • Behavior, API, interaction model, and unrelated layout changes were removed or split.
  • The evidence shows the changed pixels actively running, not only source or computed styles.
  • Public text and artifacts contain no internal Meta context.

Writing rubric results

R1 narration: none; DD4 states the component's present-tense visual contract.
R2 research: none in the record; browser measurements remain test and pull-request evidence.
R3 evidence: the verification row names the real-browser test and measured contract, not a change reference.
R4 rejected alternatives: none.
R5 change references: none.
R6 open questions: none.

Testing

  • TreeListGuideAlignment.interaction.browser.spec.ts in real Chromium: 3/3 passed for LTR, RTL, and guide visibility. The two natural-column cases fail against main with the existing 4 px chevron compensation.
  • pnpm exec vitest run packages/core/src/TreeList/TreeList.test.tsx --project ui: 105/105 passed.
  • pnpm -F @astryxdesign/core typecheck: passed.
  • pnpm -F @astryxdesign/core build: passed.
  • pnpm storybook:build: passed.
  • pnpm check:knowledge, pnpm check:changesets, pnpm check:sync, ESLint, Prettier, and git diff --check: passed.
  • Component size, gzip base → head:
    • TreeList: JS 39,599 → 39,605 B (+6 B); CSS 4,781 → 4,754 B (-27 B).
    • PowerSearch reverse dependent: JS 168,690 → 168,685 B (-5 B); CSS 20,361 → 20,332 B (-29 B).

@vercel

vercel Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
astryx Ready Ready Preview Oct 30, 2026 5:09pm UTC

Request Review

@astracat-bot

astracat-bot Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

AI review status for this pull request.

Review status Updated
❓ Needs maintainer input (for maintainers only) Oct 30, 2026, 6:20 PM UTC

@github-actions github-actions Bot added needs:code-review High-risk change (new package/component/API) — needs human code review before merge needs:spec-owner-review Current knowledge records await owner approval labels Oct 28, 2026
@github-actions

github-actions Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

PR Analysis Report

📚 Storybook Preview

View Storybook for this PR

🧪 Sandbox Preview

View Sandbox for this PR

Modified Components

TreeList (@astryxdesign/core) · View in Storybook
Metric Before After Delta
Entry File (ESM) 648B 648B 0B
Lines of Code 1068 1065 -
Complexity Very High Very High (137) -

Component Size

Component Import before Import after Delta CSS before CSS after Delta
core/PowerSearch 168.0KB 168.0KB +5B 20.1KB 20.0KB -29B
core/TreeList 41.2KB 41.2KB +3B 4.8KB 4.8KB -31B

Sizes are gzip. Import counts the JavaScript the import loads eagerly; CSS counts the package stylesheet rules referenced by the modules it can load from its own package, lazily loaded ones included.

Bundle Size Summary

Gzip figures measure each package's entry file, not the code an import pulls in.

Package Entry (ESM) Entry gzip before Entry gzip after Delta
@astryxdesign/core 4.9KB 1.2KB 1.2KB 0B
Package stylesheet Gzip before Gzip after Delta
@astryxdesign/core 35.4KB 35.4KB 0B

Accessibility Audit

Status: The accessibility audit did not run on this pull request. It runs after merges to main and before each release; pull requests that touch components run it with the ci:heavy-lanes label.


Generated by PR Enrichment workflow | Storybook | Sandbox | View full report

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Meta Open Source bot. label Oct 28, 2026

@astracat-bot astracat-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This pull request needs an owner decision before it can be approved. The new component:TreeList DD4 design decision and its verification row are what authorize moving every chevron and guide 4px toward the row's inline start, and neither is approved for this head yet. An engineering owner records that decision by commenting /approve-spec <full head SHA> on this pull request; the author may do so if they are an engineering owner. Separately, the changeset needs to follow spec:AST-017 FR3: use [feat] for this intentional visual change and state the old and new appearance (chevrons and guides 4px closer to the row's start, the chevron-to-label gap widening from 4px to 8px, labels unchanged).

[Automated review]

Comment thread .changeset/tree-list-guide-alignment.md Resolved
@liyalabubu liyalabubu self-assigned this Oct 28, 2026
@github-actions github-actions Bot removed needs:spec-owner-review Current knowledge records await owner approval needs:code-review High-risk change (new package/component/API) — needs human code review before merge labels Oct 28, 2026
@rubyycheung rubyycheung reopened this Oct 28, 2026
@rubyycheung rubyycheung reopened this Oct 28, 2026

@astracat-bot astracat-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This pull request needs an owner decision before it can be approved: the new component:TreeList DD4 design decision and its verification row are what authorize moving every chevron and guide 4px toward the row's inline start, and the engineering-owner approval they received applied to an earlier commit, so it does not cover the current head. An engineering owner records that decision again, or rejects it, by commenting /approve-spec <full head SHA> on this pull request; the author may do so if they are an engineering owner. Nothing else blocks: labels, row geometry, theme targets and RTL mirroring are unchanged, the new browser test passes, and the changeset follows the release rules for an intentional visual change.

[Automated review]

@rubyycheung
rubyycheung enabled auto-merge (squash) October 29, 2026 00:36
@rubyycheung
rubyycheung force-pushed the ruby/align-treelist-guides branch from 71b4c84 to e512ed5 Compare October 29, 2026 00:38
auto-merge was automatically disabled October 29, 2026 00:59

Pull request was closed

@rubyycheung rubyycheung reopened this Oct 29, 2026

@astracat-bot astracat-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This pull request needs an owner decision before it can be approved: the new component:TreeList DD4 design decision and its verification row are what authorize moving every chevron and guide 4px toward the row's inline start, and the engineering-owner approval they received applied to an earlier commit, so it does not cover the current head after the rebase. An engineering owner records that decision again, or rejects it, by commenting /approve-spec <full head SHA> on this pull request; the author may do so if they are an engineering owner. Nothing else blocks: labels, row geometry, theme targets and RTL mirroring are unchanged, the new browser test passes on this head and catches the old chevron margins, and the changeset follows the release rules for an intentional visual change.

[Automated review]

@rubyycheung

Copy link
Copy Markdown
Contributor Author

/approve-spec 9173976

@github-actions github-actions Bot added needs:code-review High-risk change (new package/component/API) — needs human code review before merge needs:spec-owner-review Current knowledge records await owner approval labels Oct 30, 2026

@astracat-bot astracat-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This pull request needs an engineering owner's decision before it can be approved: the new component:TreeList DD4 design decision and its verification row are what authorize moving every chevron and guide 4px toward the row's inline start, and because the same edit changes both the Design decisions table and the Verification map, it needs exact-head approval from a design owner and from an engineering owner. The /approve-spec already posted for this head covers the design side; an engineering owner records the remaining decision, or rejects it, by commenting /approve-spec <full head SHA> on this pull request, and the author may do so if they are an engineering owner. Nothing else blocks: labels, row geometry, theme targets and RTL mirroring are unchanged, the new browser test passes on this head and catches the old chevron margins, and the changeset follows the release rules for an intentional visual change.

[Automated review]

@github-actions github-actions Bot removed needs:code-review High-risk change (new package/component/API) — needs human code review before merge needs:spec-owner-review Current knowledge records await owner approval labels Oct 30, 2026
@rubyycheung
rubyycheung merged commit 1c1d0ea into main Oct 30, 2026
66 of 70 checks passed
@github-actions
github-actions Bot deleted the ruby/align-treelist-guides branch October 31, 2026 06:09

This branch was successfully deployed

1 active deployment
Preview — 91739765 Deployed Oct 30, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Meta Open Source bot.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants