1. 평면성을 넘어선 깊이
플랫 디자인은 스큐어모피즘의 과잉에 대한 반작용으로 2010년대 초를 지배했습니다. 2020년대 중반이 되자 순수한 평면성에도 문제가 생겼습니다. 전부 똑같아 보인다는 것입니다. 지금의 디자인은 장식적인 질감 대신 그림자, 블러, 레이어, 반투명으로 위계와 초점을 만듭니다.
오버레이와 떠 있는 요소에는 글래스모피즘
반투명 배경에 backdrop-filter: blur()를 쓰면 그 요소가 표면 위에 떠 있다는 느낌을 줍니다. 내비게이션 바, 모달, 툴팁, 카드에 잘 맞습니다. 다만 제약이 하나 있습니다. 글래스모피즘은 배경이 시각적으로 풍부해야 작동합니다. 단색 위에서는 그냥 무광 사각형으로 보입니다.
고도를 표현하는 다층 그림자
box-shadow 하나만 쓰면 평범해 보입니다. 블러 반경이 다른 그림자를 2~3개 겹치면 물리적으로 설득력 있는 고도가 생깁니다. Google의 Material Design과 Apple의 Human Interface Guidelines가 쓰는 방식입니다. 가장 작은 그림자가 가장자리를 또렷하게 하고, 가장 큰 그림자가 주변광 그림자를 만듭니다.
절제된 그라디언트
그라디언트가 돌아왔지만 쓰임이 달라졌습니다. 표면의 미세한 그라디언트(조명을 암시하는 거의 보이지 않는 색 변화), 그라디언트 테두리, 어두운 배경 위의 그라디언트 텍스트가 2026년에 흔합니다. 2018년식의 요란한 무지개 그라디언트는 피하세요. 지금의 그라디언트는 방향성이 있고, 절제되어 있으며, 목적이 있습니다.
2. 디자인 결정으로서의 성능
성능은 엔지니어링만의 문제가 아니라 디자인에서 시작됩니다. 이미지 포맷, 폰트 로딩, 애니메이션 복잡도, 자산 무게에 대한 선택이 제품의 체감 속도를 그대로 결정합니다. 8초에 로드되는 아름다운 디자인은 실패한 디자인입니다.
이미지 포맷 선택
포맷 결정만으로 페이지 무게가 40~70% 줄어듭니다. 2026년 기준으로는 사진과 UI 이미지에 WebP, 최대 압축이 필요하면 <picture> 대체와 함께 AVIF, 아이콘과 로고와 일러스트에는 SVG, 무손실 스크린샷이나 글자가 선명해야 하는 이미지에만 PNG입니다.
중요한 세 가지 숫자
- LCP (최대 콘텐츠 렌더링) — 주요 콘텐츠가 얼마나 빨리 뜨는가. 2.5초 이하가 목표입니다.
- INP (다음 페인트까지의 상호작용) — 사용자 조작에 얼마나 빨리 반응하는가. 200ms 이하가 목표입니다.
- CLS (누적 레이아웃 이동) — 콘텐츠가 얼마나 튀는가. 0.1 이하가 목표입니다.
CLS는 디자인 단계에서 가장 쉽게 막을 수 있습니다. 모든 이미지에 width와 height를 넣고, 광고와 임베드 자리를 미리 확보하고, 폰트 교체로 줄 높이가 바뀌지 않게 하면 대부분 해결됩니다.
폰트 로딩
웹폰트는 조용한 성능 킬러입니다. 굵기 하나가 20~30KB이고, 아이콘 폰트를 전체 범위로 부르면 1MB를 넘기도 합니다. 실제로 쓰는 굵기만 부르고, 서브셋을 만들고, font-display: swap을 지정하고, 중요한 폰트는 preload하세요.
3. 주역이 된 타이포그래피
장식 요소가 줄어들면서 타이포그래피가 시각적 부담을 대부분 짊어지게 되었습니다. 2026년의 좋은 타이포그래피는 세 가지에서 갈립니다.
- 모듈러 스케일 — 임의의 크기가 아니라 하나의 비율(1.25, 1.333, 1.5)에서 파생된 크기 체계를 씁니다.
- 가변 폰트 — 굵기 하나당 파일 하나 대신 파일 하나로 전 범위를 씁니다. 굵기를 3개 이상 쓴다면 대개 더 가볍습니다.
- 유동 타이포그래피 —
clamp()로 중단점 없이 뷰포트에 따라 부드럽게 변합니다. 단, 중간값에rem을 더해야 확대가 동작합니다.
4. 기본 요건이 된 접근성
접근성은 더 이상 마지막에 붙이는 항목이 아닙니다. 실무에서 가장 자주 걸리는 것들은 이렇습니다.
- 색 대비 — 본문은 4.5:1, 큰 텍스트는 3:1이 최소입니다. 흐린 회색 위의 흐린 회색이 가장 흔한 위반입니다.
- 터치 타깃 — 최소 44×44px입니다. 모바일에서 서로 붙은 아이콘 버튼이 자주 걸립니다.
- 키보드 포커스 —
outline: none을 대체 없이 쓰지 마세요. 키보드 사용자가 자기 위치를 잃습니다. - 동작 축소 —
prefers-reduced-motion을 존중하세요. 전정 장애가 있는 사용자에게 큰 애니메이션은 불편을 넘어 고통입니다.
5. 프라이버시 우선, 로컬 우선
2026년의 뚜렷한 변화 하나는 사용자가 자기 데이터가 어디로 가는지 묻기 시작했다는 점입니다. 브라우저에서 처리할 수 있는 일을 서버로 보내지 않는 설계가 기능이자 차별점이 되었습니다.
이미지 처리, 파일 변환, 텍스트 가공은 대부분 WebAssembly와 Canvas API로 클라이언트에서 가능합니다. 그러면 서버 비용이 사라지고, 오프라인에서도 동작하며, 사용자에게 "당신의 파일은 이 기기를 떠나지 않습니다"라고 말할 수 있습니다. 그리고 그 말은 네트워크 패널에서 직접 검증 가능해야 합니다.
6. 디자인 시스템 사고
화면 단위가 아니라 토큰과 컴포넌트 단위로 생각하는 것이 표준이 되었습니다. 색, 간격, 타이포그래피, 반경, 그림자를 CSS 변수로 정의하고 그 위에 컴포넌트를 쌓습니다.
:root {
--color-primary: #7c5cfc;
--space-1: 0.25rem;
--space-2: 0.5rem;
--radius-md: 0.75rem;
--shadow-md: 0 4px 16px rgb(0 0 0 / 0.3);
}
이렇게 하면 다크 모드가 값 교체만으로 끝나고, 브랜드 변경이 한 곳에서 처리되며, 일관성이 규율이 아니라 구조에서 나옵니다.
7. 2026년의 반응형
미디어 쿼리 중심에서 내재적 반응형으로 무게중심이 옮겨갔습니다.
- 컨테이너 쿼리 — 컴포넌트가 뷰포트가 아니라 자기 컨테이너 폭에 반응합니다. 같은 카드가 사이드바와 본문에서 알아서 다르게 보입니다.
clamp()와min(),max()— 중단점 없이 값이 부드럽게 변합니다.- 고유 그리드 —
grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr))한 줄이면 미디어 쿼리 없이 반응형 그리드가 됩니다.
흔한 실수
- 단색 배경 위의 글래스모피즘 — 블러할 것이 없으면 그냥 흐린 사각형입니다.
- 실제 콘텐츠 없이 디자인 — 로렘 입숨은 실제 문장 길이의 문제를 숨깁니다.
- 모바일에서 히어로가 첫 화면을 다 먹는 경우 — 제품을 설명만 하고 보여주지 못합니다.
- 가장 느린 기기를 무시 — 최신 노트북에서만 테스트하면 중급 안드로이드에서 무슨 일이 일어나는지 알 수 없습니다.
- 측정 없이 최적화 — 병목은 대개 예상과 다릅니다. 먼저 측정하세요.
자주 묻는 질문
- 글래스모피즘은 성능에 나쁜가요?
backdrop-filter는 GPU 합성을 유발하므로 저가 기기에서 비쌉니다. 화면당 몇 개 요소에만 쓰고, 스크롤과 함께 움직이는 큰 영역에는 피하세요.- 디자인 시스템은 작은 프로젝트에도 과한가요?
- 전체 시스템은 과할 수 있지만 토큰은 아닙니다. 색과 간격을 CSS 변수로 정의하는 데는 10분이 걸리고, 첫 다크 모드 요청이 오는 순간 값을 합니다.
- 아직도 데스크톱 우선으로 디자인해도 되나요?
- 트래픽이 압도적으로 데스크톱인 도구가 아니라면 권하지 않습니다. 모바일 우선은 취향이 아니라 제약이 강한 쪽부터 푸는 방식이고, 넓은 화면으로 확장하는 편이 반대보다 쉽습니다.
- Core Web Vitals 중 무엇부터 고쳐야 하나요?
- 보통 CLS입니다. 가장 싸게 고쳐지고 사용자 체감에 즉시 반영됩니다. 이미지 크기 명시와 임베드 자리 확보만으로 대부분 해결됩니다. 그 다음이 LCP이고, INP는 대개 자바스크립트를 줄이는 문제입니다.