NavLink
Navigation link
Import
Polymorphic
Source
Docs
Package
Usage
Active
Set active
prop to add active styles to NavLink
.
Note that if you're using a React Router or Remix NavLink
inside renderRoot
, the active styles will be based on the
aria-current
attribute that's set by React Router
so you won't need to explicitly set the active
prop.
You can customize active styles with color
and variant
props:
autoContrast
NavLink
supports autoContrast
prop and theme.autoContrast. If autoContrast
is set either on NavLink
or on theme, content color will be adjusted to have sufficient contrast with the value specified in color
prop.
Note that autoContrast
feature works only if you use color
prop to change background color. autoContrast
works only with filled
variant.
Nested NavLinks
To create nested links put NavLink
as children of another NavLink
:
Polymorphic component
NavLink
is a polymorphic component – its default root element is a
, but it can be changed to any other element or component with component
prop:
You can also use components in component
prop, for example, Next.js Link
:
Polymorphic components with TypeScript
Note that polymorphic components props types are different from regular components – they do not extend HTML element props of the default element. For example,
NavLinkProps
does not extendReact.ComponentPropsWithoutRef'<'div'>'
althougha
is the default element.If you want to create a wrapper for a polymorphic component that is not polymorphic (does not support
component
prop), then your component props interface should extend HTML element props, for example:If you want your component to remain polymorphic after wrapping, use
createPolymorphicComponent
function described in this guide.