Skip to content

feat(cds-android): port Button to Compose and add RN-to-Compose skill - #877

Draft
cb-ekuersch wants to merge 4 commits into
masterfrom
cursor/android-button-port-rn-to-compose-skill
Draft

feat(cds-android): port Button to Compose and add RN-to-Compose skill#877
cb-ekuersch wants to merge 4 commits into
masterfrom
cursor/android-button-port-rn-to-compose-skill

Conversation

@cb-ekuersch

Copy link
Copy Markdown
Contributor

What changed? Why?

Ports the CDS mobile Button to a public Jetpack Compose implementation in packages/cds-android, including shared interaction affordances (CdsInteractionDefaults), Robolectric behavior tests, demo gallery coverage, and package docs.

Also adds the cds-rn-to-compose agent skill to guide future React Native → Compose ports and audits, with discovery/audit checklists, CompositionLocal theming guidance, and a living learnings log.

Root cause (required for bugfixes)

N/A — feature work.

UI changes

iOS Old iOS New
N/A N/A
Android Old Android New
Sample controls in demo app Public CDS Button with variants, states, icon slots, and gallery section
Web Old Web New
N/A N/A

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

yarn nx run cds-android:test
yarn nx run cds-android:build
yarn nx run android-app:build

With an emulator or device connected:

yarn nx run android-app:launch

Verify Button variants, transparent mode, disabled/loading states, icon slots, and full-width layout in the demo app gallery.

Illustrations/Icons Checklist

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

N/A

Change management

type=routine
risk=low
impact=sev5

automerge=false

Made with Cursor

Ship public Button and shared interaction primitives with Robolectric tests, gallery coverage, and docs. Add cds-rn-to-compose skill to guide future mobile-to-Android ports and audits.

Co-authored-by: Cursor <cursoragent@cursor.com>
@cb-heimdall

Copy link
Copy Markdown
Collaborator

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 1
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1
CODEOWNERS 🟡 See below

🟡 CODEOWNERS

Code Owner Status Calculation
ui-systems-eng-team 🟡 0/1
Denominator calculation
Additional CODEOWNERS Requirement
Show calculation
Sum 0
0
From CODEOWNERS 1
Sum 1

Route unmatched documentation to a Format Docs job so Android-only PRs are not blocked by Node format and bundle-stats.

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions github-actions Bot added the docs label Sep 8, 2026
cb-ekuersch and others added 2 commits September 9, 2026 09:19
Run tools:format from root CI on JS/TS/JSON/Markdown so docs and skills are checked without starting Node CI, and drop format from the Node workflow.

Co-authored-by: Cursor <cursoragent@cursor.com>
Move component demos off monolithic home scrolls to prepare for visreg and
Maestro flows, and extend the RN-to-Compose skill with testTag guidance.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

2 participants