슬라이드 그리드

Slide Grid

보이지 않는 열·여백 격자에 슬라이드의 모든 요소를 맞춰서, 화면마다 제목·이미지·캡션의 위치가 흔들리지 않게 합니다.

다른 이름: Layout grid (slides)Alignment grid
···
html
<div class="slide" id="slide">
  <span class="badge" id="badge"></span>
  <div class="gridlines"></div>
  <p class="ttl" id="ttl"></p>
  <div class="img"></div>
  <p class="cap" id="cap"></p>
</div>
css
.slide{position:absolute;inset:6%;border-radius:clamp(6px,1.6vmin,14px);background:var(--surface);border:1px solid var(--line);padding:6vmin}
.badge{position:absolute;top:4%;right:4%;z-index:2;font:800 clamp(10px,2.4vmin,14px)/1 system-ui;padding:.3em .7em;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--accent-2)}
.slide.good .badge{color:var(--accent-3)}
.gridlines{position:absolute;inset:6%;opacity:0;pointer-events:none;background-image:repeating-linear-gradient(90deg,var(--line) 0 1px,transparent 1px calc(100% / 6))}
.slide.good .gridlines{opacity:1}
.ttl{position:absolute;top:10%;left:22%;margin:0;font:700 clamp(10px,2.6vmin,14px)/1.2 -apple-system,sans-serif;color:var(--fg)}
.img{position:absolute;top:32%;left:9%;width:35%;height:30%;border-radius:6px;background:linear-gradient(135deg,var(--accent),var(--accent-3));opacity:.3}
.cap{position:absolute;bottom:10%;left:31%;margin:0;font:500 clamp(8px,1.8vmin,10px)/1.3 -apple-system,sans-serif;color:var(--muted)}
.slide.good .ttl{left:9%;top:10%}
.slide.good .img{left:9%;top:32%}
.slide.good .cap{left:9%;bottom:10%}
js
const el = (id) => document.getElementById(id);
const slide = el('slide');
const L = {
  ko: { badge: ['✕ 격자 없음', '✓ 격자 정렬'], ttl: '분기 회고', cap: '그림 1. 지표 요약' },
  en: { badge: ['✕ No grid', '✓ Grid aligned'], ttl: 'Quarterly Retro', cap: 'Fig 1. Metric summary' },
};
let n = 0;
function render() {
  const good = n % 2 === 1;
  const lang = n % 4 < 2 ? 'ko' : 'en';
  const t = L[lang];
  slide.classList.toggle('good', good);
  el('badge').textContent = good ? t.badge[1] : t.badge[0];
  el('ttl').textContent = t.ttl; el('cap').textContent = t.cap;
}
render();
setInterval(() => { n++; render(); }, 2200);

슬라이드 소프트웨어의 눈금자를 꺼두고 감으로 요소를 배치하면, 슬라이드마다 제목 위치가 조금씩 어긋난다. 하나씩 보면 티가 안 나지만 연달아 넘기면 청중은 화면이 덜컹거린다고 느낀다.

데모의 ✕는 제목·이미지·캡션이 격자 없이 감으로 배치돼 서로 다른 여백을 갖는다. ✓는 같은 요소들이 보이지 않는 격자의 같은 열에 맞춰져서, 격자선을 켜보면 모든 모서리가 격자에 딱 붙어 있다.

체크리스트: 슬라이드 마스터에 격자·안내선을 설정해뒀는가, 같은 역할의 요소가 슬라이드마다 같은 좌표에서 시작하는가, 이미지·도형의 여백이 텍스트 여백과 같은 값을 쓰는가.

언제 쓰나

여러 사람이 나눠 만든 슬라이드를 하나로 합칠 때, 격자에 맞춰 정렬부터 다시 확인하세요.