ComponentsP3 본문

컴포넌트

@wds/ui-web 56종 카탈로그 — DK 프로젝트 사양 승격(멀티셀렉트·기간 선택기·데이터그리드·모바일 표준)과 적응형 컴포넌트(ADR-012)까지 포함한 업무용 전체 어휘입니다.

마지막 업데이트 2026-06-12

전 컴포넌트를 한눈에 보려면 비주얼 인덱스를 참고하세요 — 공개 배럴에서 자동 도출되어 코드와 어긋나지 않습니다.

카탈로그 (56종)#

입력 · 폼 (22)#

컴포넌트한 줄 요약
Button3변형 × 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)#

컴포넌트한 줄 요약
Cardheader/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논모달 팝업 — 자동 플립
Tooltiphover/focus 설명 — 지연 표시
DropdownMenu메뉴 — 키보드 순환·danger 항목
Command검색 가능 명령 목록(⌘K 어휘)

피드백 · 상태 (8)#

컴포넌트한 줄 요약
ChipM3 칩 — 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드래그앤드롭 업로드 — 전송은 소비자 책임
ColorPickerHSV 스펙트럼·프리셋·스포이드
CopyButton클립보드 복사 — Copy 패턴 v1 승격
AiChatInputAI 채팅 입력 — 전송/스트리밍/중단
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 병합·하위행·서버 페이징