0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

MUI v5で背景のみ透明度を設定する方法

Posted at

背景のみ透明度を設定する方法を備忘録として記載する。

sxのプロパティに”opacity”を設定すると透明度を設定することができるが、この場合だと子要素まで透明になってしまう。


const commonProp = {
  width: 300,
  height: 300,
};

export default function Page() {
  return (

      <Box
        position="absolute"
        zIndex={1}
        sx={{
          ...commonProp,
          backgroundColor: "warning.main",
          opacity: 0.5,
        }}
      >
        <Typography variant="h2">Box1</Typography>
      </Box>
      <Box
        position="absolute"
        sx={{
          ...commonProp,
          top: 50,
          left: 20,
          backgroundColor: "primary.main",
        }}
      >
        <Typography variant="h2">Box2</Typography>
      </Box>
  );
}

子要素も透明度が設定される。
スクリーンショット 2022-10-09 17.31.32.png

解決策

カスタムカレーパレットを用意する。そこでalpha関数を使用して、カラーを設定する。
そのカラーをバックグラウンドカラーに使用することで、背景のみ透明度を設定することができる。

import {
  alpha,
} from "@mui/material";
import { amber } from "@mui/material/colors";

const customTheme = createTheme({
  palette: {
    opaWarning: {
      main: alpha(amber[700], 0.5),
    },
  },
});

const commonProp = {
  width: 300,
  height: 300,
};

export default function Page() {
  return (
    <ThemeProvider theme={customTheme}>
      <Box
        position="absolute"
        zIndex={1}
        sx={{
          ...commonProp,
          // backgroundColor: "warning.main",
          // opacity: 0.5,
          backgroundColor: "opaWarning.main",
        }}
      >
        <Typography variant="h2">Box1</Typography>
      </Box>
      <Box
        position="absolute"
        sx={{
          ...commonProp,
          top: 50,
          left: 20,
          backgroundColor: "primary.main",
        }}
      >
        <Typography variant="h2">Box2</Typography>
      </Box>
    </ThemeProvider>
  );
}

子要素は透明になっていない。
スクリーンショット 2022-10-09 17.31.51.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?