Communitygithub.com

hifebriansyah/mockup-html

웹/앱 화면을 작동하는 HTML/CSS 모업으로 디자인하거나, 로고/아이콘/일러스트레이션을 SVG로 디자인하여 미리보기 패널(휴대폰, 태블릿, 데스크톱 너비 및 밝음/어두움/체크무늬 배경)에 표시합니다. 사용자가 목업, 와이어프레임, 프로토타입, 랜딩 페이지, 화면 레이아웃, 로고, 아이콘 또는 SVG를 요청할 때 사용하세요.

mockup-html란 무엇인가요?

이 스킬은 AI 어시스턴트가 HTML/CSS 또는 SVG를 사용하여 사용자에게 실시간으로 시각적 디자인 결과물을 제공할 수 있도록 설계되었습니다. 사용자가 목업, 와이어프레임, 로고 등 시각적 요소를 요청하면, AI는 채팅 응답에 코드를 직접 삽입하는 대신 `<mockup>` 태그 내에 완전한 HTML 또는 SVG 코드를 작성합니다. 그러면 채팅 페이지가 이 태그를 감지하여 별도의 미리보기 패널에서 안전하게(sandbox) 렌더링합니다. 이를 통해 사용자는 코드를 보지 않고도 실제로 동작하는 화면이나 그래픽을 즉시 확인할 수 있습니다. 이 스킬의 핵심 장점은 '그릴 수 없다'고 말하는 대신 직접 코드를 생성하여 시각화한다는 점입니다. 미리보기는 JavaScript, CSS 라이브러리(CDN), WebGL, canvas 등 다양한 웹 기술을 지원하므로, 단순한 그림이 아니라 실제로 상호작용이 가능한 프로토타입을 만들 수 있습니다. 또한 모바일 우선 디자인, 토큰 기반 스타일링, 접근성, 현실적인 콘텐츠(로렘 입숨이 아닌 실제 같은 문구)를 강조하여 고품질의 디자인 결과물을 보장합니다. 주요 사용 사례로는 웹사이트 화면 설계, 앱 프로토타입, 로고/아이콘 디자인, SVG 일러스트레이션, 랜딩 페이지 제작 등이 있습니다. 이 스킬은 Claude Code, Cursor, Codex 등 HTML과 SVG를 생성할 수 있는 모든 AI 에이전트에서 동작합니다. AI는 미리보기 결과를 직접 볼 수 없으므로, 코드의 논리와 시각적 일관성을 스스로 검토하고 사용자에게 확인할 사항을 안내합니다. 결과물은 `<mockup>` 태그 하나에 완전한 HTML 페이지나 SVG 하나로 구성되며, 코드 블록 안에 넣지 않도록 주의해야 합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/hifebriansyah/pro/tree/HEAD/skills/mockup-html

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

HTML 목업 또는 SVG 로고 디자인하기

사용자가 화면, 페이지, 로고 또는 아이콘을 보고 싶어할 때 사용하세요. 설명만으로는 부족합니다.

사용자가 채팅 중인 페이지에서 이를 직접 그려줍니다. <mockup> 태그 안에 작성된 HTML과 SVG는 채팅 옆에 있는 미리보기 패널에 나타납니다. 따라서 "렌더링하거나 표시할 수 없습니다"라고 절대 응답하지 말고, 태그 안에 코드를 작성하세요. 단, 당신은 결과를 직접 볼 수 없으므로 그 점을 언급하고 사용자에게 어떤 부분을 확인해야 할지 알려주어야 합니다.

전달 방법

  1. 평소 대화하듯 한두 문장으로 간결하게 답변하세요: 목업이 보여주는 내용, 가장 중요한 디자인 결정 두세 가지, 그리고 확인할 사항을 포함하세요. 채팅에 코드를 붙여넣지 마세요.
  2. 전체 목업을 하나의 태그 쌍 안에 넣고, 짧은 제목을 추가하세요:

답변 하나당 목업 하나: 하나의 화면 또는 하나의 전체 페이지. 태그 안에는 HTML만 들어갑니다. 태그를 코드 블록 안에 절대 넣지 마세요. 페이지는 오른쪽에 미리보기 및 코드 탭과 함께 표시됩니다.

사용자가 문서(PRD, 노트 등)도 함께 요청한 경우, 같은 답변에 <mockup> 옆에 <document>를 넣을 수 있습니다. 목업 요청의 경우 답변에는 반드시 <mockup>이 포함되어야 하며, 문서만으로는 부족합니다.

로고, 아이콘 또는 일러스트레이션 (SVG)

<mockup> 태그 안에 <svg> 하나만 넣으세요. 페이지는 이를 중앙에 그리고, 밝은/어두운/체크무늬 배경을 전환할 수 있는 스위치를 제공하며, 사용자는 이를 복사하거나 .svg 파일로 다운로드할 수 있습니다.

  • <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 W H">로 시작하세요 (로고나 아이콘의 경우 정사각형, 예: 0 0 200 200). 평면 도형(path, circle, rect), 그라디언트(linearGradient), 마스크나 도형을 이용한 컷아웃으로 그리세요. 텍스트는 워드마크에만 사용하고 시스템 폰트 스택을 사용하거나, 도형으로 그리는 것이 더 좋습니다.
  • 스크립트와 외부 참조(파일이나 주소에 대한 href)는 사용하지 마세요: 인라인 도형, 그라디언트 및 data: 그림만 사용하세요.
  • SVG를 직접 볼 수 없으므로, 머릿속으로 지오메트리를 확인하고 어떤 점을 확인했는지 말하세요: 겹치거나 간격이 생기는 반경과 획 두께, 밝은 배경과 어두운 배경에 대한 대비, 16픽셀과 32픽셀에서도 여전히 읽히는지(얇은 획은 사라짐), 하나의 아이디어와 두세 가지 색상을 유지하세요.
  • 사용자가 SVG 코드를 붙여넣으면, 페이지는 이미 해당 SVG의 미리보기를 보여줍니다; 코드(지오메트리, 대비, 작은 크기, 불필요한 도형)에서 디자인을 검토하고 수정된 버전을 제안하세요.
  • 디자인에 필요한 만큼 자세하게 추가하세요: 길이 제한은 없습니다.

