Skip to main content

Clickable

The Clickable component makes any content interactive. Use it to add click interactions to non-interactive elements while maintaining full control over their visual presentation.

Unlike the Button component, Clickable doesn't impose visual styling, allowing you to create custom interactive elements. You must implement focus indicators and other visual cues yourself.

Use cases

  • Interactive cards: Create custom cards that respond to clicks without button styling.
  • Clickable elements: Make text, images, or icons clickable while preserving visual appearance.
  • Complex layouts: Build interactive layouts with multiple clickable regions.
  • Custom interfaces: Implement selection interfaces, galleries, or navigation with tailored designs.

Make any content interactive using a Clickable component wrapper without imposing visual styling. This example shows how to create custom interactive elements while maintaining full control over appearance.

Make content clickable

Make content clickable

<s-clickable onClick={handleShippingSettings}>
<s-box padding="base">
<s-text>View shipping settings</s-text>
</s-box>
</s-clickable>

Configure the following properties on the Clickable component.

Anchor to disabled
disabled
boolean

Disables the clickable, meaning it cannot be clicked or receive focus.

In this state, onClick will not fire. If the click event originates from a child element, the event will immediately stop propagating from this element.

However, items within the clickable can still receive focus and be interacted with.

This has no impact on the visual state by default, but developers are encouraged to style the clickable accordingly.

string

A unique identifier for the element.

The Clickable component provides event callbacks for handling user interactions. Learn more about handling events.

Anchor to click
click
(event: <"s-clickable">) => void

Callback when the element is activated.

  • Implement visual feedback: Since Clickable has no built-in styling, add focus indicators and active states to show interactivity.
  • Wrap non-interactive elements: Use Clickable for text, images, or icons. Avoid wrapping components with built-in interactions.
  • Handle disabled state carefully: When disabled, child elements can still receive focus. Provide visual feedback for the non-interactive state.

The component doesn't automatically provide keyboard navigation support beyond basic click functionality.

Was this page helpful?