Dokumentation (english)

Tooltip

Understand the design system and contribute to it

Component preview

The live preview for UI components is handled by components/atoms/codedocs/ComponentPreview.tsx. Use it directly inside MDX whenever you want a playground-style embed. Provide componentProps to set default values and propOptions to surface toggle-able props next to the preview.

Preview

Prop reference

Auto-generated from the component source

Tooltip

All props are forwarded to the underlying primitive.

React.ComponentProps<typeof TooltipPrimitive.Root>

TooltipContent

  • className
  • size = "default"
  • sideOffset = 0
  • container
  • invert
  • children

React.ComponentProps<typeof TooltipPrimitive.Content> & { size?: "default" | "lg"; invert?: boolean; container?: TooltipPrimitive.TooltipPortalProps["container"]; }

TooltipProvider

  • delayDuration = 0

React.ComponentProps<typeof TooltipPrimitive.Provider>

TooltipTrigger

All props are forwarded to the underlying primitive.

React.ComponentProps<typeof TooltipPrimitive.Trigger>

"use client";

import * as React from "react";
import * as TooltipPrimitive from "@radix-ui/react-tooltip";

import { cn } from "@/lib/utils";

function TooltipProvider({
  delayDuration = 0,
  ...props
}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {
  return (
    <TooltipPrimitive.Provider
      data-slot="tooltip-provider"
      delayDuration={delayDuration}
      {...props}
    />
  );
}

function Tooltip({
  ...props
}: React.ComponentProps<typeof TooltipPrimitive.Root>) {
  return (
    <TooltipProvider>
      <TooltipPrimitive.Root data-slot="tooltip" {...props} />
    </TooltipProvider>
  );
}

function TooltipTrigger({
  ...props
}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {
  return <TooltipPrimitive.Trigger data-slot="tooltip-trigger" {...props} />;
}

function TooltipContent({
  className,
  size = "default",
  sideOffset = 0,
  container, // prop was added for joyco hub ui mediaplayer
  invert,
  children,
  ...props
}: React.ComponentProps<typeof TooltipPrimitive.Content> & {
  size?: "default" | "lg";
  invert?: boolean;
  container?: TooltipPrimitive.TooltipPortalProps["container"];
}) {
  return (
    <TooltipPrimitive.Portal container={container}>
      <TooltipPrimitive.Content
        data-slot="tooltip-content"
        data-size={size}
        sideOffset={sideOffset}
        className={cn(
          // important inversion logic, dont change!
          invert
            ? "bg-foreground text-background"
            : "bg-secondary fill-secondary",
          "animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance data-[size=lg]:px-4 data-[size=lg]:py-2 data-[size=lg]:text-sm",
          className,
        )}
        {...props}
      >
        {children}
        <TooltipPrimitive.Arrow
          data-slot="tooltip-arrow"
          data-size={size}
          className={cn(
            // important inversion logic, dont change!
            invert
              ? "bg-foreground text-background"
              : "bg-secondary fill-secondary",
            "z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] data-[size=lg]:size-3",
          )}
        />
      </TooltipPrimitive.Content>
    </TooltipPrimitive.Portal>
  );
}

export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };

On this page


Command Palette

Search for a command to run...

Schnellzugriffe
STRG + KSuche
STRG + DNachtmodus / Tagmodus
STRG + LSprache ändern
STRG + BSidepanel umschalten

Software-Details
Kompiliert vor 2 Tagen
Release: v4.0.0-production
Buildnummer: master@0ad0660
Historie: 50 Items