Vision UI

Hoverable

Hoverable elements

import { Slot } from "@radix-ui/react-slot";
import React from "react";
import { cn } from "@/lib/utils";
import View, { type ViewProps } from "./view";

interface HoverableProps extends ViewProps {
  asChild?: boolean;
  enabled?: boolean;
}

const Hoverable = React.forwardRef<HTMLDivElement, HoverableProps>(
  ({ className, asChild = false, enabled = true, ...props }, ref) => {
    const Comp = asChild ? Slot : View;
    return (
      <Comp
        ref={ref}
        className={cn({ "vision-pro-ui-hoverable": enabled }, className)}
        {...props}
      />
    );
  }
);
Hoverable.displayName = "Hoverable";

export { Hoverable };

export type { HoverableProps };

The Hoverable Component is a custom implementation of a hoverable element using React and Framer Motion. It provides a dynamic element that responds to user interactions and changes appearance based on the elements it hovers over.

API

PropTypeDefault
propTypes?
any
-
displayName?
string
-
$$typeof
symbol
-
Edit on GitHub

Last updated on

On this page