프로덕트 스크린샷 프레임

Product screenshot frame

제품 화면을 브라우저·기기 틀 안에 넣어, 실제 쓰는 모습처럼 맥락을 부여하는 시각 장치.

다른 이름: Browser mockupDevice frameChrome frame
···
html
<div class="frame">
  <div class="chrome"><span class="dot r"></span><span class="dot y"></span><span class="dot g"></span><span class="url">app.example.com/dashboard</span></div>
  <div class="screen" id="screen">
    <div class="side"><i></i><i></i><i></i><i></i></div>
    <div class="main">
      <div class="row"><b class="card"></b><b class="card"></b><b class="card"></b></div>
      <div class="chart"><span></span><span></span><span></span><span></span><span></span></div>
    </div>
  </div>
</div>
css
.frame{width:min(92%,760px);height:min(88%,300px);border-radius:12px;overflow:hidden;background:var(--surface);
  border:1px solid var(--line);box-shadow:0 16px 40px rgba(0,0,0,.14);display:flex;flex-direction:column;
  animation:float 5s ease-in-out infinite}
.chrome{display:flex;align-items:center;gap:6px;padding:clamp(5px,1.3vmin,9px) clamp(8px,2vmin,12px);
  border-bottom:1px solid var(--line)}
.dot{width:clamp(5px,1.1vmin,8px);height:clamp(5px,1.1vmin,8px);border-radius:50%}
.dot.r{background:#f25c5c}.dot.y{background:#f2b45c}.dot.g{background:#5cc26e}
.url{margin-left:clamp(6px,1.6vmin,12px);font-size:clamp(6.5px,1.2vmin,9px);color:var(--muted);
  background:var(--bg);border-radius:4px;padding:.2em .8em}
.screen{flex:1;display:flex;background:var(--bg)}
.side{width:18%;display:flex;flex-direction:column;gap:12%;padding:8%;border-right:1px solid var(--line)}
.side i{display:block;height:9%;border-radius:3px;background:var(--line)}
.side i:first-child{background:var(--accent)}
.main{flex:1;display:flex;flex-direction:column;gap:8%;padding:6%}
.row{display:flex;gap:6%;height:34%}
.card{flex:1;border-radius:8px;background:var(--surface);border:1px solid var(--line)}
.chart{flex:1;display:flex;align-items:flex-end;gap:6%;padding:4% 2%}
.chart span{flex:1;border-radius:3px 3px 0 0;background:var(--accent-3)}
.chart span:nth-child(1){height:40%}.chart span:nth-child(2){height:70%}.chart span:nth-child(3){height:55%}
.chart span:nth-child(4){height:85%}.chart span:nth-child(5){height:60%}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-2%)}}

제품 UI를 그냥 잘라 붙이면 "이게 뭘 하는 화면인지" 맥락이 없습니다. 브라우저 창(신호등 버튼, 주소창)이나 기기 틀(노치, 홈 인디케이터)로 감싸면 "이건 웹사이트/앱 화면이다"라는 맥락이 즉시 붙고, 실제보다 더 신뢰가 가는 완성품처럼 보입니다.

프레임 안에는 실제 스크린샷 대신 그려낸 미니 UI(카드, 차트, 리스트)를 써도 됩니다 — 실제 제품이 자주 바뀌는 초기 단계라면 이 편이 유지보수하기 쉽습니다. 히어로 섹션의 비주얼, 기능 소개 옆 스크린샷, 소셜 미디어 공유 이미지 등 여러 자리에 재사용됩니다.

프레임 장식(그림자, 반사, 3D 기울임)이 과하면 오히려 안의 UI보다 프레임이 더 눈에 띕니다. 주소창에 가짜 URL을 넣을 땐 실제 도메인처럼 보이는 문자열을 써서 신뢰를 더할 수 있지만, 실존하는 타사 도메인을 쓰면 안 됩니다.

언제 쓰나

제품이 화면 기반(웹·앱)이고, "실제로 이렇게 생겼다"를 보여주고 싶을 때. 제품이 API·인프라처럼 화면이 없다면 다이어그램이 더 적합합니다.