Box

Box (박스)

Material UI에서 가장 기본적인 컨테이너 컴포넌트인 Box를 알아볼게요. <div>처럼 범용적이면서도 테마와 sx prop을 활용할 수 있어서, 다른 컴포넌트를 묶는 빌딩 블록으로 자주 사용돼요.

출처: 문서

본문

Box 컴포넌트는 MUI System의 CSS 유틸리티에 접근할 수 있는 범용적이고 테마를 인식하는 컨테이너예요.

소개 (Introduction)

Box 컴포넌트는 다른 컴포넌트를 그룹화하기 위한 범용 컨테이너예요. Material UI를 다룰 때 근본적인 빌딩 블록입니다 — 앱의 테마와 sx prop에 접근할 수 있는 것 같은 추가 내장 기능이 있는 <div>라고 생각하면 돼요.

사용법 (Usage)

Box 컴포넌트는 Material UI에서 사용할 수 있는 다른 컨테이너와 달리, 그 사용 목적이 <div>처럼 다목적이고 개방적이에요. 반면 Container, Stack, Paper 같은 컴포넌트는 특정 사용 사례에 이상적인 용도 특화 prop을 갖고 있어요: Container는 메인 레이아웃 방향, Stack은 1차원 레이아웃, Paper는 입체(elevated) 표면용이에요.

기본 (Basics)

import Box from '@mui/material/Box';

Box 컴포넌트는 기본적으로 <div>로 렌더링되지만, component prop으로 다른 유효한 HTML 태그나 React 컴포넌트로 바꿀 수 있어요. 아래 데모는 <div>를 <section> 요소로 대체해요:

import Box from '@mui/material/Box';

export default function BoxBasic() {
  return (
    <Box component="section" sx={{ p: 2, border: '1px dashed grey' }}>
      This Box renders as an HTML section element.
    </Box>
  );
}

커스터마이즈 (Customization)

sx prop을 사용하면 MUI System 패키지에서 노출되는 모든 스타일 함수와 테마 인식 속성에 접근할 수 있는 CSS의 상위 집합(superset)을 사용해서 모든 Box 인스턴스를 빠르게 커스터마이즈할 수 있어요. 아래 데모는 이 prop을 사용해서 테마에서 색상을 적용하는 방법을 보여줘요:

import Box from '@mui/material/Box';
import { ThemeProvider } from '@mui/material/styles';

export default function BoxSx() {
  return (
    <ThemeProvider
      theme={{
        palette: {
          primary: {
            main: '#007FFF',
            dark: '#0066CC',
          },
        },
      }}
    >
      <Box
        sx={{
          width: 100,
          height: 100,
          borderRadius: 1,
          bgcolor: 'primary.main',
          '&:hover': {
            bgcolor: 'primary.dark',
          },
        }}
      />
    </ThemeProvider>
  );
}

구조 (Anatomy)

Box 컴포넌트는 단일 루트 <div> 요소로 구성돼요:

<div className="MuiBox-root">
  <!-- contents of the Box -->
</div>

Box API

Demos (데모)

이 React 컴포넌트 사용에 대한 예시와 세부 사항은 컴포넌트 데모 페이지를 방문하세요:

Import (임포트)

import Box from '@mui/material/Box';
// or
import { Box } from '@mui/material';

Props

Name Type Default Required Description
component elementType - No
sx Array<func | object | bool> | func | object - No The system prop that allows defining system overrides as well as additional CSS styles.

Note: The ref is forwarded to the root element (HTMLDivElement).

Any other props supplied will be provided to the root element (native element).

CSS

Rule name (규칙 이름)

Global class Rule name Description
- root Styles applied to the root element.

Source code (소스 코드)

이 페이지에서 원하는 정보를 찾지 못했다면, 더 자세한 내용을 위해 컴포넌트의 구현을 살펴보는 것이 좋아요.

더 알아보기 (Learn more)

  • sx prop — Box 스타일링의 핵심
  • MUI System — Box가 사용하는 시스템 유틸리티