feat(dsr): add Content React parity (DSYS-1043) - #1436
Draft
cursor[bot] wants to merge 2 commits into
Draft
Conversation
Add design-system-react Content matching the shared ContentVariant API and React Native consumer props, implemented with a flatter Box + Text / SensitiveText layout (no BoxRow/BoxColumn/TextOrChildren). Co-authored-by: George Marshall <georgewrmarshall@users.noreply.github.com>
Contributor
📖 Storybook LinksCompare the preview for this pull request with the latest Storybooks from the 🔀 Pull Request Preview
🌳 Main Branch (Latest)
|
Comment on lines
+10
to
+13
| ### Added | ||
|
|
||
| - Added `Content` for inner list-row layout (avatar, title, description, value, subvalue) with shared `ContentVariant` API parity to React Native ([DSYS-1043](https://consensyssoftware.atlassian.net/browse/DSYS-1043)) | ||
|
|
Contributor
There was a problem hiding this comment.
@cursoragent we should never update the changelog outside of the release process
Contributor
Author
There was a problem hiding this comment.
I’ve removed the CHANGELOG edits per policy.
- Deleted the “Added → Content” entry under
## [Unreleased]inpackages/design-system-react/CHANGELOG.md. - Committed and pushed to
cursor/react-parity-from-mobile-c4d1with message: “chore(dsr): remove CHANGELOG edits; changelog is maintained during release”.
No other files were changed.
…lease Co-authored-by: George Marshall <georgewrmarshall@users.noreply.github.com>
Contributor
📖 Storybook LinksCompare the preview for this pull request with the latest Storybooks from the 🔀 Pull Request Preview
🌳 Main Branch (Latest)
|
This was referenced Aug 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Description
Adds React (
@metamask/design-system-react) Content parity for epic DSYS-302 / DSYS-1043, matching the existing React Native + sharedContentVariantconsumer API.Implementation follows the flatter parity strategy: direct
Box+ leafText/SensitiveText(no ReactBoxRow/BoxColumn/TextOrChildren). Shared types already existed; this PR only adds the React platform layer, stories, tests, and docs.Audit comparison (Phase 1)
Contentincomponent-library. Nearest analogues: legacyui/components/ui/list-item(title,subtitle,icon,rightContent) and product rows likeTokenListItem(title,primary,secondary,privacyMode)Contentwithvariant,avatar,title/description/value/subvalue+ inline accessoriesContentname in DSR; Extension list-item variants are differently named consumerssubtitle,rightContent,icon,midContentdescription,value/subvalue,avatar,*StartAccessory/*EndAccessoryContentconsumers)list-item--single-content-row); no shared variant enumContentVariant(one-line/two-lines/multi-line)ContentVariantSensitiveText/privacyModein product rowsdescriptionProps/valueProps/subvaluePropssupportisHidden/lengthviaSensitiveTextSensitiveText; title usesTextonClickon interactive list shellsclassNametwClassNameclassNameon React)Answers
variant, slots, accessories. Platform:className/style, ReactBox/Text/SensitiveTextprop bags. DOMtitleomitted fromBoxPropsso Contenttitle?: ReactNodewins.subtitle→ MMDSdescription; nodisabled/isDisabledon Content.Content. Extension counterparts are differently named list-item variants, not a drop-in rename.Known gaps
ListItem(DSYS-713) still outstanding; Content docs note ListItem as the padded shell once available on React.BoxRow/BoxColumn/TextOrChildrenwere introduced (intentional).Related issues
Fixes: DSYS-1043 (parent epic DSYS-302)
Manual testing steps
yarn storybook(port 6006)isHidden)Screenshots/Recordings
Before
N/A — React
Contentdid not exist.After
Storybook Default (shell):
Content Default story in Storybook
Default iframe (light + dark):
Content Default light and dark
Variant story (OneLine / TwoLines / MultiLine):
Content Variant stories
Subvalue story:
Content Subvalue story
Avatar story:
Content Avatar story
Value Props (
isHidden):Content ValueProps hidden masking
Pre-merge author checklist
Pre-merge reviewer checklist
To show artifacts inline, enable in settings.