LogoCoUI

Drawer

드로어/사이드바 컴포넌트

Drawer#

화면 측면에서 슬라이드하여 나타나는 패널 컴포넌트입니다.

사용법#

// 기본 드로어
CouiDrawer(
  title: '설정',
  child: Column(
    children: [
      CouiToggle(value: darkMode, onChanged: handleDarkMode, label: '다크 모드'),
      CouiToggle(value: notifications, onChanged: handleNotif, label: '알림'),
    ],
  ),
)

// 드로어 열기
showCouiDrawer(
  context: context,
  builder: (context) => CouiDrawer(
    title: '필터',
    child: FilterPanel(),
    footer: CouiButton(
      onPressed: handleApplyFilter,
      child: Text('적용'),
    ),
  ),
);

// 위치 지정
CouiDrawer(
  placement: DrawerPlacement.right,
  title: '상세 정보',
  child: DetailPanel(),
)
Drawer(
  title: '설정',
  children: [
    Toggle(checked: darkMode, onChange: handleDarkMode, label: '다크 모드'),
    Toggle(checked: notifications, onChange: handleNotif, label: '알림'),
  ],
)

Drawer(
  placement: DrawerPlacement.right,
  title: '상세 정보',
  child: DetailPanel(),
)

Props / Parameters#

속성타입기본값설명
titleString?null드로어 제목
placement DrawerPlacement left 표시 위치
sizeDrawerSizemd드로어 너비
dismissible bool true 외부 클릭으로 닫기
showOverlay bool true 배경 오버레이 표시
childWidget?null드로어 내용
footerWidget?null하단 영역

변형 (Variants)#

위치#

CouiDrawer(placement: DrawerPlacement.left, child: content)   // 좌측
CouiDrawer(placement: DrawerPlacement.right, child: content)  // 우측
CouiDrawer(placement: DrawerPlacement.top, child: content)    // 상단
CouiDrawer(placement: DrawerPlacement.bottom, child: content) // 하단

크기#

크기너비
SMDrawerSize.sm280px
MDDrawerSize.md360px
LGDrawerSize.lg480px
XLDrawerSize.xl640px

네비게이션 드로어#

CouiDrawer(
  title: '메뉴',
  child: CouiSideNav(
    currentIndex: selectedIndex,
    onTap: handleNavTap,
    items: navItems,
  ),
)