Contributing

Cedar is an open source, cooperative design system. Good ideas can come from anyone, and everyone at REI Co-op is welcome to add to Cedar’s growth. Your contributions make Cedar stronger for all users—we encourage your perspectives and input!

Sustainably growing the system

Help Cedar grow by adding to the system in a variety of ways:

  • Suggesting an addition or change to an existing component
  • Creating a new icon, token or component
  • Fixing a bug, whether it’s in Cedar’s design, code or documentation
  • Providing an accessibility improvement to an existing component
  • Suggesting documentation edits or additions that strengthen our guidance
  • Adding a new brand color variant or interaction animation
  • Removing a token no longer in use
  • Sharing ideas for process improvements within the Cedar ecosystem
  • Providing a new pattern for others to reuse

Incentives

Around here, we love the outdoors. That’s why we align our system’s growth with growth in the outside world too. For each contribution from the community, we’ll plant trees on your behalf via donations to American Forests. By helping Cedar grow, you’re also helping protect the outdoors. Pretty neat, huh?

We also donate trees based on your participation using the system. Find out more by reading about Cedar’s purpose.

We have extended guidance for contributing tokens, icons and components. If you’re unsure of next steps, don’t hesitate to reach out to the team.

Bug fixes

A bug is an issue you may find in Cedar’s code, design or documentation. We’re committed to maintaining a consistent, quality product. Post about any issues you find on #cedar-user-support or come and talk to us during our weekly office hours. For external contributors, email us at cedar@rei.com.

What to expect:

  • Include as much relevant information as possible when submitting a bug report, including steps to reproduce, urgency and impact to help us prioritize
  • If the bug is present on a try server or branch it is especially helpful to include those links so we can quickly assess the issue
  • The team will address the bug as soon as possible, depending on the severity of the issue and our current workload

Alternatively, if you have an idea for how to fix a bug, we welcome your work. Either create an issue in GitHub or reach out in the #cedar-user-support  Slack channel so we can work with you on it.

When you have an idea for a new component design, icon and more, keep these core principles in mind to create durable solutions that can be easily shared and maintained:

Unified

Build trust with customers and improve overall usability by creating consistent styles and interactions across channels. Designing with unity and consistency allows our visual language to scale across an omnichannel experience.

Intentional

Quality over quantity. Be deliberate about how you approach creating, building, documenting and maintaining components.

Flexible

Provide options for a component to work under a range of circumstances. The design should be flexible enough to support different scenarios, while still specific enough to be useful.

Extensible

Design to allow the addition of new capabilities or functionality. Create forward-compatible solutions that can be reused and extended in the future to make maintenance easier and help support speed to market.

Accessible

Accessibility is at the core of how we design usable experiences for all. Every design, asset, and piece of code should meet or exceed WCAG 2.1 AA accessibility standards, and should include guidance for any necessary implementation details.