Material UI is a Material Design library made for React.
It’s a set of React components that have Material Design styles.
In this article, we’ll look at how to add links and menus to Material UI.
We can add links with the Link
component.
For instance, we can write:
import React from "react";
import Link from "@material-ui/core/Link";
export default function App() {
const preventDefault = event => event.preventDefault();
return (
<div>
<Link href="#" onClick={preventDefault}>
Link
</Link>
</div>
);
}
We add a link with the href
to go the URL we want when we click it.
onClick
lets us pass in a click handler to change the behavior of the link.
We can also change the color to change the color of the link.
For example, we can write:
import React from "react";
import Link from "@material-ui/core/Link";
export default function App() {
const preventDefault = event => event.preventDefault();
return (
<div>
<Link href="#" onClick={preventDefault} color="primary">
Link
</Link>
</div>
);
}
We set the color
to primary
to make it purple.
Also, we can pass a value to the variant
prop to change the styles:
import React from "react";
import Link from "@material-ui/core/Link";
import Typography from "@material-ui/core/Typography";
export default function App() {
const preventDefault = event => event.preventDefault();
return (
<div>
<Typography>
<Link href="#" onClick={preventDefault} variant="inherit">
Link
</Link>
</Typography>
</div>
);
}
We can add a menu with the Menu
component.
Inside it, we can add items with the MenuItem
components.
For example, we can write:
import React from "react";
import Button from "@material-ui/core/Button";
import Menu from "@material-ui/core/Menu";
import MenuItem from "@material-ui/core/MenuItem";
export default function App() {
const [anchorEl, setAnchorEl] = React.useState(null);
const handleClick = event => {
setAnchorEl(event.currentTarget);
};
const handleClose = () => {
setAnchorEl(null);
};
return (
<div>
<Button onClick={handleClick}>Open</Button>
<Menu
anchorEl={anchorEl}
keepMounted
open={Boolean(anchorEl)}
onClose={handleClose}
>
<MenuItem onClick={handleClose}>home</MenuItem>
<MenuItem onClick={handleClose}>profile</MenuItem>
<MenuItem onClick={handleClose}>logout</MenuItem>
</Menu>
</div>
);
}
to add a menu.
We have a Button
that has the onClick
prop set to the handleClick
function.
It sets the anchor element to element so that we can open the menu.
We set the open
prop of the menu to the anchor element.
The anchor element would be the button as indicated in the handleClick
function.
This way, we can determine if the button is clicked and we can open the menu if it’s set.
To close the menu, we set the anchorEl
to null
so that open
will have false
passed in.
#web-development #javascript #software-development #technology #programming