Install the following dependencies
npm install @kobalte/core
Copy and paste the following code into your project
import type { PolymorphicProps } from "@kobalte/core/polymorphic";
import type { Component, ValidComponent } from "solid-js";
import { splitProps } from "solid-js";
import * as TooltipPrimitive from "@kobalte/core/tooltip";
import { cn } from "~/lib/utils";
const TooltipTrigger = TooltipPrimitive.Trigger;
const Tooltip: Component<TooltipPrimitive.TooltipRootProps> = (props) => {
return <TooltipPrimitive.Root gutter={4} {...props} />;
type TooltipContentProps<T extends ValidComponent = "div"> =
TooltipPrimitive.TooltipContentProps<T> & {
class?: string | undefined;
const TooltipContent = <T extends ValidComponent = "div">(
props: PolymorphicProps<T, TooltipContentProps<T>>,
const [local, others] = splitProps(props as TooltipContentProps, ["class"]);
<TooltipPrimitive.Portal>
<TooltipPrimitive.Content
data-slot="tooltip-content"
"z-50 origin-[var(--kb-popover-content-transform-origin)] overflow-hidden rounded-base border-2 border-border bg-primary px-3 py-1.5 text-sm text-foreground ui-expanded:animate-in ui-expanded:fade-in-0 ui-expanded:zoom-in-95 ui-closed:animate-out ui-closed:fade-out-0 ui-closed:zoom-out-95",
</TooltipPrimitive.Portal>
export { Tooltip, TooltipTrigger, TooltipContent };
Update the import paths to match your project setup.