Thank you for your interest in contributing to the Coinbase Design System! While we are not actively soliciting contributions, we welcome issue reports and are open to reviewing pull requests from the community.
If you encounter a bug, have a feature request, or notice something that could be improved, please open an issue. Include a clear description, steps to reproduce (for bugs), and screenshots if applicable.
- Fork the repository
- Follow the README setup instructions
- Setup a GPG key for signing commits
CDS is a cross-platform library with separate implementations for web and mobile. When fixing bugs or adding features, check if your changes apply to both platforms. See all available packages.
When making changes:
- Update documentation if appropriate
- Update Storybook if there are visual changes
- Add or update tests
Before creating a PR, run the following for each package you modified:
# Run tests
yarn nx run <project>:test
# Type check
yarn nx run <project>:typecheck
# Lint
yarn nx run <project>:lint
# Format all files
yarn nx format:write- Ensure your fork is up to date with the upstream
masterbranch - Create a new branch from
masterfor your changes - Push your branch to your fork
- Open a pull request from your fork's branch to
coinbase/cds:master - Fill out the PR template completely
For detailed instructions, see GitHub's guide on creating a pull request from a fork.
PR titles must follow Conventional Commits format:
<type>(<scope>): <description>
Examples:
feat: add new Button variantfix: resolve ListCell tap handler issue on mobilechore: update dependencies
Fill out the pull request template completely, including:
- What changed and why
- Before/after screenshots for UI changes
- How it was tested (unit tests, manual testing on web/iOS/Android)
Before requesting review, update the version and changelog:
Use the Versioning section in README when choosing whether a change is major, minor, or patch.
# Update changelog and bump version
yarn bump-versionThe tool will prompt you for:
- Changed package (web, mobile, common, etc.)
- Type of change (breaking, update, fix, etc.)
- Changelog message
- PR number
You will do this for each package you have modified.
Then run the release command to keep unmodified package versions in sync (such as cds-common):
yarn releaseRequest a review from a maintainer, who will trigger CI and review your changes.
Thank you for contributing to CDS! If you have questions, feel free to open an issue for discussion.