# Contributing components

Source: https://design.ritchiebros.com/contributing/components/

Bug fixes, prop enhancements, and new components all help Orbit serve teams building the auction marketplace. Start planning early so the scope fits your timeline.

## Before you start

Component contributions usually fall into three buckets: bug fixes (from a typo to a performance or accessibility refactor), enhancements (adding or updating props to extend a component), and new patterns (a new example, component, or utility). Many contributions mix several of these.

Start a discussion with the Orbit team as early as possible to align on strategy. Once you’ve decided on the best way to solve the problem, open a feature proposal or bug report, then contribute the change with a pull request.

Changes to a component’s code often affect its documentation and the Figma UI Kit — plan to update all three together.

## Update props

Updating or adding props is the most common way to make a component more flexible. Components should stay performant, accessible, and maintainable, so when changing a prop, ask how your change might:

- Stay backwards compatible.
- Increase or maintain performance.
- Improve or maintain accessibility.
- Address a real pain point for the people using the interface.
- Reduce the complexity of the source code.

## How to add or update a prop

- Align on whether to add a new prop or update the types of an existing one.
- Submit or assign yourself to a feature proposal.
- Add your change to the props interface.
- Include or update the description comment.
- Update the default value where relevant.
- Add tests to cover the changes.
- Add examples to the component’s documentation.
- Commit your changes and open a pull request.

## Fix a bug

Bug fixes are high-impact contributions that keep Orbit reliable. There’s a bug report open for every level of experience — if you’re just getting started, look for issues that are labeled a good first issue, not yet assigned, and haven’t been updated in two or more weeks.

- Submit or assign yourself to a bug report.
- Assess the time and difficulty of finding and fixing the problem code.
- If the fix is too complex to finish, that’s okay — document your findings in the issue, link the affected lines, update the difficulty label, and unassign yourself so the next person can pick it up.
- If you reach a solution, note it on the issue, commit your changes, and open a pull request.

## Add or improve a component

When improving the look, feel, or experience of a component, prioritize accessibility, check established ARIA authoring patterns for the interaction, and consider whether a component solving too many problems should be broken into smaller, composable pieces.

A large number of props is a signal that a component is doing too much. When that happens, there’s often an opportunity to refactor it — or build a smaller component it can be composed from — so the system stays easy to maintain.

**Do:** Favor composition — smaller components that combine — over one component with many configuration props.

**Don’t:** Keep bolting props onto a component that’s already trying to solve too many problems.
