Skip to content

fix(ScrollableArea): touch screens keep the platform's scroll indicator - #8372

Merged
cixzhang merged 3 commits into
mainfrom
fix/scrollable-area-touch-indicator
Oct 25, 2026
Merged

cixzhang merged 3 commits into
mainfrom
fix/scrollable-area-touch-indicator

Conversation

@cixzhang

@cixzhang cixzhang commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Supersedes #8319.

User impact

On touch screens, a person scrolling a ScrollableArea saw a faint neutral bar in place of the platform's own scroll indicator: hard to see while scrolling, and visible in the gap a pull-to-refresh opens. Under a coarse primary pointer the viewport now leaves scrollbar-color at auto, so iOS draws its own indicator, only while scrolling. Mouse and trackpad scrollbars keep the neutral thumb.

Change

  • ScrollableArea's viewport sets scrollbarColor: auto under @media (pointer: coarse); the component record's FR3 says so.
  • One test pins the coarse-pointer value; a [feat] patch changeset that says how to keep the neutral colour (scrollbarColor through xstyle).

This carries only the ScrollableArea commit from #8319 (authored by @vjeux), on current main, without the unrelated commits that branch was stacked on.

Writing rubric results

R1 narration: FR3's new clause is present tense; none found.
R2 research: none in the record.
R3 evidence: no basis cell changed.
R4 rejected alternatives: none.
R5 change references: none.
R6 open questions: none.

Testing

  • ScrollableArea, Table and CodeBlock tests pass; typecheck, lint, changeset and knowledge checks pass.

Co-authored-by: Christopher Chedeau vjeuxx@gmail.com

vjeux and others added 2 commits October 24, 2026 22:25
The viewport's neutral scrollbar-color replaced iOS Safari's own scroll
indicator with a faint bar: hard to see while scrolling, and visible in
the gap a pull-to-refresh opens. Under a coarse primary pointer the
viewport now leaves scrollbar-color at auto, so iOS draws its indicator
only while scrolling, as UIScrollView does. Mouse and trackpad scrollbars
keep the neutral thumb; the component record's FR3 says so.
…ollableArea

The note also named Table, CodeBlock and BottomSheet's body as users of
ScrollableArea; it now states only the component the change is in.
@vercel

vercel Bot commented Oct 25, 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 25, 2026 6:19am UTC

Request Review

@github-actions github-actions Bot added the needs:spec-owner-review Current knowledge records await owner approval label Oct 25, 2026
@astracat-bot

astracat-bot Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

AI review status for this pull request.

Review status Updated
🟢 Reviewed (for maintainers only) Oct 25, 2026, 6:49 AM UTC

@cixzhang

Copy link
Copy Markdown
Contributor Author

/approve-spec 6b4986a

@github-actions

github-actions Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

PR Analysis Report

Previews ready: Storybook and Sandbox were built with this PR's docsite. CI evidence will be added when available.

View Storybook for this PR · View Sandbox for this PR

@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.

The touch-screen indicator change itself is ready: the coarse-pointer rule leaves mouse and trackpad rendering unchanged, and the FR3 update is owner-approved at this head. Two text changes are needed before merging:

  • Retag .changeset/scrollable-area-touch-indicator.md as [feat] and add how to keep the old look (setting scrollbarColor through xstyle), because spec:AST-017 FR3 classifies a change that rewrites a component's visual contract as [feat] and asks its changeset to name that escape.
  • Add a ## Writing rubric results section to the description for the ScrollableArea.spec.md edit, as architecture:knowledge-contracts requires; the six lines from #8319 still apply.

[Automated review]

'@astryxdesign/core': patch
---

[fix] On touch screens, `ScrollableArea` keeps the platform's own scroll indicator. Its neutral `scrollbar-color` replaced iOS Safari's indicator with a faint bar that was hard to see while scrolling and also showed in the gap a pull opens; iOS now draws its own indicator, only while scrolling. Mouse and trackpad scrollbars keep the neutral colour.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

spec:AST-017 FR3 uses [fix] for an appearance change only when it restores current visual authority; this one rewrites ScrollableArea's FR3, so it is [feat]. FR3 also asks the changeset to say how to keep the old look when a supported escape exists, and one does (ScrollableArea AV1): for example, add "To keep the neutral thumb on touch screens, set scrollbarColor through xstyle."

…s how to keep the old look

The change alters the default look on touch screens, so it is tagged
[feat], and the note says how to keep the neutral colour (set
scrollbarColor through xstyle), per spec:AST-017 FR3.
@github-actions github-actions Bot added the needs:spec-owner-review Current knowledge records await owner approval label Oct 25, 2026
@cixzhang

Copy link
Copy Markdown
Contributor Author

/approve-spec fdefd06

@github-actions github-actions Bot removed the needs:spec-owner-review Current knowledge records await owner approval label Oct 25, 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 looks ready to merge once CI finishes: on touch screens ScrollableArea now leaves the scroll indicator to the platform, mouse and trackpad rendering is unchanged, and the FR3 update is owner-approved for this revision. The [feat] changeset with its xstyle escape and the writing-rubric results in the description cover what the earlier review asked for, so nothing more is needed from you.

[Automated review]

@cixzhang
cixzhang enabled auto-merge (squash) October 25, 2026 06:49
@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Meta Open Source bot. label Oct 25, 2026
@cixzhang
cixzhang merged commit 24ed36d into main Oct 25, 2026
67 checks passed
@github-actions
github-actions Bot deleted the fix/scrollable-area-touch-indicator branch October 26, 2026 06:31

This branch was successfully deployed

1 active deployment
Preview — fdefd067 Deployed Oct 25, 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