EmptyState
빈 상태 안내 — 중앙 정렬의 icon·title·description·action 4슬롯. 아이콘은 surface-muted 원형 장식, 행동 슬롯으로 다음 단계를 제시합니다.
마지막 업데이트 2026-06-11
한눈에#
리스트·테이블·검색 결과가 비었을 때 "왜 비었는지 + 다음에 뭘 할지"를 한 자리에서 안내합니다 — icon·title·description·action 4슬롯의 중앙 정렬 레이아웃입니다.
검색 결과가 없습니다
다른 검색어로 다시 시도하거나, 필터를 초기화해 보세요.
- icon·title·desc·action 4슬롯
- 일러스트 슬롯
- 중앙 정렬 유동
- RSC
아이콘 원형 장식 + 제목 + 설명 + 행동 슬롯으로 다음 단계를 제시합니다
사용 시점#
데이터가 비어 다음 단계를 안내해야 하면 EmptyState — 로딩 중이거나 오류 복구면 다른 컴포넌트입니다.
아직 프로젝트가 없습니다
첫 프로젝트를 만들어 시작하세요.
리스트·검색 결과가 비었을 때 왜 비었나 + 다음 행동을 한 자리에서
Empty State 일러스트 (Track B 5-2 · 프리뷰)#
빈상태에 쓰는 스팟 일러스트 세트 — 그라데이션·그림자로 깊이를 주는 블루 카드/씬 스타일입니다.
일러스트 자산을 코드젠해 @wds/ui-web의 BloomSpot 컴포넌트로 제공합니다. 단일 버전(자체 backdrop을
가진 씬)이라 라이트·다크 양 테마에서 동일 자산을 노출합니다. 기본은 장식 용도(스크린리더 건너뜀)이고,
label을 주면 role=img로 의미를 전달합니다.
8종 변형: search(검색 결과 없음)·noData(데이터 없음)·forms(폼 없음)·sheet(시트 없음)·
questions(질문 없음)·groups(그룹 없음)·library(라이브러리 비었음)·tasks(할 일 없음).
EmptyState는 전용 illustration 슬롯을 얻어, 아이콘 원형 대신 자체 프레임의 일러스트를 더 크게
렌더합니다(아래 맥락 프리뷰는 illustration={<BloomSpot variant="search" />}).
- 검색 결과 없음검색·필터 결과 0
- 데이터 없음데이터·통계 비었음
- 폼 없음설문·양식 없음
- 시트 없음스프레드시트·표 비었음
- 질문 없음FAQ·Q&A 비었음
- 그룹 없음팀·그룹 비었음
- 라이브러리 비었음컬렉션·보관함 없음
- 할 일 없음작업·태스크 비었음
검색 결과가 없습니다
다른 검색어로 다시 시도하거나, 필터를 초기화해 보세요.
플레이그라운드#
컨트롤로 props를 조작하면 미리보기와 코드가 실시간 갱신됩니다.
아직 항목이 없습니다
새 항목을 추가해 시작하세요.
import { EmptyState } from '@wds/ui-web';
<EmptyState title="아직 항목이 없습니다" />변형#
슬롯 조합으로 밀도를 조절합니다 — title만 필수입니다.
아직 프로젝트가 없습니다
조건에 맞는 에이전트가 없습니다
상태 필터를 넓히면 더 많은 결과를 볼 수 있습니다.
크기#
size prop이 없습니다 — 부모 폭을 채우고 콘텐츠를 중앙 정렬하는 유동
레이아웃입니다. 아이콘 원형은 48px(space.12) 고정, 설명은 최대 28rem으로
줄 길이를 제한합니다.
상태#
정적 컴포넌트라 인터랙션 상태가 없습니다(RSC). 행동은 action 슬롯에
넘긴 Button/TextLink가 소유합니다.
Props#
| Prop | 타입 | 기본값 | 설명 |
|---|---|---|---|
icon | ReactNode | — | 아이콘 슬롯 — surface-muted 원형(48px) 안에 렌더, 장식(aria-hidden) |
illustration | ReactNode | — | 일러스트 슬롯 — 제공 시 아이콘 원형 대신 자체 프레임 일러스트를 렌더(더 큼). icon보다 우선, 장식(aria-hidden) |
title | ReactNode | — | 제목 (필수) |
description | ReactNode | — | 보조 설명 — 미제공 시 영역 미렌더 |
action | ReactNode | — | 행동 슬롯 (예: Button) — 미제공 시 영역 미렌더 |
…rest | Omit<HTMLAttributes<div>, 'title'> | — | className 등 전달 (네이티브 title 툴팁과의 충돌은 타입에서 차단) |
접근성#
- 아이콘 원형은 장식(
aria-hidden) — 정보는 title/description 텍스트가 전달합니다 - title은
p요소입니다 — 페이지 구조상 헤딩이 필요하면title슬롯에<h2>등을 직접 넘기세요 (ReactNode 슬롯) - 행동은
action슬롯의 실제 버튼/링크가 제공합니다 — 키보드 경로는 슬롯 컴포넌트(Button 등)가 보장합니다 - 빈 상태 도착을 알릴 필요가 있으면(검색 직후 등) 호출부에서 라이브 리전을 구성하세요 — 컴포넌트 자체는 정적입니다
토큰#
component 토큰 없이 semantic을 직접 소비합니다(신설 기준 §4 미충족).
| 속성 | 토큰 |
|---|---|
| 아이콘 원형 | color.surface-muted 배경 + color.text-muted 잉크 · radius.full · space.12(48px) |
| 제목 | color.text + font-size.body-1 + font-weight.semibold |
| 설명 | color.text-muted + font-size.body-2 |
| 레이아웃 | space.1/2/6/10 (간격·패딩) |