Links are used to navigate to a new location, open or download an asset, or serve as an inline action.
onClick without href) when an action needs link styling within inline text — the component renders as a <button> element automatically.isExternal to open them in a new tab with safe HTML attributes (target="_blank" rel="noopener noreferrer"). Add a trailing exit icon to denote external links.href to navigate to a page, file, or external resource.onClick without href to trigger an inline action while maintaining link styling. The component renders as a <button> element automatically.variant="primary" — use for standalone links. Differentiates from surrounding text with accent color and bold font weight. No underline by default.variant="secondary" — use for inline links within body text. Underlined by default to distinguish from surrounding text.isUnderlined when extra emphasis is needed. Adding an underline updates the font weight to match body text.isUnderlined={false} when the link is already visually distinct. Removing the underline updates the font weight to bold.icon to render a Pluma icon or iconSrc to render a custom image icon. Never use an icon without a text label.iconPosition="leading" (default) to guide users on the link's destination. Use iconPosition="trailing" to indicate an external link or continued workflow.icon="exit" iconPosition="trailing").iconAlignment — defaults to uppercase for leading icons and lowercase for trailing icons.iconSize — accepts fill, xxs, xs, sm (default), md, lg, xl.isLoading) — overlays a spinner on the link content and disables interaction.isDisabled) — prevents interaction and applies muted text color.isError) — applies critical color styling to communicate a destructive action or error condition.truncate when the link may overflow its container.href, isDisabled, isExternal, withSafeExternalAttributes, and replace props.autoLoading, default true) — automatically shows the spinner when onClick returns a promise. Set autoLoading={false} to control loading state manually via isLoading.withSafeExternalAttributes={false} to turn off the automatic target="_blank" rel="noopener noreferrer" for non-HTTP protocols like mailto: or tel:.isError — use isError in code.children. Ember: pass content via {{yield}} (default block).<PlumaLink @href="#" @variant="primary">Label</PlumaLink>.