Tooltip
Tooltip adds short explanatory text to compact controls.
@duskmoon-dev/components/tooltip Usage
When to use
- Use it when supporting content should stay attached to a trigger or task context.
- Prefer controlled open state when the surrounding workflow needs to react to dismissal.
Implementation notes
Features
Documents trigger, placement, and open-state patterns for content rendered above the page.
Highlights controlled state and close callbacks where overlays expose them.
Tooltip is most often configured through `title`, `placement`, `open`, `defaultOpen`.
Renders child content
Feature Demos
Feature demos are authored for the component page, then supplemented with behavior scenarios from the component test coverage.
Basic usage
Import the component stylesheet and Tooltip from its package subpath, then render it with the core props.
import "@duskmoon-dev/components/styles.css";
import { Tooltip } from "@duskmoon-dev/components/tooltip";
export function Example() {
return (<Tooltip
title="Review details"
placement="bottom"
size="lg"
open
>
Hover for details
</Tooltip>);
} Renders child content
test-backedTooltip scenario from the component test coverage: renders child content.
import "@duskmoon-dev/components/styles.css";
import { Tooltip } from "@duskmoon-dev/components/tooltip";
export function TooltipRendersChildContentDemo() {
return (<Tooltip
title="Review details"
placement="bottom"
size="lg"
open
>
Hover for details
</Tooltip>);
} Renders title in tooltip element
test-backedTooltip scenario from the component test coverage: renders title in tooltip element.
import "@duskmoon-dev/components/styles.css";
import { Tooltip } from "@duskmoon-dev/components/tooltip";
export function TooltipRendersTitleInTooltipDemo() {
return (<Tooltip
title="Review details"
placement="bottom"
size="lg"
open
>
Hover for details
</Tooltip>);
} Supports placement, size, arrow, and custom className
test-backedTooltip scenario from the component test coverage: supports placement, size, arrow, and custom classname.
import "@duskmoon-dev/components/styles.css";
import { Tooltip } from "@duskmoon-dev/components/tooltip";
export function TooltipSupportsPlacementSizeArrowDemo() {
return (<Tooltip
title="Review details"
placement="bottom"
size="lg"
open
>
Hover for details
</Tooltip>);
} Opens and closes on hover when uncontrolled
test-backedTooltip scenario from the component test coverage: opens and closes on hover when uncontrolled.
import "@duskmoon-dev/components/styles.css";
import { Tooltip } from "@duskmoon-dev/components/tooltip";
export function TooltipOpensAndClosesOnDemo() {
return (<Tooltip
title="Review details"
placement="bottom"
size="lg"
open
>
Hover for details
</Tooltip>);
} Forwards wrapper ref
test-backedTooltip scenario from the component test coverage: forwards wrapper ref.
import "@duskmoon-dev/components/styles.css";
import { Tooltip } from "@duskmoon-dev/components/tooltip";
export function TooltipForwardsWrapperRefDemo() {
return (<Tooltip
title="Review details"
placement="bottom"
size="lg"
open
>
Hover for details
</Tooltip>);
} Theme aware
Docs previews inherit the DuskMoon data-theme value. Use the header switch to compare light and dark rendering.
<div data-theme="sunshine">
<Tooltip
title="Review details"
placement="bottom"
size="lg"
open
>
Hover for details
</Tooltip>
</div>
<div data-theme="moonlight">
<Tooltip
title="Review details"
placement="bottom"
size="lg"
open
>
Hover for details
</Tooltip>
</div> API
The API reference below lists every parsed exported type or interface for Tooltip. Start with `title`, `placement`, `open`, `defaultOpen` for common usage.
packages/components/src/components/tooltip/Tooltip.types.ts
Scenarios: packages/components/src/components/tooltip/Tooltip.test.tsx | Prop | Type | Required | Description |
|---|---|---|---|
title | ReactNode | No | title configures Tooltip. |
placement | TooltipPlacement | No | placement configures Tooltip. |
open | boolean | No | open configures Tooltip. |
defaultOpen | boolean | No | defaultOpen configures Tooltip. |
arrow | boolean | No | arrow configures Tooltip. |
size | TooltipSize | No | size configures Tooltip. |
children | ReactNode | Yes | children configures Tooltip. |
"top" | "bottom" | "left" | "right" "sm" | "md" | "lg"