Integrations Section

Integrations showcase pairing a hub-and-spoke orbit (your logo at the center, integration icons on counter-rotating rings that keep icons upright and pause on hover) with a searchable card grid filtered by category chips behind a gliding pill, where cards enter, leave and reflow with spring layout animation.

Preview

Integrations Section preview width

Install

Add it with the shadcn CLI, or copy the source manually.

$ bunx --bun shadcn add @karaui/integrations-section
@karaui not found? Add it to components.json
{
  "registries": {
    "@karaui": "https://karaui.kamisama-v0.my.id/r/{name}.json"
  }
}

@karaui is in shadcn's public registry directory, so the latest CLI needs no setup. On an older CLI, merge this into the existing file once and every @karaui/… install resolves.

API Reference

integrations
Integration[]
—
centerLogo
ReactNode

The hub at the center of the orbit (your product's logo).

—
centerLabel?
string

Accessible name for the hub. Default "Our product".

Our product
orbitIds?
string[]

Ids shown on the orbit, inner ring first. Defaults to the first 14 integrations.

—
innerCount?
number

Icons on the inner ring; the rest go on the outer ring. Default 5.

5
speed?
number

Seconds per inner-ring revolution; the outer ring is 1.5× slower and turns the other way. Default 40.

40
categories?
string[]

Category chips in order. Derived from `integrations` when omitted.

—
allLabel?
string

Label of the chip that shows everything. Default "All".

All
category?
string

Controlled category ("" or `allLabel` means all).

—
defaultCategory?
string
—
onCategoryChange?
((category: string) => void)
—
searchable?
boolean

Show the search field. Default true.

true
searchPlaceholder?
string
Search integrations
eyebrow?
ReactNode
—
heading?
ReactNode
—
description?
ReactNode
—
className?
string
—
listClassName?
string

Classes for the scrolling card list (e.g. a max height).

—

Keep in mind

Some components on this site are inspired by or recreated from existing work across the web. I'm not here to take credit; just to learn, experiment, and sometimes push things a bit further. If something looks familiar and I forgot to mention you, reach out and I'll fix that right away.

Updated