게슈탈트: 근접성

Gestalt: Proximity

가까이 있는 요소들은 같은 그룹으로 지각한다는 게슈탈트 원리. 간격만으로도 그룹이 생깁니다.

다른 이름: Law of Proximity
···
html
<div class="grid" id="grid"></div>
css
.grid{position:relative;width:88%;height:80%}
.dot{position:absolute;width:11%;aspect-ratio:1;max-width:20px;border-radius:50%;background:var(--accent);transition:left 1.2s cubic-bezier(.4,0,.2,1),top 1.2s cubic-bezier(.4,0,.2,1)}
js
const grid = document.getElementById('grid');
const N = 6;
const even = [];
for (let i = 0; i < N; i++) even.push({ x: 8 + (i % 3) * 38, y: 10 + Math.floor(i / 3) * 55 });
const grouped = [
  { x: 6, y: 10 }, { x: 20, y: 14 },
  { x: 44, y: 8 }, { x: 58, y: 12 },
  { x: 6, y: 62 }, { x: 20, y: 66 },
];
const dots = even.map(p => {
  const d = document.createElement('div');
  d.className = 'dot';
  d.style.left = p.x + '%';
  d.style.top = p.y + '%';
  grid.appendChild(d);
  return d;
});
let grouped_ = true;
function apply(layout) { dots.forEach((d, i) => { d.style.left = layout[i].x + '%'; d.style.top = layout[i].y + '%'; }); }
setInterval(() => { grouped_ = !grouped_; apply(grouped_ ? grouped : even); }, 2000);

1920년대 독일 게슈탈트 심리학자들(막스 베르트하이머 등)이 정리한 지각 원리 중 하나입니다. "요소의 합이 아니라 전체로 본다"는 게슈탈트 원칙의 대표 사례로, 색·모양이 완전히 같아도 간격만 다르면 다른 그룹으로 보입니다.

UI에서는 폼의 라벨-인풋 간격을 좁게, 서로 다른 필드 그룹 사이는 넓게 두는 것만으로 시각적 섹션이 생깁니다. 테두리나 배경색 없이도 여백만으로 구조를 표현할 수 있다는 뜻입니다.

데모의 점들이 균등하게 흩어진 상태와, 간격만 조절해 3쌍으로 묶인 상태를 오갑니다. 색과 크기는 전혀 바뀌지 않습니다.

언제 쓰나

폼·리스트·카드 그룹을 설계할 때 테두리를 추가하기 전에 간격만으로 구분이 되는지 먼저 시도하세요. 더 가볍고 깔끔합니다.