거터

Gutter

그리드나 다단 레이아웃에서 칼럼과 칼럼 사이에 두는 고정된 여백. 칼럼 자체가 아니라 칼럼 "사이"를 가리키는 말입니다.

다른 이름: Column gapGrid gutter
···
html
<div class="stage">
  <div class="cols" id="cols"></div>
  <div class="readout" id="readout">gap: 24px</div>
</div>
css
.stage{display:flex;flex-direction:column;align-items:center;gap:14px;width:min(92%,480px)}
.cols{display:grid;grid-template-columns:repeat(6,1fr);width:100%;height:min(58vmin,170px)}
.cols b{background:var(--surface);border:1px solid var(--line);border-radius:6px}
.cols b:nth-child(odd){background:color-mix(in oklab,var(--accent) 16%,var(--surface))}
.readout{font-family:ui-monospace,monospace;font-size:clamp(11px,2vmin,14px);color:var(--muted)}
js
const cols = document.getElementById('cols');
const readout = document.getElementById('readout');
for (let i = 0; i < 6; i++) cols.appendChild(document.createElement('b'));
const values = [4, 24, 44, 24];
let i = 0;
function apply() {
  const v = values[i % values.length];
  cols.style.gap = v + 'px';
  readout.textContent = 'gap: ' + v + 'px';
  i++;
}
apply();
setInterval(apply, 1300);

인쇄 책자에서 제본 때문에 안쪽에 남겨야 했던 여백에서 유래한 말입니다. 웹 그리드에서는 칼럼 폭과 별개로 거터 폭을 정해서, 칼럼 수가 몇 개든 콘텐츠끼리 너무 붙어 보이지 않게 합니다.

CSS로는 `gap`(예전엔 `grid-gap`) 속성 하나로 끝납니다: `display: grid; grid-template-columns: repeat(12, 1fr); gap: 24px`. Flexbox도 최근엔 `gap`을 지원해서 굳이 마지막 칼럼에만 `margin-right: 0`을 빼주는 예전 방식이 필요 없습니다.

거터가 너무 좁으면 칼럼들이 한 덩어리로 보여서 그리드 구조가 안 읽히고, 너무 넓으면 같은 행에 있는 요소인데도 서로 무관해 보입니다. 보통 칼럼 폭의 1/4~1/3 정도, 또는 8pt 그리드의 배수(16px, 24px)로 잡습니다.