<kern-link>
Text link for running text, table cells and cards. external opens a new tab (with rel="noopener noreferrer") and marks the link with ↗; tone="muted" for secondary links; disabled keeps the text but removes the link. For actions use kern-button, also when it navigates.
Examples
Links in text and tables
Use kern-link for navigation in running text, table cells and cards. tone="muted" is for secondary links; disabled keeps the text but removes the link.
12 snapshots, the latest from today 09:41.
Open the device page of
External links and downloads
external opens the link in a new tab with rel="noopener noreferrer", shows ↗ and reads label-external to screen readers. download saves the target instead of navigating, optionally under the given file name.
Web UI:
With a SPA router
A plain left click on kern-link emits the cancelable kernNavigate with { href, event }; preventDefault() stops the page load so the app can route itself. Ctrl/Cmd click, middle click, external, target="_blank" and download emit nothing, so "open in new tab" keeps working.
React 19 binds onkernNavigate directly (older versions need addEventListener through a ref); Vue binds @kernNavigate in single-file components.
Open
Click a link.
Properties
disabledboolean
Shown as text, not a link.
downloadboolean | string | undefined
Download instead of navigate (optionally with this file name).
externalboolean
Opens in a new tab and shows ↗.
hrefstring | undefined
labelExternalstring | undefined
Read after the text of external links.
relstring | undefined
Defaults to noopener noreferrer for external or target="_blank".
targetstring | undefined
tone"accent" | "muted"
muted for secondary links.
Events
kernNavigateCustomEvent<KernNavigateDetail>
Plain left click (no modifier keys, target, download, external) before the browser navigates. preventDefault() stops the navigation, so a SPA router can take over.
Slots
(default)Link text
CSS parts
linkThe native link