The PlainLink is a foundational component with minimal styling used to build other link components in Pluma.

Anatomy

Anatomy elements
#RequiredElementDescription
1LabelDescribes the PlainLink's destination.

Guidelines

When to use

PlainLink is an unstyled link primitive used to build the Link component. Use the PlainLink when a design calls for link behavior without any of the Link's built-in visual styling, such as wrapping a whole card, an icon-and-label group, or an image in a single clickable region.

If the element requires a standard hyperlink or an inline action styled like one, use Link instead.

Mark a link as external when it points to a URL outside the application, so users aren't unexpectedly taken away without warning. External links are detected automatically based on the URL, or can be set explicitly, and open in a new tab with the correct safe HTML attributes already applied.

  • PlainLink is an unstyled anchor primitive used to build the Link. Use it when you need a custom hyperlink without button features like loading states.
  • Link is a fully-styled hyperlink with variants, icons, and underline behavior. Use it for navigation within text or for standalone links.
  • Button is a fully-styled interactive element with variants, sizes, icons, and state treatments. Use it for standard actions like submitting forms, opening dialogs, or navigating as a CTA.
  • PlainButton is an unstyled button primitive with loading and disabled support used to build the Button. Use it to build custom interactive elements that need their own visual design.

Best practices

Custom styling

PlainLink offers styling flexibility that Link doesn't provide. Use it when a design calls for a treatment the Link doesn't support, such as turning an entire card or icon-and-label group into a single clickable region.

Do: Use PlainLink to turn a custom-styled block into a single clickable region.
Don't: Use PlainLink to manually reproduce Link's built-in appearance.

Nested interactive elements

Keep PlainLink content static. Avoid nesting other interactive elements inside the PlainLink as doing so may confuse users. Assistive technology and keyboard navigation are also negatively affected.

For more information from an accessibility standpoint, see Interactive elements under the Accessibility tab.

Do: Wrap static content only.
Don't: Nest interactive elements within the PlainLink.

Types

Regular

By default, PlainLink renders as an anchor element that navigates to a URL, downloads a file, or opens an email or phone link.

Button

PlainLink can render as a button element to trigger an inline action, while remaining unstyled.

Behaviors

States

Base

PlainLink applies no styling of its own, so the base state looks exactly like the content passed as children.

Disabled

Disabled PlainLinks cannot be interacted with. Visual treatment for the disabled state is left entirely to the wrapped content.

Content

If writing PlainLink labels, content should be similar to what's written for the Link component. Adhere to writing labels that clearly describe the destination or action in 1-3 words. For more information, see the Content section of the Link's design documentation.

Do: Write a label that clearly describes the destination or action in 1-3 words.
Don't: Write a vague label like 'Click here' or 'Learn more'.