Base Handle

A handle with some basic styling used for creating a shared design among all handles in your application.

UI Component: base-handle

index.tsx
import type { ComponentProps } from "react";
import { Handle, type HandleProps } from "@xyflow/react";
 
import { cn } from "@/lib/utils";
 
export type BaseHandleProps = HandleProps;
 
export function BaseHandle({
  className,
  children,
  ...props
}: ComponentProps<typeof Handle>) {
  return (
    <Handle
      {...props}
      className={cn(
        "dark:border-secondary dark:bg-secondary h-[11px] w-[11px] rounded-full border border-slate-300 bg-slate-100 transition",
        className,
      )}
    >
      {children}
    </Handle>
  );
}
component-example.tsx
import React, { memo } from "react";
import { Position } from "@xyflow/react";
 
import { BaseHandle } from "@/registry/components/base-handle";
import { BaseNode, BaseNodeContent } from "@/registry/components/base-node";
 
const BaseHandleDemo = memo(() => {
  return (
    <BaseNode>
      <BaseNodeContent>
        <BaseHandle id="target-1" type="target" position={Position.Left} />
        <div>A node with two handles</div>
        <BaseHandle id="source-1" type="source" position={Position.Right} />
      </BaseNodeContent>
    </BaseNode>
  );
});
 
BaseHandleDemo.displayName = "BaseHandleDemo";
export default BaseHandleDemo;