Drawer

현재 화면의 맥락을 유지하며 가장자리에서 보조 패널을 엽니다.

Live preview
컴포넌트를 조작하면 여기에 결과가 표시됩니다.
코드 보기
HTML
<sy-button id="open-drawer">상세 패널 열기</sy-button>
<sy-drawer
  closable
  size="custom"
  customsize="280"
  position="right"
  mask-closable
  animation="none"
  id="sample"
><strong slot="header">프로젝트 정보</strong>
  <div slot="body">
    <p>담당자 · Alex Kim</p>
    <p>진행 상태 · 검토 중</p>
  </div>
  <sy-button slot="footer" id="close-drawer">확인</sy-button>
</sy-drawer>

<script type="module">
  await ((root) => {
    const panel = root.querySelector('#sample');
    root.querySelector('#open-drawer').addEventListener('click', () => panel.open = true);
    panel.querySelector('#close-drawer').addEventListener('click', () => panel.open = false);
  })(document);
</script>

사용 가이드

#

현재 화면을 유지하면서 상세 정보나 보조 설정을 보여줍니다. 반드시 결정을 받아야 한다면 Modal을 사용하세요.

위치와 크기
position으로 방향을 정합니다. 사용자 지정 크기는 size="custom"과 customSize(px)를 사용하세요.
내용 구성
header·body·footer 슬롯으로 제목, 상세 내용, 동작을 나누세요.
열기와 닫기
open으로 열고 closable·maskClosable로 닫기 동작을 정합니다.

기능별 예제

#

14개 주제에서 필요한 기능을 선택하세요. 속성 설정, 메서드 호출, 이벤트 결과와 슬롯 구성을 실행 화면과 코드로 확인할 수 있습니다.

사용 예제 · Overview

선택한 예제를 직접 조작해 보세요. 여러 구성이 있는 주제는 세부 예제를 바꿀 수 있습니다.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · Animation

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · AnimationSpeed

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · Closable

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · Custom Size

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · Maskless

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · Open

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · ParentId

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · Position

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · Prevent Close

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · Size

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

이벤트 · Closed

컴포넌트를 조작하면 아래 실행 화면에 이벤트 이름과 전달 값이 표시됩니다.

코드 보기
HTML
예제를 불러오고 있습니다.

이벤트 · Opened

컴포넌트를 조작하면 아래 실행 화면에 이벤트 이름과 전달 값이 표시됩니다.

코드 보기
HTML
예제를 불러오고 있습니다.

사용 예제 · 상단 드로어

미리보기 위쪽에서 작은 드로어를 엽니다.

코드 보기
HTML
<sy-button id="open-drawer">상세 패널 열기</sy-button>
<sy-drawer
  closable
  size="custom"
  customsize="160"
  position="top"
  mask-closable
  animation="none"
  id="sample"
><strong slot="header">프로젝트 정보</strong>
  <div slot="body">
    <p>담당자 · Alex Kim</p>
    <p>진행 상태 · 검토 중</p>
  </div>
  <sy-button slot="footer" id="close-drawer">확인</sy-button>
</sy-drawer>

<script type="module">
  const component1 = document.querySelector("#sample");
  Object.assign(component1, {
    "position": "top",
    "size": "custom",
    "customSize": 160
  });
  await ((root) => {
    const panel = root.querySelector('#sample');
    root.querySelector('#open-drawer').addEventListener('click', () => panel.open = true);
    panel.querySelector('#close-drawer').addEventListener('click', () => panel.open = false);
  })(document);
</script>

API reference

#

이름에 마우스를 올리거나 키보드로 선택하면 적용 코드를 확인할 수 있습니다. 터치 화면에서는 이름을 누르세요.

<sy-drawer>

Properties

Attribute / PropertyTypeDefaultDescription
booleanfalse배경 마스크를 생략합니다.
booleanfalse사용자 닫기 동작을 막습니다. 앱에서 open=false로 종료하세요.
booleanfalse닫기 버튼을 표시합니다.
booleanfalse하위 메뉴가 펼쳐진 상태입니다.
number100size=custom일 때 패널 너비 또는 높이(px)입니다.
'top' | 'left' | 'right' | 'bottom''right'패널이 나타날 화면 가장자리입니다.
'small' | 'medium' | 'large' | 'custom''medium'컴포넌트의 크기입니다.
booleantrue배경을 클릭하면 패널을 닫습니다.
booleantrueWhen true, drawer closes on browser history navigation. Spec default: true.
string''패널을 배치할 부모 요소의 id입니다.
| 'none' | 'fade' | 'fade-scale' | 'zoom' | 'pop' | 'slide' | 'slide-fade' | 'reveal' | 'slide-top' | 'slide-bottom' | 'slide-left' | 'slide-right' | 'slide-fade-top' | 'slide-fade-bottom' | 'slide-fade-left' | 'slide-fade-right' | 'reveal-top' | 'reveal-bottom' | 'reveal-left' | 'reveal-right' | 'flip-x' | 'flip-y' | 'bounce' | 'spin''none'Enter/exit animation type. `none` (default) toggles instantly. Three flavors of direction handling: - **Auto** (`slide`, `slide-fade`, `reveal`): direction follows the `position` attribute (a right-anchored drawer slides from the right). - **Explicit** (`slide-{top,bottom,left,right}`, `slide-fade-…`, `reveal-…`): direction is fixed regardless of `position`. - **Direction-less**: plays the same way no matter the orientation. Some combinations (e.g. `zoom` on an edge-anchored panel) look unusual but are exposed for completeness — selection is the consumer's call.
'x-fast' | 'fast' | 'medium' | 'slow' | 'x-slow''fast'Animation playback speed token. Maps to `--transition-*` global tokens.

Events

EventDetailDescription
CustomEvent<void>목록을 열면 발생합니다.
CustomEvent<void>이벤트의 detail에서 결과를 확인하세요.

Slots

SlotDescription
header 영역에 표시할 내용입니다.
body 영역에 표시할 내용입니다.
footer 영역에 표시할 내용입니다.