IntegrationsOrbit
A circular integrations showcase component that displays platform logos orbiting around a central brand image.
Perfect for SaaS landing pages, integrations pages, partner showcases, and ecosystem visualizations.
Import the component using:
import IntegrationsOrbit from "@/components/ui/integrationsOrbit";Features
- Infinite orbital animation
- Viewport-aware performance optimization
- Hover controls (pause, slow, none)
- Configurable rotation speed
- Configurable rotation direction
- Counter-rotated icons remain upright
- Optional orbit guide rings
- Responsive sizing controls
- Supports any image-based integration logo
- SSR-safe hydration handling
- Built with Motion and Next.js Image
Preview

Example
<IntegrationsOrbit
centerImage="/logo.svg"
integrations={[
{ id: "slack", image: "/integrations/slack.svg" },
{ id: "notion", image: "/integrations/notion.svg" },
{ id: "github", image: "/integrations/github.svg" },
{ id: "figma", image: "/integrations/figma.svg" },
{ id: "stripe", image: "/integrations/stripe.svg" },
]}
/>Props
interface IntegrationItem {
id: string;
image: string;
}
interface IntegrationsOrbitProps {
integrations: IntegrationItem[];
centerImage?: string;
size?: number;
iconSize?: number;
centerImageSize?: number;
speed?: number;
direction?: "left" | "right";
actionOnHover?: "pause" | "slow" | "none";
infinite?: boolean;
showRings?: boolean;
className?: string;
}Integration Data Structure
const integrations = [
{
id: "slack",
image: "/integrations/slack.svg",
},
{
id: "github",
image: "/integrations/github.svg",
},
{
id: "notion",
image: "/integrations/notion.svg",
},
{
id: "stripe",
image: "/integrations/stripe.svg",
},
{
id: "figma",
image: "/integrations/figma.svg",
},
];Custom Orbit Configuration
<IntegrationsOrbit
integrations={integrations}
centerImage="/logo.svg"
size={700}
iconSize={80}
centerImageSize={140}
speed={20}
direction="right"
actionOnHover="slow"
/>Hover Behaviors
Pause Orbit
<IntegrationsOrbit
integrations={integrations}
actionOnHover="pause"
/>Slow Orbit
<IntegrationsOrbit
integrations={integrations}
actionOnHover="slow"
/>Disable Hover Interaction
<IntegrationsOrbit
integrations={integrations}
actionOnHover="none"
/>Rotation Direction
Clockwise
<IntegrationsOrbit
integrations={integrations}
direction="right"
/>Counter Clockwise
<IntegrationsOrbit
integrations={integrations}
direction="left"
/>Hide Orbit Rings
<IntegrationsOrbit
integrations={integrations}
showRings={false}
/>Disable Infinite Rotation
<IntegrationsOrbit
integrations={integrations}
infinite={false}
/>Complete Example
const integrations = [
{ id: "slack", image: "/integrations/slack.svg" },
{ id: "github", image: "/integrations/github.svg" },
{ id: "notion", image: "/integrations/notion.svg" },
{ id: "stripe", image: "/integrations/stripe.svg" },
{ id: "figma", image: "/integrations/figma.svg" },
{ id: "discord", image: "/integrations/discord.svg" },
];
<IntegrationsOrbit
integrations={integrations}
centerImage="/logo.svg"
size={650}
iconSize={72}
centerImageSize={120}
speed={15}
direction="right"
actionOnHover="slow"
infinite
showRings
/>