项目文件夹

文件
wehub-resource-sync 070959e133
landing-page-staging / Deploy landing page to staging (push) Has been skipped
landing-page-ci / Validate landing page (push) Failing after 4s
visual-baseline / Capture visual baselines (push) Has been cancelled
bake-plugin-previews / Bake plugin previews (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:00:47 +08:00

8.5 KiB

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, ring 0 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·워크플로 상태에만 레드/퍼플/그레이를 사용하십시오.
  • 장식적인 그림자나 대형 마케팅 스타일 카드보다는 조용한 크롬, 명시적인 테두리, 컴팩트한 간격을 선호하십시오.