Skip to content

Repository files navigation

깃허브 잔디 색상 변경 익스텐션(GitHub Grass Color)

GitHub 잔디의 색상을 자유롭게 커스터마이징할 수 있는 Chrome 확장 프로그램입니다.

GGC

→ 확장 프로그램 바로가기

기능 소개

  • 프리셋 테마 — 별도 설정 없이 바로 쓸 수 있는 5가지 테마를 제공합니다.
  • 커스텀 색상 — Level 0(기여 없음) ~ Level 4(최다 기여)까지 각 단계의 색상을 컬러 피커나 hex 값 입력으로 직접 지정할 수 있습니다.
  • 내 팔레트 — 커스텀으로 만든 색상 조합을 이름과 함께 저장하고, 즐겨찾기·삭제로 관리할 수 있습니다.
  • 실시간 미리 보기 — 색상을 변경할 때마다 미리 보기를 통해 적용된 색상을 바로 확인할 수 있습니다.
  • GitHub 실시간 반영 — 적용한 색상은 기여 그래프와 범례(legend)에 즉시 반영됩니다.

제공 프리셋 테마

테마 설명
기본 (Default Green) GitHub 기본 초록색
오션 (Ocean Blue) 파란색 계열
선셋 (Sunset Orange) 주황색 계열
퍼플 (Purple Haze) 보라색 계열
모노 (Monochrome) 무채색 그레이스케일

사용 방법

  1. Chrome 확장 프로그램을 설치합니다.
  2. GitHub 페이지에 접속합니다.
  3. Chrome 툴바에서 확장 프로그램 아이콘을 클릭합니다.
  4. 탭에서 원하는 방식으로 색상을 지정합니다.
    • 프리셋 탭 — 제공되는 테마 중 하나를 선택합니다.
    • 커스텀 탭 — 5단계 색상을 직접 지정하고, 원하면 이름을 붙여 팔레트로 저장합니다.
    • 내 팔레트 탭 — 저장한 팔레트를 선택해 불러오거나, 즐겨찾기/삭제로 관리합니다.
  5. 적용 버튼을 누르면 잔디 색상이 즉시 변경됩니다.
  6. 기본값으로 되돌리려면 초기화 버튼을 클릭합니다.

미리 보기

테마 프리셋 적용

grass

커스텀 색상 적용

custom

내 팔레트 (2026.07.20. 업데이트)

update

기술 스택

구분 기술
프레임워크 React 19
언어 TypeScript
스타일 Tailwind CSS v4
빌드 도구 Vite + @crxjs/vite-plugin
확장 프로그램 Chrome Extension Manifest V3

동작 방식

확장 프로그램은 두 개의 독립적인 진입점으로 구성됩니다.

  • 팝업 UI (main.tsxApp.tsx) — 아이콘 클릭 시 표시되며, 선택한 색상을 chrome.storage.local에 저장합니다.
  • 콘텐츠 스크립트 (content.ts) — github.com에 주입되어 저장된 색상을 읽어 CSS로 잔디 색상을 덮어씁니다.
팝업 UI → chrome.storage.local → 콘텐츠 스크립트(onChanged 감지) → GitHub 잔디 CSS 주입

chrome.storage.onChanged를 구독하기 때문에 팝업에서 색상을 바꾸면 열려 있는 GitHub 탭에 실시간으로 반영됩니다.


개발

yarn dev        # 개발 서버 실행 (확장 프로그램 개발 모드)
yarn build      # 프로덕션 빌드 (dist/ 폴더에 출력)
yarn lint       # ESLint 실행
yarn preview    # 빌드 결과물 미리보기
yarn icons      # 확장 프로그램 아이콘 생성

빌드 후 Chrome의 chrome://extensions에서 압축해제된 확장 프로그램을 로드하여 dist/ 폴더를 선택하면 설치할 수 있습니다.


프로젝트 구조

src/
├── main.tsx              # 팝업 진입점
├── App.tsx               # 팝업 루트 컴포넌트 (탭 전환 및 레이아웃)
├── content.ts            # GitHub 페이지에 주입되는 콘텐츠 스크립트
├── constants/
│   ├── Theme.ts          # ColorPalette·SavedPalette 타입, 프리셋 테마 정의
│   └── StorageKeys.ts    # chrome.storage 키 상수
├── services/
│   └── Storage.ts        # chrome.storage.local 추상화
├── hooks/
│   └── useColorState.ts  # 색상·팔레트 상태 관리 커스텀 훅
└── components/
    ├── index.ts          # 컴포넌트 배럴 익스포트
    ├── TabButton.tsx     # 탭 버튼
    ├── Preview.tsx       # 잔디 미리보기
    ├── PresetList.tsx    # 프리셋 목록 UI
    ├── CustomEditor.tsx  # 커스텀 색상 편집 및 저장 UI
    ├── PaletteList.tsx   # 저장한 팔레트 목록 (즐겨찾기/삭제)
    └── Footer.tsx        # 적용·초기화 버튼

변경 이력

버전별 변경 사항은 CHANGELOG.md에서 확인할 수 있습니다.

회고 블로그

GitHub 잔디 색상 변경하기 (feat. 잔디에도 미감이 필요하다니)

Releases

Packages

Contributors

Languages