We know that Primer isn't going to always have exactly what you want when designing a new feature. Explorations done by our product designers are what help us innovate and create components to solve problems that the Primer maintainers haven't considered yet. The Primer maintainers may incorporate those ideas by balancing that work with our bigger strategic initiatives to mature Primer.
We strongly prefer design patterns that are consistent and can be reused for other features, but there is room for patterns that aren't meant to be reused. Our goal isn't to only build a UI from existing components, it's to help all users complete tasks in the most efficient and pleasant way possible. As long as what you ship is accessible, visually consistent, and high-quality: go for it.
Signs that your new component isn't ready to be shared outside of your app:
GitHub's designers come up with innovative ways to solve difficult problems. Our teams and our products will be stronger if we make our good work available for others, even if it's not through Primer.
There's a long process to vet something into Primer, and we understand how that doesn't always work with your team's deadlines to ship features. Instead of trying to add your new pattern directly into Primer you can start by focusing on how it works for the use-cases your team identified and share it for other designers to try out in their work.
Signs that your component is a good candidate for sharing:
Your team is responsible for maintaining the new pattern (unless it gets upstreamed to Primer), but you can always come to Primer for feedback.
For more information about piloting new components outside of Primer, read the guidance about the on-ramp from product to Primer.
Primer intentionally has a high barrier to entry. We want our consumers to be confident that anything they use from Primer is ready to be used in production. Of course, we want to mature Primer as long as it's the right time to make the investment required to add a new component.
Signs that you should add directly to Primer:
If you know your project is going to need support from Primer maintainers, it's best to come to us as early as possible. We can't design or build quality design patterns to unblock you at the last minute.
For more information about introducing new components to Primer, read the guidance about upstreaming components and adding components directly to Primer.
The "pattern proposal issue" referenced in the flowchart can be found here: Primer pattern proposal (GitHub staff only).