Pular para o conteúdo

Box

O componente Box serve como um componente encapsulador (wrapper) para a auxiliar na maioria das necessidades de uso com CSS.

The Box component packages all the style functions that are exposed in @mui/system.

Exemplo

A paleta com funções de estilo.

A propriedade sx

All system properties are available via the sx prop. Além disso, a propriedade sx permite você especificar quaisquer outras regras CSS que precisar. Aqui está um exemplo de como usá-la:

import * as React from 'react';
import Box from '@mui/material/Box';

export default function BoxSx() {
  return (
    <Box
      sx={{
        width: 300,
        height: 300,
        backgroundColor: 'primary.dark',
        '&:hover': {
          backgroundColor: 'primary.main',
          opacity: [0.9, 0.8, 0.7],
        },
      }}
    />
  );
}

Sobrescrevendo componentes do Material-UI

O componente Box envolve seu componente. It creates a new DOM element, a <div> that by default can be changed with the component prop. Digamos que você queira usar um <span>: Digamos que você queira usar um <span>:

import * as React from 'react';
import Box from '@mui/material/Box';
import Button from '@mui/material/Button';

export default function BoxComponent() {
  return (
    <Box component="span" sx={{ p: 2, border: '1px dashed grey' }}>
      <Button>Save</Button>
    </Box>
  );
}

Isso funciona muito bem quando as alterações precisam ser isoladas em um novo elemento DOM. Note no exemplo, a forma que você alterou a margem.

No entanto, às vezes, você precisa modificar o elemento DOM subjacente. Como um exemplo, talvez queira mudar a borda do Botão. Por exemplo, você quer mudar a borda do botão. A herança por CSS não irá ajudar nesse caso. To workaround the problem, you can use the sx prop directly on the child if it is a MUI component.

-<Box sx={{ border: '1px dashed grey' }}>
-  <Button>Salvar</Button>
-</Box>
+<Button sx={{ border: '1px dashed grey' }}>Salvar</Button>

For non-Material-UI components, use the component prop.

-<Box sx={{ border: '1px dashed grey' }}>
-  <button>Salvar</button>
-</Box>
+<Box component="button" sx={{ border: '1px dashed grey' }}>Salvar</Box>

System props

Como um componente util do CSS, o Box também suporta todas as propriedades de sistem. Você pode usá-los como propriedades diretamente no componente. Por exemplo, uma margem do topo:

<Box mt={2}>

API