Skip to content

Harryhao/cds 1513 consolidate listcell border props#352

Open
haoruikun-cb wants to merge 13 commits intocds-v9from
harryhao/cds-1513-consolidate-listcell-border-props
Open

Harryhao/cds 1513 consolidate listcell border props#352
haoruikun-cb wants to merge 13 commits intocds-v9from
harryhao/cds-1513-consolidate-listcell-border-props

Conversation

@haoruikun-cb
Copy link
Contributor

What changed? Why?

Updated Cell border handling so all border-related props are applied to the same inner container as borderRadius (web + mobile), and added focused border customization stories for both platforms. This resolves a customer-reported issue where borders were hard to configure because bordered applied to the outer Box while borderRadius applied to the inner Pressable, causing inconsistent results (see conversation: https://coinbase.slack.com/archives/C05H922EYP7/p1768246943588929).

Refactored Interactable to accept responsive borderColor and added coverage for breakpoint-based resolution. This improves Interactable/Pressable parity with other responsive props and makes border styling consistent across breakpoints.

Root cause (required for bugfixes)

UI changes

iOS Old iOS New
old screenshot image
Android Old Android New
old screenshot new screenshot
Web Old Web New
old screenshot image

Testing

How has it been tested?

  • Unit tests
  • Interaction tests
  • Pseudo State tests
  • Manual - Web
  • Manual - Android (Emulator / Device)
  • Manual - iOS (Emulator / Device)

Testing instructions

Illustrations/Icons Checklist

Required if this PR changes files under packages/illustrations/** or packages/icons/**

  • verified visreg changes with Terran (include link to visreg run/approval)
  • all illustration/icons names have been reviewed by Dom and/or Terran

Change management

type=routine
risk=low
impact=sev5

automerge=false

stacysun-cb and others added 13 commits January 22, 2026 14:08
* Fixed spacing props not working on web Button

* minor fix

* release
…Combobox>` (#250)

* Add default prevention escape to FocusTrap and support selecting value with Tab in Select

* Change default a11y labels

* Update select controls to announce control label and selected value or placeholder

* Update stories to use more cleary custom a11y labels

* Remove unnecessary usage of a11y hint prop

* Update tests

* Update behavior of a11y labels for combobox

* Update stories

* Update tests

* Fallback to using label or default string for a11y labels

* Update Tab key press so it only closes menu and doesn't select vlaue

* Fix combobox lint error

* Add fallback a11y labels to Combobox

* Update a11y example for docs

* Move default labels back into props params

* Add fallbacks to props param for Combobox

* Update changelogs
* fix(RadioCell): remove duplicate tab target by using Interactable instead of Pressable

The RadioCell component had two focusable elements in the tab order: the outer
Pressable label wrapper and the inner radio input. This created duplicate tab
targets for screen reader and keyboard users.

By switching from Pressable to Interactable, the label wrapper is no longer
added to the tab order (since labels aren't natively tabbable and Interactable
doesn't add tabIndex). The inner radio input remains the sole tab target, and
the existing :focus-within CSS still shows the focus ring on the container.

Fixes CDS-1170

* chore(web): bump version to 8.38.6

* chore: align all package versions to 8.38.6

* fix(RadioCell): use tabIndex={-1} instead of Interactable to fix duplicate tab target

Reverts the Interactable approach in favor of keeping Pressable with tabIndex={-1}.
This removes the outer label wrapper from the tab order while maintaining parity
with mobile and avoiding a breaking change for consumers.

The inner radio input remains the sole tab target, and the existing :focus-within
CSS still shows the focus ring on the container.

Fixes CDS-1170

* Update CHANGELOG.md
* feat: chart legend

* Add hideBeaconLabels

* Support custom components on bar chart

* Update docs

* Update combobox routes

* Bump version

* Bump ui-mobile-playground version

* Improve example accessibility

* Simplify creation of legend and add a11y label

* Add mobile example

* Fix spread issue to dom

* Update changelog

* Fix changelog

* Update web changelog

* Improve types

* Drop shape wrapper

* Change LegendItem to LegendEntry

* Reuse root box props

* Lint

* Fix lint

* Bump version
* fix: make custom beacon chart stable in visreg

* Reuse sample data
* feat: draft carousel looping on web

* Fix page change through loop

* wip

* Finish web implementation

* Remove unused code

* Fix flicker

* Update mobile and tests/docs

* Simplify clone count calculation

* Use callback for onGoNext/Prev

* Drop gap from clone calculations

* Simplify logic for looping

* Simplify cloning

* Fix storybook

* Support isVisible

* Bump version

* Return item offsets early and simplify isLoopingActive logic
* fix: support padded tabs

* Add stories

* Update tests

* Simplify logic on mobile

* Bump versions

* Bump version
* add token manager logo

* release
@linear
Copy link

linear bot commented Jan 30, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

6 participants