React components from the Robot Design System.
npm install robot-components
A draggable task panel with physics-based interactions.
import { TaskPanel } from 'robot-components';
function App() {
const tasks = [
{ id: '1', name: 'cosmic-nebula', status: 'processing' },
{ id: '2', name: 'azure-crystal', status: 'completed', size: '12.5 MB' },
];
return (
<TaskPanel
tasks={tasks}
onTaskClear={(id) => console.log('Clear task:', id)}
onClearAll={() => console.log('Clear all')}
/>
);
}
| Prop | Type | Description |
|---|---|---|
tasks |
TaskItem[] |
Array of tasks to display |
config |
Partial<TaskPanelConfig> |
Optional configuration overrides |
onPositionChange |
(x, y) => void |
Callback when panel moves |
onSizeChange |
(w, h) => void |
Callback when panel resizes |
onBounce |
(x, y, intensity) => void |
Callback on edge bounce |
onTaskClear |
(taskId) => void |
Callback when task is cleared |
onClearAll |
() => void |
Callback when all tasks cleared |
soundUrl |
string |
Custom sound file URL |
interface TaskItem {
id: string;
name: string;
status: 'completed' | 'processing';
size?: string;
thumbnail?: string;
gradient?: string;
}
An interactive node editor with draggable panels, connections, and physics.
A radial node-spawn menu with 3D mouse tilt, paged categories, and tactile sound feedback.
import { DialMenu, type DialNodeType } from 'robot-components';
function App() {
const [menu, setMenu] = useState({ isOpen: false, position: { x: 0, y: 0 } });
return (
setMenu({ isOpen: true, position: { x: e.clientX, y: e.clientY } })}>
<DialMenu
isOpen={menu.isOpen}
position={menu.position}
onSelect={(type: DialNodeType) => console.log('Selected:', type)}
onClose={() => setMenu(m => ({ ...m, isOpen: false }))}
/>
);
}
/images/radial-decoration.svg and /hoverfx2.mp3 in your public/ folderRun the demo to see all components in action:
npm run dev
Then visit: - http://localhost:3000 - Component overview - http://localhost:3000/taskpanel - Task Panel demo - http://localhost:3000/nodegrid - Node Editor demo - http://localhost:3000/dialmenu - Dial Menu demo
react >= 18.0.0react-dom >= 18.0.0framer-motion >= 10.0.0lucide-react >= 0.300.0tailwindcss >= 4.0.0# Install dependencies
npm install
# Run demo site
npm run dev
# Build library
npm run build
This repo includes Claude Code skills to help you customize and expand the components—no coding experience required.
bash
git clone https://github.com/dashrobotco/robot-components.git
cd robot-componentsbash
claude/node-editor-expandUse this command to add features to the Node Editor Canvas:
/node-editor-expand Add a glow effect around panels when selected
/node-editor-expand Add double-click to edit panel content
/node-editor-expand Add Cmd+D to duplicate the selected panel
/node-editor-expand Add magnetic snapping when panels get close to each other
MIT
$ claude mcp add robot-components \
-- python -m otcore.mcp_server <graph>