Overview
GitHub is the home of open-source code and the place most developers work in every day. Its public pages are drawn in Primer, GitHub's own design system: a white canvas, near-black ink, one blue for links, a green for the main action and thin gray rules between everything. [Observed]
What defines the look:
- Role-named tokens. Every color is named for its job (default text, muted text, accent, success, danger, attention, done), and each has a light and a dark value from the same file. [Measured]
- A green primary button. Create and confirm actions use green
#1f883d, hover#1c8139, white text, 6px corners and a 32px height. Ordinary buttons are#f6f8fawith a hairline border. [Measured] - One link blue.
#0969dain light and#4493f8in dark for links and selected states. [Measured] - Hairline structure. Borders are
#d1d9e0in light and#3d444din dark and carry most of the layout. Shadows are used for floating panels only. [Measured] - Mona Sans. Mona Sans is the UI font, with system fonts behind it, and a monospace stack for code. [Measured]
- A dark marketing site. The logged-out front page is near-black
#0d1117with large light headlines, while repository pages stay white. [Observed]
Source for this file: the home page and a public repository page measured in a browser at 1440 and 390 wide, plus Primer's published token files, read on 2026-10-06. No account screens, iOS or Android captures were used. See Known Gaps.
Core
Colors
| Role | Light | Dark | Where |
|---|---|---|---|
| Primary button | #1f883d, hover #1c8139 | #238636, hover #29903b | Primer tokens |
| Text on primary | #ffffff | #ffffff | Primer tokens |
| Link and accent | #0969da | #4493f8 | Primer tokens, measured on links |
| Text | #1f2328 | #f0f6fc | Primer tokens, measured on the page |
| Muted text | #59636e | #9198a1 | Primer tokens |
| Canvas | #ffffff | #0d1117 | Primer tokens, measured on the page |
| Subtle canvas and default control | #f6f8fa | #151b23, control #212830 | Primer tokens |
| Border | #d1d9e0 | #3d444d | Primer tokens |
| Accent wash | #ddf4ff | #388bfd at 10 percent | Primer tokens |
| Success | #1a7f37 | #3fb950 | Primer tokens |
| Danger and wash | #d1242f, #ffebe9 | #f85149 | Primer tokens |
| Attention and wash | #9a6700, #fff8c5 | #d29922 | Primer tokens |
| Done (merged) | #8250df | #ab7df8 | Primer tokens |
Typography
Mona Sans, in variable form for the UI and in the display cut for large marketing headlines, with system fonts and Noto Sans behind it. Repository pages measured a 32 on 40 title at 600, a 24 on 36 section heading at 600, 16 on 24 and 14 on 21 body at 400. The marketing headline is 64 on 69 at 425 with -2px tracking. Code uses a system monospace stack at 13. [Measured] Primer names its text styles display, title (large, medium, small), subtitle, body (large, medium, small), caption and code block. [Measured]
Shape and spacing
Controls use a 6px corner. Cards and inputs use 8, large panels 12, marketing tiles 24 and chips and avatars use full rounding. Control heights are 28, 32 and 40, with side padding of 8, 12 or 16, and stack gaps of 8, 16 and 24. [Measured] Resting shadows are barely visible (1px blur); floating panels combine a 1px ring with large soft shadows. [Measured]
Iconography and motion
Not measured in this pass. [Inferred]
Themes
Light, dark and further accessible variants are published from the same token structure. [Measured]
Platform: iOS
GitHub's iOS app was not captured. The notes below follow from the web design system.
Back and up navigation
Expected on iOS: Chevron plus previous title, swipe from the left edge.
Chevron plus previous title and the edge swipe, as the platform expects. Not confirmed on a device. [Inferred]
Primary navigation
Expected on iOS: Bottom tab bar, about five items.
A bottom tab bar is expected for the main areas of the app. [Inferred]
Main action
Expected on iOS: Nav bar or bottom bar button.
A primary action in the navigation bar or a floating button. [Inferred]
Sheets, dialogs and messages
Expected on iOS: Action sheets, alerts, modals.
Not measured. [Inferred]
Controls
Expected on iOS: Cupertino switches, pickers, segmented controls.
Not measured. [Inferred]
Text sizing
Expected on iOS: Dynamic Type.
Not measured. [Inferred]
Touch and pointer targets
Expected on iOS: 44pt minimum.
Not measured. [Inferred]
Insets and system bars
Expected on iOS: Safe areas, status bar.
Not measured. [Inferred]
Icons
Expected on iOS: SF Symbols or custom.
Not measured. [Inferred]
Account and sign-in rules
Expected on iOS: Equivalent login option when third-party sign-in exists (Guideline 4.8) and in-app account deletion. Note the date checked.
Not verified. Sign-in rules and account deletion were not checked. [Inferred] Checked: 2026-10-06 against the public web only.
Platform conformance
Expected on iOS: For each important component: what iOS expects, what this app does, and why it deviates.
The apps use the same role-named colors and the green primary action, drawn with native iOS controls. [Inferred]
Platform: Android
GitHub's Android app was not captured. The notes below follow from the web design system.
Back and up navigation
Expected on Android: System back and gesture, up arrow in the top bar.
System back and gesture, with an up arrow in the top bar, as the platform expects. Not confirmed on a device. [Inferred]
Primary navigation
Expected on Android: Navigation bar, rail on tablets.
A navigation bar for the main areas of the app. [Inferred]
Main action
Expected on Android: Floating action button.
A floating action button for creating things. [Inferred]
Sheets, dialogs and messages
Expected on Android: Bottom sheets, dialogs, snackbars.
Not measured. [Inferred]
Controls
Expected on Android: Material switches, pickers, chips.
Not measured. [Inferred]
Text sizing
Expected on Android: Font scale.
Not measured. [Inferred]
Touch and pointer targets
Expected on Android: 48dp minimum.
Not measured. [Inferred]
Insets and system bars
Expected on Android: Edge to edge, system bars.
Not measured. [Inferred]
Icons
Expected on Android: Material Symbols or custom.
Not measured. [Inferred]
Account and sign-in rules
Expected on Android: Account deletion and data safety requirements. Note the date checked.
Not verified. Sign-in rules and account deletion were not checked. [Inferred] Checked: 2026-10-06 against the public web only.
Platform conformance
Expected on Android: For each important component: what Android expects, what this app does, and why it deviates.
The apps use the same role-named colors and the green primary action, drawn with Material controls. [Inferred]
Platform: Web
The github.com front page and a public repository page, measured at 1440 and 390 wide. Signed-in screens were not measured.
Back and up navigation
Expected on Web: Browser back, breadcrumbs.
Browser back, and a repository path in the page header that links to each level. [Observed]
Primary navigation
Expected on Web: Top nav or sidebar.
A dark top header on the front page with Platform, Solutions, Resources, Open Source and Enterprise menus and a search field, and repository tabs beneath the repository title. [Observed]
Main action
Expected on Web: Page-level button.
A green primary button, 32 high with a 6px corner. [Measured from Primer tokens]
Sheets, dialogs and messages
Expected on Web: Modals, toasts.
Floating panels with a 1px ring and large soft shadows, and tinted callouts using the wash colors. [Measured from Primer tokens]
Controls
Expected on Web: Native or custom.
Buttons of 28, 32 and 40 height with a 6px corner, and inputs with a hairline border. [Measured]
Text sizing
Expected on Web: Browser zoom.
Sizes are set in rem, so they follow the browser root size. [Measured from Primer tokens]
Touch and pointer targets
Expected on Web: Pointer and keyboard.
Control heights of 28, 32 and 40 are below the 44 and 48 touch minimums, so the web UI is pointer first. [Measured]
Insets and system bars
Expected on Web: Viewport, scrollbars.
Not measured. [Inferred]
Icons
Expected on Web: Any.
Not measured. [Inferred]
Account and sign-in rules
Expected on Web: Not applicable unless the product has accounts.
Not applicable to the public pages measured. [Observed]
Platform conformance
Expected on Web: For each important component: what the web norm is, what this app does, and why it deviates.
Primer is the standard for both web and the apps: the same names, the same green, the same blue. [Measured for web, Inferred for apps]
Cross-platform consistency
Consistent across platforms: the role names, the green primary action, the link blue, hairline borders and light and dark themes. [Measured for web, Inferred for the apps]
Intentionally different: the marketing site is dark with display type while product pages are white and dense. [Observed]
Do's and Don'ts
Do
- Name colors by role and give each a light and a dark value.
- Use green for the one main action on a page and blue for links.
- Draw structure with hairline borders and keep shadows for floating panels.
- Keep controls at 28, 32 or 40 high with a 6px corner.
Don't
- Don't use green for decoration. It means create or confirm.
- Don't add colors outside the role names.
- Don't put heavy shadows on cards that sit in the page.
Known Gaps
- No account screens were measured, so the signed-in header, notifications and settings are not described.
- The iOS and Android apps were not captured. Their sections are inferred from the web system and platform conventions.
- Icons and motion were not measured.
- The accessible theme variants were not read.
- Account deletion and store policy rules were not verified.