컴포넌트
@wds/ui-web 56종 카탈로그 — DK 프로젝트 사양 승격(멀티셀렉트·기간 선택기·데이터그리드·모바일 표준)과 적응형 컴포넌트(ADR-012)까지 포함한 업무용 전체 어휘입니다.
마지막 업데이트 2026-06-12
전 컴포넌트를 한눈에 보려면 비주얼 인덱스를 참고하세요 — 공개 배럴에서 자동 도출되어 코드와 어긋나지 않습니다.
카탈로그 (56종)#
입력 · 폼 (22)#
| 컴포넌트 | 한 줄 요약 |
|---|---|
| Button | 3변형 × 3크기 행동 유도 — 기본 채움 AA 보장(DD-6) |
| IconButton | 아이콘 전용 버튼 — aria-label 필수, 44px 히트 |
| TextLink | 본문 링크 — 외부 링크 표시 |
| Input | 아이콘 슬롯 + invalid 텍스트 입력 |
| Textarea | 여러 줄 입력 — Input과 동일 어휘 |
| SearchField | 검색 입력 — 지우기 버튼·Enter 검색 |
| Select | 단일 리스트박스 — 타이프어헤드, 모바일 시트 지원 |
| MultiSelect | 다중 선택 — 칩·검색·전체·그룹, 모바일 시트 |
| Autocomplete | 비동기 태그 입력 — 서버 조회 분리 설계 |
| Checkbox | 체크박스 — indeterminate 지원 |
| RadioGroup | 라디오 그룹 — roving tabindex |
| BadgeToggle | 필 형태 단일 선택 — "전체" 옵션 |
| SegmentedButton | 연결 세그먼트 — single/multi 선택(BadgeToggle 정식화) |
| Switch | 온/오프 토글 — sm/md |
| Slider | 범위 입력 — 네이티브 기반 |
| RangeSlider | 두-썸 범위 슬라이더 — 교차 불가, 제어/비제어 |
| QuantityStepper | 수량 증감 입력 — min/max/step 클램핑 |
| FormField | 라벨·설명·오류 자동 배선 |
| DatePicker | 달력 단일/범위 — 키보드 그리드, 모바일 시트 |
| DateRangePicker | 기간 조회 — 프리셋(연·분기·반기·월)+듀얼 먼스+확정 푸터 |
| TimePicker | 시간 선택 — list 목록·dial 시계판, interval·min/max |
| DayPicker | 반복 일정 — 요일/매월일 토글 |
컨테이너 · 데이터 (7)#
| 컴포넌트 | 한 줄 요약 |
|---|---|
| Card | header/footer 슬롯 surface 컨테이너 |
| Carousel | 가로 스크롤 캐러셀 — multiBrowse·hero·fullScreen |
| Table | 정적 데이터 테이블 |
| DataGrid | 편집형 그리드 — 인라인 편집·정렬·행 선택·페이징 |
| Tabs | 컴파운드 탭 — APG 패턴 |
| Accordion | 단일/다중 펼침 |
| Splitter | 드래그 분할 패널 — 키보드 리사이즈 |
오버레이 (8)#
| 컴포넌트 | 한 줄 요약 |
|---|---|
| Modal | 포커스 트랩·ARIA 완비 다이얼로그 |
| Drawer | 측면 패널 — left/right/bottom |
| BottomSheet | 모바일 표준 표면 — 드래그 닫기, standard/modal·디텐트 |
| SideSheet | 적응형 — compact는 바텀시트, expanded는 측면 패널 |
| Popover | 논모달 팝업 — 자동 플립 |
| Tooltip | hover/focus 설명 — 지연 표시 |
| DropdownMenu | 메뉴 — 키보드 순환·danger 항목 |
| Command | 검색 가능 명령 목록(⌘K 어휘) |
피드백 · 상태 (8)#
| 컴포넌트 | 한 줄 요약 |
|---|---|
| Chip | M3 칩 — assist·filter·input·suggestion 4변형 |
| Toast | 일시 알림 — Provider/useToast |
| Alert | 페이지 내 배너 4변형 |
| Progress | 진행률 — determinate/indeterminate |
| Skeleton | 로딩 자리표시 |
| Spinner | 진행 중 표시 — role=status |
| Badge | 수량·상태 뱃지 |
| Tag | 칩 — 제거 가능 |
아이덴티티 · 내비게이션 (6)#
| 컴포넌트 | 한 줄 요약 |
|---|---|
| Avatar | 이미지/이니셜 아바타 |
| Separator | 수평/수직 구분선 |
| Breadcrumb | 경로 내비 — aria-current |
| Pagination | 페이지 이동 — 줄임 로직 |
| Stepper | 단계 표시기 |
| EmptyState | 빈 상태 안내 + 행동 슬롯 |
유틸리티 · AI (5)#
| 컴포넌트 | 한 줄 요약 |
|---|---|
| FileUpload | 드래그앤드롭 업로드 — 전송은 소비자 책임 |
| ColorPicker | HSV 스펙트럼·프리셋·스포이드 |
| CopyButton | 클립보드 복사 — Copy 패턴 v1 승격 |
| AiChatInput | AI 채팅 입력 — 전송/스트리밍/중단 |
| AgentCard | 에이전트 이름·역할·상태·결과 카드 |
API 컨벤션 (요약)#
전 컴포넌트가 따르는 계약 — 정본은 docs/COMPONENT_API.md입니다.
- variant = 시각 위계:
'primary' | 'secondary' | 'ghost'— primary 채움은 AA 4.5:1 보장(DD-6) - size =
'sm' | 'md' | 'lg'3단 고정, 기본md - 상태는 prop이 아니라 CSS 의사클래스 — Hover/Focus/Active/Disabled
- 비제어 우선 —
defaultValue+ 선택적onChange(문서 데모가 실물로 동작하는 이유) - 모바일 표준(DK 승격) — 선택형 오버레이는
mobile?: boolean+mobileTitle?: string로 BottomSheet 전환, 다중/범위 선택은 임시 선택 → 확인/취소 확정 - RSC 우선 — 상태가 필요한 컴포넌트만
'use client' - 스타일은 CSS Modules +
--wds-*토큰만 — stylelint가 하드코딩을 차단(DD-4) - a11y는 명세의 일부 — 키보드 경로·ARIA 없는 인터랙션 컴포넌트는 미완성으로 간주
설치와 사용#
포털·사내 웹 제품은 pnpm 워크스페이스 의존으로 소스를 직접 소비합니다
(Next.js transpilePackages). GitLab Registry 배포는 원격 연결 시점(R-2)에 패키징과 함께.
import { MultiSelect, DateRangePicker, Button } from '@wds/ui-web';
<MultiSelect label="부서" options={departments} showAll searchable mobile={isMobile} />
<DateRangePicker mobile={isMobile} onConfirm={(range) => search(range)} />
<Button>검색</Button>
DK 프로젝트 통합 노트#
P3.6은 DK 프론트의 검증된 컴포넌트 사양(WizDropDown·WizDatePickerEx 등)을
사양 승격 방식으로 통합한 결과입니다 — 기능 명세는 DK에서, 구현은 WDS
레일(토큰·테스트·axe·문서)로. mobile prop 인터페이스는 DK와 호환되므로
DK가 @wds/ui-web 소비자로 전환할 때 코드 수정이 최소화됩니다.
도메인 결합 컴포넌트(OrgChart·Notification·Dashboard 등)는 DK 앱 소유로 유지합니다.
백로그#
- 차트 스위트 — ECharts 의존 결정과 함께 별도 패키지(@wds/charts) ADR로
- Editor · Gallery/ImageViewer — 수요 확인 후
- DataGrid 2차 — rowspan 병합·하위행·서버 페이징