Button
から[$ var] _の基本的なUIの基礎となるIconButton
にスタイルを適用する方法を疑問に思います。たとえば、閉じるアイコンのホバー/フォーカス色を変更するには、現在:hover
と:focus
クラスを変更する必要があります。これをやる方法が簡単な方法があるようです。ButtonBase
APIドキュメントは、実際にはこれにクラスを提供します。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>
);
私はこれがどのように機能するべきか私の人生のために理解することはできません。何か案は?
これはドキュメントの関連部分です: 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>
);
}
_