GitHub 디자인 시스템.
GitHub 디자인 시스템 — 코드 중심 플랫폼. 높은 기능 밀도, 청백 색상의 정밀함, Primer 기반 설계.
실제 적용 모습 보기
동일한 디자인 토큰을 웹사이트, 앱, 슬라이드, 포스터 등 다양한 아티팩트 종류에 적용한 모습입니다. 스크린샷이 아니라 이 시스템으로 다시 스킨을 입힌 오리지널 목업입니다.
it
real.
디자인 토큰
Open Design 토큰 규약을 따르는 56개의 토큰 — agent가 어떤 아티팩트든 테마를 입힐 때 읽는 것과 동일한, 구조화된 팔레트, 타입, 간격, 모션 값입니다.
서피스
-
--bg#ffffff -
--surface#f6f8fa -
--surface-warmvar(--surface)
텍스트
-
--fg#1f2328 -
--fg-2#1f2328 -
--muted#656d76 -
--meta#656d76
테두리
-
--border#d0d7de -
--border-soft#d8dee4
액센트
-
--accent#0969da -
--accent-on#ffffff -
--accent-hover#0550ae -
--accent-activecolor-mix(in oklab, var(--accent), black 14%)
시맨틱
-
--success#1a7f37 -
--warn#9a6700 -
--danger#cf222e
타이포그래피
-
--font-display-apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji" -
--font-body-apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji" -
--font-monoui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace
타입 스케일
-
--text-xs12px -
--text-sm14px -
--text-base14px -
--text-lg16px -
--text-xl20px -
--text-2xl24px -
--text-3xl28px -
--text-4xl32px -
--leading-body1.5 -
--leading-tight1.25 -
--tracking-display-0.01em
간격
-
--space-14px -
--space-28px -
--space-312px -
--space-416px -
--space-520px -
--space-624px -
--space-832px -
--space-1248px -
--section-y-desktop64px -
--section-y-tablet48px -
--section-y-phone32px
모서리 반경
-
--radius-sm6px -
--radius-md6px -
--radius-lg12px -
--radius-pill9999px
엘리베이션
-
--elev-flatnone -
--elev-ring0 0 0 1px var(--border) -
--elev-raised0 1px 3px rgba(31, 35, 40, 0.12), 0 8px 24px rgba(66, 74, 83, 0.12)
포커스
-
--focus-ring0 0 0 3px rgba(9, 105, 218, 0.3)
모션
-
--motion-fast80ms -
--motion-base200ms -
--ease-standardease-out
레이아웃
-
--container-max1280px -
--container-gutter-desktop24px -
--container-gutter-tablet16px -
--container-gutter-phone16px
GitHub에서 영감을 받은 디자인 시스템
Category: 개발자 도구 코드 중심 플랫폼. 기능적 밀도, 청백색 정밀함, Primer 기반.
1. 비주얼 테마 & 분위기
GitHub의 화면은 장식되지 않고 설계되어 있습니다. 모든 픽셀이 하나의 태도를 선언합니다: 이것은 diff, 빌드, pull request를 중시하는 사람들을 위한 도구라고. 페이지 배경은 깔끔한 #ffffff(라이트) 또는 #0d1117(다크)이며, 콘텐츠는 여백 대신 얇은 테두리로 구분된 촘촘한 직사각형 패널 위에 배치됩니다. 정보 밀도 자체가 브랜드입니다 — 목록 행, 코드 줄, 저장소 헤더, 알림 카드가 모두 촘촘하게 배치되어 있어 파워 유저가 스크롤 없이 수백 개의 항목을 스캔할 수 있습니다.
시그니처 강조색은 링크와 주요 액션을 위한 Primer 블루(#0969da)와 병합 상태, 성공, 그리고 병합 버튼 자체를 위한 GitHub 그린(#1a7f37)입니다. 두 색상 모두 소비자 제품의 블루·그린보다 약간 차분하게 느껴집니다 — 촘촘한 회색 텍스트 위에서 읽힐 만큼 충분히 채도가 있으면서도, 한 화면에 여러 개가 나타날 때 배경으로 사라질 만큼 절제되어 있습니다.
타이포그래피는 전 제품에 걸쳐 system-ui 스택을 사용해 모든 OS에서 텍스트가 선명하게 렌더링되며, 코드에는 SFMono / Menlo / Consolas를 함께 사용합니다. 편집용 디스플레이 폰트는 없습니다; GitHub의 목소리는 당신이 이미 사용 중인 시스템의 목소리입니다.
주요 특징:
- 진정한 흰 캔버스(
#ffffff) 또는 깊은 네이비-블랙(#0d1117) — 따뜻함도 색조도 없음 - 얇은 회색 테두리(
#d0d7de)로 모든 패인과 패널을 정의 - Primer 블루(
#0969da) — 링크/주요 액션; GitHub 그린(#1a7f37) — 성공/병합 - 산문에는 system-ui; 코드에는 SFMono — 사용자 정의 서체 없음
- 최소 패딩의 촘촘한 목록 행; 여백은 희소
- 16px / 24px의 Octicon 아이콘 — 단선, 기하학적, 일관적
- 강한 색상 의미를 가진 알약형 상태 배지
2. 색상 팔레트 & 역할
주요 색상
- Canvas Default (
#ffffff): 기본 페이지 배경, 라이트 테마. - Canvas Subtle (
#f6f8fa): 보조 서페이스, 사이드바, 입력 배경, 헤더 스트립. - Canvas Inset (
#eaeef2): 코드 블록 배경, 깊은 인셋 서페이스. - Fg Default (
#1f2328): 기본 텍스트, 헤드라인, 잉크. - Fg Muted (
#656d76): 보조 텍스트, 캡션, 파일 경로.
브랜드 강조색
- Primer Blue (
#0969da): 링크, 주요 CTA, 포커스 링 기반 — 범용 인터랙티브 색상. - Primer Blue Hover (
#0550ae): 주요 블루의 호버/눌림 상태. - Accent Subtle (
#ddf4ff): 콜아웃, 정보 배너를 위한 소프트 블루 서페이스.
의미론적 색상
- Success / Merge Green (
#1a7f37): 병합된 PR, 성공 배지, 병합 버튼. - Success Subtle (
#dafbe1): 성공 서페이스 틴트. - Open Green (
#1a7f37): “열린” 이슈/PR 상태. - Closed / Danger Red (
#cf222e): 닫힌 PR, 파괴적 액션, 유효성 검사 오류. - Danger Subtle (
#ffebe9): 오류 배너 서페이스. - Attention / Warning Yellow (
#9a6700): 황색 서페이스 위의 경고 텍스트. - Attention Subtle (
#fff8c5): 경고 배너 서페이스. - Done Purple (
#8250df): 병합 후 보관됨, “완료” 상태, 프리미엄 배지. - Sponsor Pink (
#bf3989): 스폰서 하트, GitHub 스폰서 브랜드.
테두리 & 구분선
- Border Default (
#d0d7de): 표준 얇은 테두리, 패널 외곽선. - Border Muted (
#d8dee4): 패널 내부 구분선. - Border Subtle (
#eaeef2): 희미한 테이블 행 구분선.
다크 테마
- Dark Canvas (
#0d1117): 다크 페이지 배경. - Dark Surface (
#161b22): 사이드바, 헤더, 보조 서페이스. - Dark Border (
#30363d): 표준 다크 모드 테두리. - Dark Fg (
#e6edf3): 다크 배경 위의 기본 텍스트.
3. 타이포그래피 규칙
폰트 패밀리
- 본문 / UI:
-apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif - 코드 / 모노:
ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace - 이모지:
"Apple Color Emoji", "Segoe UI Emoji"
계층 구조
| 역할 | 폰트 | 크기 | 굵기 | 행 높이 | 자간 | 비고 |
|---|---|---|---|---|---|---|
| Display | system-ui | 32px (2rem) | 600 | 1.25 | -0.01em | 저장소 헤더, 마케팅 히어로 |
| H1 | system-ui | 24px (1.5rem) | 600 | 1.25 | normal | 페이지 제목 |
| H2 | system-ui | 20px (1.25rem) | 600 | 1.25 | normal | 섹션 제목 |
| H3 | system-ui | 16px (1rem) | 600 | 1.25 | normal | 소섹션, 패널 헤더 |
| Body | system-ui | 14px (0.875rem) | 400 | 1.5 | normal | 기본 텍스트 크기 — 16px가 아님 |
| Body Small | system-ui | 12px (0.75rem) | 400 | 1.4 | normal | 캡션, 파일 메타데이터 |
| Code | SFMono | 12px (0.75rem) | 400 | 1.45 | normal | 코드 블록, diff |
| Code Inline | SFMono | 0.85em | 400 | inherit | normal | 인라인 code 스팬 |
원칙
- 14px 본문, 16px 아님: GitHub의 산문 밀도는 그 정체성입니다. 하나의 뷰포트에 더 많은 행을 담기 위해 14px로 읽힙니다.
- 굵기 이진법: 기본적으로 모든 것은 400; 헤드라인과 강조에는 600. 500도 700도 없음.
- 시스템 폰트 항상: 크롬을 위해 웹폰트를 로드하지 않음 — 느린 연결에서도 텍스트가 즉시 렌더링되어야 함.
4. 컴포넌트 스타일링
버튼
Primary (그린)
- Background:
#1f883d - Text:
#ffffff - Border: 1px solid
rgba(31, 35, 40, 0.15) - Padding: 5px 16px
- Radius: 6px
- Shadow:
0 1px 0 rgba(31,35,40,0.1) - Hover: background
#1a7f37 - 사용: “저장소 만들기”, “Pull request 병합”
Default
- Background:
#f6f8fa - Text:
#1f2328 - Border: 1px solid
#d0d7de - Padding: 5px 16px
- Radius: 6px
- Hover: background
#f3f4f6, border#d0d7de
Outline (블루 링크 스타일)
- Background:
#ffffff - Text:
#0969da - Border: 1px solid
#d0d7de - Hover: background
#0969da, text#ffffff
Danger
- Background:
#ffffff - Text:
#cf222e - Border: 1px solid
#d0d7de - Hover: background
#a40e26, text#ffffff, border#a40e26
카드 / 박스
- Background:
#ffffff - Border: 1px solid
#d0d7de - Radius: 6px
- Padding: 16px (헤더) + 16px (본문)
- 헤더에는 하단 테두리가 있는
#f6f8fa스트립이 있음.
입력 필드
- Background:
#ffffff - Border: 1px solid
#d0d7de - Radius: 6px
- Padding: 5px 12px
- Focus: border
#0969da, ring0 0 0 3px rgba(9,105,218,0.3)
상태 알약 (이슈 / PR)
- Open: background
#1a7f37, 흰 텍스트, padding 4px 10px, radius 9999px. - Closed: background
#cf222e, 흰 텍스트. - Merged: background
#8250df, 흰 텍스트. - Draft: background
#6e7781, 흰 텍스트.
레이블 (이슈/PR의 태그)
- Padding: 0 7px
- Radius: 9999px
- Font: 12px / 500
- 배경과 텍스트는 프로그래밍 방식으로 결정됨 (레이블 색상 → 대비를 위해 텍스트 색상 계산).
5. 간격 & 레이아웃
- 기본 단위: 4px. 간격 스케일: 4, 8, 12, 16, 24, 32, 40, 48.
- 페이지 최대 너비: 1280px (
Container-xl). - 사이드바: 데스크탑에서 296px, 1012px 이하에서 접힘.
- 행 패딩: 수평 16px, 수직 12px (목록은 의도적으로 촘촘하게 설계).
6. 모션
- 지속 시간: 호버에 80ms; 메뉴/팝오버 열기에 200ms.
- 이징: 열기에
ease-out, 닫기에ease-in. - 피해야 할 것: 페이지 로드 애니메이션, 패럴랙스, 지속적인 마이크로 인터랙션. 요소는 나타나는 것이지, 퍼포먼스를 하지 않습니다.
7. 사용 가이드라인
- 촘촘한 목록, 테두리가 있는 박스, 시스템 타이포그래피를 함께 유지하십시오; 고립된 그린 버튼만으로는 GitHub 같은 제품 표면을 만들기에 충분하지 않습니다.
- 저장소 구축 액션에는 그린, 링크와 포커스에는 블루, 이슈·PR·워크플로 상태에만 레드/퍼플/그레이를 사용하십시오.
- 장식적인 그림자나 대형 마케팅 스타일 카드보다는 조용한 크롬, 명시적인 테두리, 컴팩트한 간격을 선호하십시오.
태그
design-systemfirst-partydesigndeveloper-tools