Burger

Burger (햄버거 버튼)

Burger 컴포넌트는 열기/닫기 상태를 나타내는 메뉴 버튼을 렌더링하는 컴포넌트예요. 모바일 내비게이션 토글 버튼으로 자주 사용해요.

출처: 문서

본문

Burger 컴포넌트는 열기/닫기 메뉴 버튼을 렌더링해요. opened와 onClick prop으로 컴포넌트 상태를 제어할 수 있어요. opened prop이 설정되어 있으면 X(닫기) 모양이 렌더링되고, 그렇지 않으면 햄버거 아이콘이 렌더링돼요.

import { useDisclosure } from '@mantine/hooks';
import { Burger } from '@mantine/core';

function Demo() {
  const [opened, { toggle }] = useDisclosure();
  return <Burger opened={opened} onClick={toggle} aria-label="Toggle navigation" />;
}

선(line) 크기 바꾸기

lineSize prop으로 햄버거 아이콘의 선 두께를 조절할 수 있어요.

import { useDisclosure } from '@mantine/hooks';
import { Burger } from '@mantine/core';

function Demo() {
  const [opened, { toggle }] = useDisclosure();
  return <Burger lineSize={2} size="xl" opened={opened} onClick={toggle} aria-label="Toggle navigation" />;
}

요소 ref 가져오기

useRef를 활용해 Burger 요소의 ref를 얻을 수 있어요.

import { useRef } from 'react';
import { Burger } from '@mantine/core';

function Demo() {
  const ref = useRef<HTMLButtonElement>(null);
  return <Burger ref={ref} />;
}

접근성 (Accessibility)

스크린 리더에서 Burger를 접근 가능하게 만들려면 aria-label을 설정하거나, VisuallyHidden 컴포넌트를 사용해야 해요.

import { Burger, VisuallyHidden } from '@mantine/core';

function Demo() {
  return (
    <>
      <Burger aria-label="Toggle navigation" />

      <Burger>
        <VisuallyHidden>Toggle navigation</VisuallyHidden>
      </Burger>
    </>
  );
}

더 알아보기 (Learn more)

  • VisuallyHidden — 시각적으로는 숨기되 스크린 리더에는 읽히게 하는 컴포넌트
  • useDisclosure — 열기/닫기 상태 관리 훅