📌 설명
서비스 전반에서 일관된 방식으로 모달과 패널을 사용할 수 있도록 공통 Surface 컴포넌트를 구현합니다.
Surface를 Root로 하는 Compound Pattern을 적용하여 모달과 패널을 동일한 인터페이스로 사용할 수 있도록 구성합니다.
모달은 Overlay를 함께 사용할 수 있고, 패널은 Overlay 없이 화면 우측에 표시되도록 지원합니다.
ESC 키 및 외부 영역 클릭 시 닫기 기능을 제공하며, 작성 중인 Surface는 canClose, closeOnEscape, closeOnOutsideClick 옵션을 통해 의도치 않게 닫히지 않도록 제어할 수 있습니다.
공통 Button 컴포넌트와 조합할 수 있도록 Trigger, Close는 asChild 패턴을 지원합니다.
🛠️ 구현 목록 (TODO)
Surface
Compound Pattern
Interaction
접근성
스타일
문서화
✅ 참고
디자인 링크, 관련 이슈 등 (선택)

📌 설명
서비스 전반에서 일관된 방식으로 모달과 패널을 사용할 수 있도록 공통
Surface컴포넌트를 구현합니다.Surface를 Root로 하는 Compound Pattern을 적용하여 모달과 패널을 동일한 인터페이스로 사용할 수 있도록 구성합니다.모달은 Overlay를 함께 사용할 수 있고, 패널은 Overlay 없이 화면 우측에 표시되도록 지원합니다.
ESC 키 및 외부 영역 클릭 시 닫기 기능을 제공하며, 작성 중인 Surface는
canClose,closeOnEscape,closeOnOutsideClick옵션을 통해 의도치 않게 닫히지 않도록 제어할 수 있습니다.공통 Button 컴포넌트와 조합할 수 있도록
Trigger,Close는asChild패턴을 지원합니다.🛠️ 구현 목록 (TODO)
Surface
Surface기반 Compound Pattern 구현variant="modal"지원variant="panel"지원canClose기반 닫기 정책 지원Compound Pattern
SurfaceRoot 구현Surface.Trigger구현Surface.Portal구현Surface.Overlay구현Surface.Content구현Surface.Header구현Surface.Body구현Surface.Footer구현Surface.Close구현Trigger,Close에서asChild지원Interaction
canClose=false일 때 Outside Click 닫기 차단canClose=false일 때 ESC 닫기 차단closeOnEscape옵션 지원closeOnOutsideClick옵션 지원접근성
role="dialog"적용aria-modal적용aria-label또는aria-labelledby타입 필수화Surface.Close의aria-label타입 필수화aria-controls,aria-expanded자동 연결스타일
z-index.css로 z-index 토큰 관리문서화
✅ 참고