Skip to content

Mobile Bottom Sheet ​

MobileBottomSheet는 /mobile-bottom-sheet 데모에 사용되는 전체 높이 오버레이 바텀시트입니다. 내비게이션 스택을 표현하는 MobileNavigationSheet와 달리, 본문과 헤더를 호출자가 구성합니다.

인터랙티브 데모 ​

시트를 열고 표현 방식, 확장, 뒤로가기 동작을 확인하세요. 시트는 문서 전체 위에 표시됩니다.

Props ​

Prop타입기본값설명
openboolean필수표시 여부
titlestring필수제목
sheetIdstring'mobile-bottom-sheet'시트 DOM ID
ariaLabelstring'Mobile bottom sheet'다이얼로그 접근성 이름
backLabelstring'Back'뒤로가기 버튼 라벨
closeLabelstring'Close'닫기 버튼 라벨
canGoBackbooleanfalse뒤로가기 버튼 표시 여부
closeablebooleantrue닫기 버튼 표시 여부
dismissOnScrimbooleantrue바깥 영역을 눌러 닫기 허용
dismissOnDragboolean미지정아래로 끌어 닫기 허용
dragFromContentbooleanfalse본문에서도 드래그 시작 허용
dragZoneHeightnumber0상단에서 드래그할 영역의 높이(px)
expandablebooleanfalse확장 동작 사용 여부
expandedbooleanfalse확장 상태 (v-model:expanded)
presentation'standard' | 'floating''standard'시트 표현 방식
classstring—루트 요소에 적용할 클래스

이벤트와 슬롯 ​

typescript
emit('back')
emit('close')
emit('update:expanded', value: boolean)
슬롯용도
header-title기본 제목 대신 표시할 제목 콘텐츠
header-actions헤더 오른쪽의 보조 동작
default시트 본문

사용 예 ​

vue
<MobileBottomSheet
    :open="sheetOpen"
    title="필터"
    :can-go-back="false"
    :dismiss-on-scrim="true"
    @close="sheetOpen = false"
>
    <FilterForm />
</MobileBottomSheet>

컴포넌트는 Teleport로 body에 렌더되고 다이얼로그 역할, 포커스 이동·복원, Escape 닫기, 배경 스크롤 잠금을 관리합니다. closeable은 닫기 버튼만 제어하며, 바깥 영역 클릭을 막으려면 dismissOnScrim도 false로 설정하세요.