미리보기 허용 사항 (페이지가 샌드박스에서 실행)

당신이 구축한 모든 것을 실행합니다. 미리보기는 실제 브라우저 프레임입니다: 그림이 아닌 작동하는 페이지를 작성하세요.

  • JavaScript (인라인 <script>, onclick과 같은 핸들러), CDN의 모든 라이브러리(버전 고정, 예: <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>: three.js, Chart.js, Alpine, GSAP, Leaflet...; 라이브러리는 이를 사용하는 스크립트 앞에 배치), 주소를 통한 웹 폰트 및 스타일시트(Google Fonts), 주소를 통한 이미지, 공개 API에 대한 fetch, 임베디드 프레임(YouTube, 지도), 양식, 팝업, 다이얼로그, 다운로드, 전체 화면, WebGL 및 캔버스.
  • localStorage 및 sessionStorage 작동: 목업이 localStorage에 저장한 내용은 사용자 브라우저에서 해당 목업에 대해 유지되므로, 할 일 목록이나 저장된 테마가 새로고침 후에도 유지됩니다.
  • 없는 것: 쿠키, IndexedDB, 카메라, 마이크, 위치, 그리고 주변 채팅 페이지에 접근하는 모든 것(프레임이 격리됨). 자체 서버가 필요한 페이지(로그인, 데이터베이스)는 샘플 데이터만 표시할 수 있습니다.
  • 로고나 아이콘(<svg>만 있는 경우)은 스크립트 없이 그려집니다.

잘 구축하는 방법

  • 모바일 우선. 390px 너비의 휴대폰을 기준으로 디자인한 후, 하나 또는 두 개의 @media (min-width: 768px) 규칙으로 넓히세요; max-width 컨테이너와 <meta name="viewport" content="width=device-width, initial-scale=1">를 사용하세요.
  • 토큰 우선. <style>을 :root 변수(primary, surface, text, muted, border, radius, spacing)로 시작하고 그것들만 사용하세요. 하나의 기본 색상, 중립 회색, 4 / 8 / 12 / 16 / 24px 간격 척도, 14 / 16 / 20 / 28과 같은 글꼴 크기 척도, font-family: system-ui, sans-serif를 사용하세요.
  • 시맨틱 및 접근성. header, nav, main, section, button, label과 input을 함께 사용하세요; 눈에 보이는 레이블, 최소 44px의 터치 대상, 최소 4.5:1의 텍스트 대비, 눈에 띄는 포커스 스타일.
  • 현실적인 콘텐츠. 사용자의 언어로 실제 단어, 실제처럼 보이는 이름, 가격, 날짜를 사용하세요. 로렘 입숨, "버튼", "여기에 제목"은 사용하지 마세요.
  • 중요한 상태. 행복한 경로 외에도 가장 중요한 상태를 보여주세요: 오류 메시지가 있는 양식, 빈 목록 또는 로딩 스켈레톤.
  • 이미지. CSS 그라디언트 블록이나 간단한 인라인 SVG를 사용하세요; 아바타는 이니셜이 있는 원으로 처리하세요.
  • 크기 제한 없음. 완전하고 풍부하게 만드세요. 웹사이트나 앱 화면의 경우 HTML과 CSS를 합쳐 최소 250줄(8,000자 이상)을 목표로 하고, 페이지에 필요할 때는 더 많이 작성하세요. 사용자가 요청한 전체 페이지를 스케치가 아닌 실제 버전으로 구축하세요: 해당 페이지가 가진 모든 섹션(웹사이트의 경우: 네비게이션이 있는 헤더, 히어로, CSS로 보여줄 수 있는 한 작동하는 주요 기능, 여러 콘텐츠 섹션, 푸터), 각 목록에 여러 개의 현실적인 항목, 그리고 세련된 스타일링(간격, 색상, 호버 및 포커스 상태, 반응형 규칙). "lengkap", "complete", "full" 또는 전체 웹사이트/앱을 언급하는 요청은 몇 줄이 아닌 전체 페이지를 의미합니다. 공간을 절약하기 위해 "..."으로 요약, 축약 또는 일부를 남겨두지 마세요. 답변이 잘리면 마지막 문자부터 계속하도록 요청받을 것입니다: <style>을 먼저 작성하고 계속 진행하며, 절대 처음부터 다시 시작하지 말고 </html>과 </mockup>으로 마무리하세요.
  • 실제로 작동하는 컨트롤. 사용자가 요청한 모든 버튼, 토글, 선택, 탭에 짧은 인라인 스크립트(또는 더 간단한 경우 숨겨진 체크박스와 :has()를 사용한 CSS)를 연결하세요. 테마 토글은 색상을 반전시키고, 스위치 버튼은 두 선택을 교체하며, 시계는 선택한 시간대의 실제 시간을 표시합니다. 아무 작업도 하지 않는 컨트롤을 절대 보여주지 마세요.
  • 언어. 채팅 응답과 페이지의 모든 텍스트는 사용자의 최신 메시지 언어로 작성하세요.
  • 페이지 완성. HTML은 완전해야 합니다: <!doctype html>로 시작하고, 모든 태그가 닫혀 있으며, </html>로 끝납니다. <style>을 먼저 작성하고 간결하게 유지하여 본문 전체를 넣을 공간을 확보하세요.

관련 스킬