Orbit Network
ComponentsDiagramsOrbit Network
DiagramsNew

Orbit Network

A rotating integration map with an ASCII particle field and packets moving toward a central hub.

USE IT FORIntegration directoriesInfrastructure feature sectionsAPI platform diagrams
React + CSS
Explore the full-width experienceOpen preview

Database→ Workspace

Live component. Go ahead, interact.
01

Installation

Run this in your shadcn-configured React project. The component and stylesheet are added together.

TERMINAL
npx shadcn@latest add http://localhost:5173/r/orbit-network.json

This command uses the current site address. For localhost, keep this preview running on the same computer. Files follow your configured components alias.

02

Usage

Import the component and make the details your own.

TypeScript
import { OrbitNetwork } from '@/components/anticraft/OrbitNetwork';

export function Example() {
  return (
    <OrbitNetwork
      centerLabel="Workspace"
      nodes={[
        { id: 'database', label: 'Database', symbol: <span>◫</span> },
        { id: 'storage', label: 'Storage', symbol: <span>▧</span> },
        { id: 'queue', label: 'Queue', symbol: <span>»</span> },
        { id: 'search', label: 'Search', symbol: <span>⌕</span> },
        { id: 'analytics', label: 'Analytics', symbol: <span>▥</span> },
        { id: 'events', label: 'Events', symbol: <span>✳</span> },
      ]}
    />
  );
}
03

Props

PropTypeDefaultDescription
nodesOrbitNetworkNode[]Eight sample integrationsConnections with unique nonempty id, label, and optional decorative ReactNode symbol. Up to twelve unique items are shown. Invalid and duplicate ids are omitted. An empty array keeps the hub and shows an empty caption.
centerReactNodeGeometric hub symbolDecorative artwork in the central square. Keep it free of controls; centerLabel supplies the accessible name.
centerLabelstring'Workspace'Accessible hub name and visible connection destination in the caption.
defaultSelectedIdstringFirst nodeInitial selected connection. If that id is missing or removed, the first available node is displayed.
onNodeChange(id: string) => voidundefinedReceives the connection id when its button is activated. Supply this callback from a client component.
pausedbooleanfalseExternally stops all animation. The built-in pause control can also pause locally when this is false.
speednumber1Animation multiplier, clamped from 0.2 to 2. The default completes one network rotation in 144 seconds; nonfinite values fall back to 1.
colorstring'#5d43ee'CSS color for particles, selected connections, packets, and focus indicators.
classNamestring''Additional root classes. Customize --ac-orbit-paper, --ac-orbit-ink, --ac-orbit-muted, and --ac-orbit-line. The square diagram scales to its container with a maximum width of 640px.
04

Motion & accessibility

Considered by default.

The ring rotates slowly while symbols stay upright, the ASCII field shifts, and square packets move inward. Hovering or focusing a connection holds the diagram still for selection. Tab reaches every connection and the pause control; Enter or Space selects a node and updates its caption. Pause motion freezes all animation. Reduced motion renders a still diagram and disables the pause control. Animation stops offscreen and while the document is hidden; observers, media listeners, and animation frames are removed on unmount. Canvas particles are decorative; connections and their selected state remain native HTML buttons.

Use semantic content and meaningful labels in your composition. Check contrast and keyboard behavior with your own styles and content.

05

Inspiration

RouterPlus’s rotating provider network informed the annular ASCII texture, thin connector geometry, and inbound square packets. Anticraft uses original integration symbols, configurable content, native connection controls, and an independent React, canvas, and SVG implementation.

Visit RouterPlus

The linked site is the design or content reference. See the repository for demo artwork credits.