web-dev-qa-db-ja.com

MUIアイコンボタンからスタイルボタンを表示する方法

Buttonから[$ var] _の基本的なUIの基礎となるIconButtonにスタイルを適用する方法を疑問に思います。たとえば、閉じるアイコンのホバー/フォーカス色を変更するには、現在:hover:focusクラスを変更する必要があります。これをやる方法が簡単な方法があるようです。ButtonBase AP​​Iドキュメントは、実際にはこれにクラスを提供します。focusVisible。ただし、このスタイルを正常に適用しようとしたことが試みられていないものはありません。

const useStyles = makeStyles({
  closeButton: {
    "&:hover": { backgroundColor: "yellow" },
    "&:focus": { backgroundColor: "yellow" }
  }
});

const classes = useStyles();

return (
  <IconButton classes={{
      root: classes.closeButton,
      // This gives a warning that "focusVisible" class doesn't exist
      //   on IconButton (which is true, it comes from ButtonBase).
      focusVisible: classes.closeButton
    }}
  >
    <Icon>close</Icon>
  </IconButton>
);

私はこれがどのように機能するべきか私の人生のために理解することはできません。何か案は?

アイコンボタンAPI DocsButton Base API Docs

4
Kendall

これはドキュメントの関連部分です: https://material-ui.com/customization/components/#pseudo-classes

これを行う方法の例です。

import React from "react";
import { makeStyles } from "@material-ui/core/styles";
import IconButton from "@material-ui/core/IconButton";
import DeleteIcon from "@material-ui/icons/Delete";

const useStyles = makeStyles(theme => ({
  customHoverFocus: {
    "&:hover, &.Mui-focusVisible": { backgroundColor: "yellow" }
  }
}));

export default function IconButtons() {
  const classes = useStyles();

  return (
    <div>
      <IconButton aria-label="Delete">
        <DeleteIcon />
      </IconButton>
      <IconButton className={classes.customHoverFocus} aria-label="Delete">
        <DeleteIcon />
      </IconButton>
    </div>
  );
}

 _

Edit IconButton hover focus

5
Ryan Cogswell