Skip to content

UI patterns

Button usage

Buttons are a fundamental building block of the GitHub UI. These guidelines summarize how to use buttons across the product.

Empty states

Empty states are used to fill spaces when no content has been added yet, or is temporarily empty due to the nature of the feature. These guidelines demonstrate best practices for using the blankslate component and designing empty states.

Feature onboarding

Onboarding is a virtual unboxing experience that helps users get started with a feature. This is a guide for designing onboarding for the product and does not include what to do for marketing pages, email announcements, social media, etc.


Messaging components are used to provide important and relevant information to the user, including feedback, contextual information, product updates, and more. Primer includes three different messaging components: toasts, flash alerts, popovers.

Progressive disclosure

These guidelines summarize how to use progressive disclosure, as well as guiding principles, best practices, and implementation support.


Saving and submitting data is critical to task completion. Use these guidelines to ensure your workflows are consistent and accessible.