반응형 스크린샷을 한 줄로 — html-screenshot Claude Code 스킬 공개

2026년 4월 21일
조회수 11
코멘트0

목차

한 줄 요약 · 로컬 HTML을 PC와 모바일 뷰포트로 동시에 렌더링해 좌우 합성 단일 이미지로 내보내는 Claude Code 스킬을 공개합니다. PR · 블로그 · 포트폴리오용 반응형 스크린샷을 명령 한 줄로 해결합니다.
반응형 디자인을 만들면서 항상 마주치는 불편함이 있습니다. DevTools로 모바일 뷰를 확인하고, 다시 PC 뷰로 돌아가서 캡처하고, 두 파일을 포토샵에서 나란히 붙여 넣는 작업 말이죠. 하나의 화면을 보여주기 위해 세 개의 도구를 오가야 한다는 건 분명 낭비입니다. 그래서 html-screenshot이라는 Claude Code 스킬을 직접 만들었습니다. HTML 경로만 넘기면 PC와 모바일을 동시에 렌더링하고, 높이를 맞춰 한 장의 합성 이미지로 떨어뜨려 줍니다.

왜 만들었나

반응형 스크린샷을 블로그 본문이나 GitHub PR 설명에 첨부할 때, 디바이스별 개별 파일을 나열하면 가독성이 떨어집니다. 보는 사람은 두 이미지를 머릿속에서 결합해야 하고, 썸네일 영역에서는 어느 것이 모바일이고 어느 것이 데스크탑인지도 불분명합니다. 반면 한 장의 합성 이미지는 동일한 캔버스 위에 양쪽 뷰포트가 정렬된 상태로 올라가므로 한눈에 비교가 됩니다.
 ┌──────────────────────────┐ ┌──────┐
 │                          │ │      │
 │           PC             │ │ Mob  │   ← 단일 PNG/JPEG
 │       (1920×1080)        │ │ ile  │     여백 있는 캔버스, 그라디언트 배경
 │                          │ │      │     높이 자동 정규화
 └──────────────────────────┘ └──────┘

주요 기능

  • 명령 한 줄 → 이미지 한 장 · PC와 모바일을 좌우 합성 (원하면 태블릿 패널 추가)
  • 🎨 배경 프리셋 14종 · slate, sunset, ocean, midnight, aurora 등. 단색/그라디언트 커스텀 지원
  • 📐 패널 높이 자동 정규화 · PC와 모바일이 깔끔하게 정렬됩니다. 업스케일은 하지 않습니다
  • 🌐 로컬 HTTP 서버 자동 기동 · 상대경로 CSS/JS/img/fetch가 정상 작동, file:// 이슈 없음
  • 📂 폴더 일괄 처리 · .html 재귀 탐색, 출력은 원본 트리 구조 유지
  • 🔄 풀페이지 또는 뷰포트 · --full-page 플래그로 스크롤 전체 캡처
  • 🧩 개별 디바이스 파일 · --separate는 원본 픽셀 해상도를 그대로 보존

빠른 시작

설치는 단순합니다. Playwright(Chromium)와 Pillow만 있으면 됩니다.
pip install playwright pillow
python -m playwright install chromium

# ~/.claude/skills/html-screenshot/ 에 배치하거나 git submodule로 연결
배치 후 Claude Code에서 아래처럼 호출합니다.
# 단일 파일 → 원본 옆에 ./index.png
/html-screenshot ./index.html

# 폴더 → ./site/screenshots/{tree}/{stem}.png
/html-screenshot ./site/ --full-page --tablet

# 프리셋 배경 + PC 해상도 커스텀
/html-screenshot ./page.html --bg sunset --pc-size 1440x900

플래그 한눈에 보기

핵심 플래그만 간추렸습니다. 전체 목록은 README에 정리되어 있습니다.
플래그 기본값 설명
(필수) HTML 파일 또는 디렉토리
--full-pageoff 뷰포트 대신 전체 스크롤 영역 캡처
--separateoff 합성 대신 디바이스별 개별 파일 저장
--pc-size1920x1080 PC 뷰포트 크기
--mobile-size375x812 Mobile 뷰포트 크기 (iPhone X 클래스)
--tabletoff PC와 Mobile 사이에 태블릿 패널 추가
--bgslate 프리셋명 · 단색 · 그라디언트
--gap60 합성 시 패널 간격 (px)
--padding80 캔버스 외곽 여백 (px)
--formatpng png 또는 jpeg

배경 프리셋 시연

--bg는 세 가지 형태를 모두 지원합니다. 프리셋명, CSS 단색, 그라디언트 문자열입니다.
--bg sunset                          # 프리셋
--bg "#1e293b"                       # 단색
--bg "#667eea,#764ba2"               # 그라디언트 (대각선)
--bg "#0f172a,#1e293b,vertical"      # 그라디언트 (세로)

출력 규칙

입력이 파일이냐 폴더냐, 그리고 --separate 여부에 따라 출력 경로가 달라집니다.
입력 기본 (합성) --separate
./foo.html./foo.png./foo-pc.png, ./foo-mobile.png
./site/./site/screenshots/{tree}/{stem}.png./site/screenshots/{tree}/{stem}-{device}.png
합성 모드에서는 패널들을 가장 작은 패널 높이에 맞춰 다운스케일합니다. 업스케일은 하지 않으므로 화질 손상이 없으며, 배치 순서는 PC → Tablet → Mobile 순으로 좌에서 우로 정렬됩니다.

실전 팁

  • 긴 랜딩 페이지는 --full-page를 권장합니다. 접힌 부분 없이 전체가 담깁니다.
  • 시연용 이미지로는 --bg dark --padding 40 조합이 시각적으로 가장 깔끔합니다.
  • --separate는 추가 합성용 raw 프레임을 원본 해상도로 뽑고 싶을 때 유용합니다.
  • 로컬 HTTP 서버는 랜덤 포트로 시작해 캡처 후 자동 종료됩니다. 프로세스 잔존 걱정은 없습니다.

로드맵과 기여

현재 아이디어 목록은 다음과 같습니다. PR 환영합니다.
  • 디바이스 크롬 (PC 브라우저 프레임, 모바일 베젤)
  • 패널 드롭 섀도우
  • WebP 출력
  • 스크롤 애니메이션 GIF / MP4
이 스킬이 여러분의 반응형 스크린샷 워크플로우의 시간을 아껴줬다면, GitHub 저장소에 ⭐ 한 번 부탁드립니다. 라이선스는 MIT입니다.

참조 링크

조회 통계 (최근 30일)
PV 11UV 11
이 글이 도움이 되셨나요? 의견을 들려주세요!
지금까지 0명이 의견을 남겼어요
아직 댓글이 없어요. 첫 댓글을 남겨보세요!