Link
Usage
The Link component is a wrapper around <NuxtLink>
using the custom
prop. It provides a few extra props:
inactive-class
prop to set a class when the link is inactive,active-class
is used when active.exact
prop to style withactive-class
when the link is active and the route is exactly the same as the current route.exact-query
andexact-hash
props to style withactive-class
when the link is active and the query or hash is exactly the same as the current query or hash.
The incentive behind this is to provide the same API as NuxtLink back in Nuxt 2 / Vue 2. You can read more about it in the Vue Router migration from Vue 2 guide.
Tag
The Link
components renders an <a>
tag when a to
prop is provided, otherwise it renders a <button>
tag. You can use the as
prop to change fallback tag.
<template>
<ULink as="button">Link</ULink>
</template>
to
prop.Style
By default, the link has default active and inactive styles, check out the #theme section.
<template>
<ULink to="/components/link">Link</ULink>
</template>
to
prop to see the active and inactive states.You can override this behavior by using the raw
prop and provide your own styles using class
, active-class
and inactive-class
.
<template>
<ULink raw to="/components/link" active-class="font-bold" inactive-class="text-[var(--ui-text-muted)]">Link</ULink>
</template>
IntelliSense
If you're using VSCode and wish to get autocompletion for the classes active-class
and inactive-class
, you can add the following settings to your .vscode/settings.json
:
{
"tailwindCSS.classAttributes": [
"active-class",
"inactive-class"
]
}
API
Props
Prop | Default | Type |
---|---|---|
as |
|
The element or component this component should render as when not a link. |
type |
|
The type of the button when not a link. |
disabled |
| |
active |
|
Force the link to be active independent of the current route. |
exact |
Will only be active if the current route is an exact match. | |
exactQuery |
Will only be active if the current route query is an exact match. | |
exactHash |
Will only be active if the current route hash is an exact match. | |
inactiveClass |
|
The class to apply when the link is inactive. |
raw |
When | |
to |
Route Location the link should navigate to when clicked on. | |
href |
An alias for | |
external |
Forces the link to be considered as external (true) or internal (false). This is helpful to handle edge-cases | |
target |
Where to display the linked URL, as the name for a browsing context. | |
rel |
A rel attribute value to apply on the link. Defaults to "noopener noreferrer" for external links. | |
noRel |
If set to true, no rel attribute will be added to the link | |
prefetchedClass |
A class to apply to links that have been prefetched. | |
prefetch |
When enabled will prefetch middleware, layouts and payloads of links in the viewport. | |
prefetchOn |
Allows controlling when to prefetch links. By default, prefetch is triggered only on visibility. | |
noPrefetch |
Escape hatch to disable | |
activeClass |
|
Class to apply when the link is active |
exactActiveClass |
Class to apply when the link is exact active | |
ariaCurrentValue |
|
Value passed to the attribute |
replace |
Calls |
Slots
Slot | Type |
---|---|
default |
|
Theme
export default defineAppConfig({
ui: {
link: {
base: 'focus-visible:outline-[var(--ui-primary)]',
variants: {
active: {
true: 'text-[var(--ui-primary)]',
false: [
'text-[var(--ui-text-muted)] hover:text-[var(--ui-text)]',
'transition-colors'
]
},
disabled: {
true: 'cursor-not-allowed opacity-75'
}
}
}
}
})