feat: add skeleton#891
Merged
georgewrmarshall merged 5 commits intoFeb 20, 2026
Merged
Conversation
e5cb133 to
2fea3bd
Compare
brianacnguyen
previously approved these changes
Feb 17, 2026
Contributor
|
@kirillzyusko can you help resolve the cursor comments? |
brianacnguyen
previously approved these changes
Feb 19, 2026
df31c81 to
3f0fe4f
Compare
georgewrmarshall
approved these changes
Feb 20, 2026
| @@ -0,0 +1,2 @@ | |||
| export { default as Skeleton } from './Skeleton'; | |||
Contributor
There was a problem hiding this comment.
This should be a named export I'll update in a future PR
| }); | ||
|
|
||
| afterEach(() => { | ||
| jest.useFakeTimers('legacy'); |
Contributor
There was a problem hiding this comment.
Test cleanup uses wrong timer restoration method
Low Severity
The afterEach calls jest.useFakeTimers('legacy') instead of jest.useRealTimers(). Every other animation-related test in the codebase (Checkbox, Toast) uses jest.useRealTimers() for cleanup. Calling useFakeTimers('legacy') doesn't restore real timers — it switches to a different fake timer implementation, which is not the intended cleanup behavior and is inconsistent with the established codebase pattern.
georgewrmarshall
added a commit
that referenced
this pull request
Feb 20, 2026
## Summary Reverts the failed Release 20.0.0 (#921) to redo it properly with complete changelogs and correct yarn.lock. ## Context Release 20.0.0 was merged to main but the publish workflow failed due to a yarn.lock issue: - **Failed workflow:** https://github.com/MetaMask/metamask-design-system/actions/runs/22198282954 - **Root cause:** yarn.lock not updated when peer dependency changed After the release was merged, 7 additional PRs were merged to main: 1. Label component (#907) 2. HeaderBase component (#902) 3. Skeleton (#891) 4. Card (#923) 5. BottomSheetFooter (#899) 6. Toast (#892) 7. Input component (#909) ## Why Revert? To maintain clean version history and proper changelogs: - Release 20.0.0 was never published to NPM (latest is 19.0.0) - The 7 PRs merged after are not documented in Release 20.0.0 changelog - Reverting allows us to create a proper Release 20.0.0 that includes ALL changes ## Changes This PR reverts commit `45004196` which: - Restores package versions to pre-release state (8.1.1, 0.7.0, 0.6.0, etc.) - Restores root package.json version from 20.0.0 to 19.0.0 - Removes Release 20.0.0 changelog entries ## Next Steps After this is merged: 1. Create new `release/20.0.0` branch using standard release process 2. Include all changes (original + 7 PRs) in changelogs 3. **Run `yarn install` to update yarn.lock** 4. Merge new Release 20.0.0 PR 5. Publish workflow will succeed with correct lockfile 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
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
Added
Skeletoncomponent.Important
I didn't use
process.JESTandisE2Evariables. Instead I addedautoPlayprop. This prop must be pre-configured in client apps.Related issues
Fixes: https://consensyssoftware.atlassian.net/browse/DSYS-274
Manual testing steps
Screenshots/Recordings
Before
After
Simulator.Screen.Recording.-.iPhone.17.Pro.-.2026-02-10.at.15.37.12.mov
Pre-merge author checklist
Pre-merge reviewer checklist
Note
Low Risk
Adds a new UI component and related Storybook/docs/tests with minimal impact on existing behavior; primary risk is animation/timer behavior differences across client apps when
autoPlayis enabled.Overview
Adds a new
Skeletonloading placeholder component todesign-system-react-native, including pulsing opacity animation, optional fixed/string dimensions, Tailwind styling viatwClassName, and support for rendering children either normally or invisibly viahideChildrenwhile disabling interactions/accessibility.Exports
Skeleton/SkeletonPropsfrom the component index, adds Storybook stories (and registers them in the Storybook app), and includes README documentation plus a comprehensive test suite covering props passthrough, styling, children behavior, andautoPlayanimation control.Written by Cursor Bugbot for commit bc1608f. This will update automatically on new commits. Configure here.