Tooltip
adn-ui/tooltipFreeComponent
A popup that appears when an element is hovered or focused, showing a hint for sighted users.
Live preview
live · rendered by the registry
Rendered by adn-ui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://ui.awaiden.com/r/tooltip.jsonSource
1"use client";23import "./tooltip.css";4import { Tooltip as BaseTooltip } from "@base-ui/react/tooltip";5import type React from "react";6import { cn } from "tailwind-variants";78import { TooltipContext, useTooltipContext } from "./tooltip.context";9import { tooltipVariants, type TooltipVariants } from "./tooltip.variants";1011export type TooltipProviderProps = React.ComponentProps<typeof BaseTooltip.Provider>;1213export const TooltipProvider = (props: TooltipProviderProps) => {14 return <BaseTooltip.Provider {...props} />;15};1617export type TooltipProps = TooltipVariants & React.ComponentProps<typeof BaseTooltip.Root>;1819export const TooltipRoot = ({ children, variant, ...props }: TooltipProps) => {20 const slots = tooltipVariants({ variant });2122 return (23 <TooltipContext.Provider value={{ slots }}>24 <BaseTooltip.Root {...props}>{children}</BaseTooltip.Root>25 </TooltipContext.Provider>26 );27};2829export type TooltipTriggerProps = React.ComponentProps<typeof BaseTooltip.Trigger>;3031export const TooltipTrigger = ({ className, ...props }: TooltipTriggerProps) => {32 const { slots } = useTooltipContext();33 return <BaseTooltip.Trigger className={cn(slots.trigger(), className)} {...props} />;34};3536export type TooltipPortalProps = React.ComponentProps<typeof BaseTooltip.Portal>;3738export const TooltipPortal = (props: TooltipPortalProps) => {39 return <BaseTooltip.Portal {...props} />;40};4142export type TooltipPositionerProps = React.ComponentProps<typeof BaseTooltip.Positioner>;4344export const TooltipPositioner = ({45 className,46 sideOffset = 6,47 ...props48}: TooltipPositionerProps) => {49 const { slots } = useTooltipContext();50 return (51 <BaseTooltip.Positioner52 className={cn(slots.positioner(), className)}53 sideOffset={sideOffset}54 {...props}55 />56 );57};5859export type TooltipPopupProps = React.ComponentProps<typeof BaseTooltip.Popup>;6061export const TooltipPopup = ({ className, ...props }: TooltipPopupProps) => {62 const { slots } = useTooltipContext();63 return <BaseTooltip.Popup className={cn(slots.popup(), className)} {...props} />;64};6566export type TooltipArrowProps = React.ComponentProps<typeof BaseTooltip.Arrow>;6768export const TooltipArrow = ({ className, ...props }: TooltipArrowProps) => {69 const { slots } = useTooltipContext();70 return <BaseTooltip.Arrow className={cn(slots.arrow(), className)} {...props} />;71};7273export type TooltipViewportProps = React.ComponentProps<typeof BaseTooltip.Viewport>;7475// … truncated
What it pulls in
npm packages
Files it writes
More from adn-ui
All 46 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | adn-ui | Components | Free | 2 deps · 5 files | |
| Alert Dialogalert-dialog | adn-ui | Components | Free | 2 deps · 5 files | |
| Aspect Ratioaspect-ratio | adn-ui | Components | Free | 1 dep · 5 files | |
| Autocompleteautocomplete | adn-ui | Components | Free | 2 deps · 5 files | |
| Avataravatar | adn-ui | Components | Free | 2 deps · 5 files | |
| Badgebadge | adn-ui | Components | Free | 1 dep · 5 files | |
| Breadcrumbbreadcrumb | adn-ui | Components | Free | 1 dep · 5 files | |
| Buttonbutton | adn-ui | Components | Free | 1 dep · 4 files |
