Links

Links

The Link component allows you to easily customize anchor elements with your theme colors and typography styles.

Simple links

The Link component is built on top of the Typography component. You can leverage its properties.

However, the Link has different default properties than the Typography:

  • color="primary" as the link needs to stand out.
  • variant="inherit" as the link will, most of the time, be used as a child of a Typograpy component.

Accessibility

Security

When you use target="_blank" with Links it is recommended to always set rel="noopener" or rel="noreferrer" when linking to third party content.

  • rel="noopener" prevents the new page from being able to access the window.opener property and ensures it runs in a separate process. Without this the target page can potentially redirect your page to a malicious URL.
  • rel="noreferrer"" has the same effect, but also prevents the Referer header from being sent to the new page. ⚠️ Removing the referrer header will affect analytics.

Third-party routing library

One common use case is to perform the navigation on the client only, without doing a .html round-trip with the server. The Link component provides a property to handle this use case: component.

import { Link as RouterLink } from 'react-router-dom'
import Link from '@material-ui/core/Link';

<Link component={RouterLink} to="/open-collective">
  Link
</Link>

or if you want to avoid properties collision:

import { Link as RouterLink } from 'react-router-dom'
import Link from '@material-ui/core/Link';

const MyLink = props => <RouterLink to="/open-collective" {...props} />

<Link component={MyLink}>
  Link
</Link>

Note: Creating MyLink is necessary to prevent unexpected unmounting. You can read more about it in our component property guide.