Skip to content
Kimenpre-v1
Color scheme

Component

ki-tooltip

A transient, text-only description bubble for one slotted trigger — a brief clarifying hint for an icon-only, abbreviated or otherwise ambiguous control, when the same information is discoverable elsewhere.

<ki-tooltip label="Closes the dialog">
<ki-icon-button label="Close">
<span aria-hidden="true"></span>
</ki-icon-button>
</ki-tooltip>

Four logical placements — top (default), bottom, start and end — that follow the writing direction in RTL:

top bottom start end
<ki-tooltip label="Above (default)" placement="top">
<ki-button type="button">top</ki-button>
</ki-tooltip>
<ki-tooltip label="Below" placement="bottom">
<ki-button type="button">bottom</ki-button>
</ki-tooltip>
<ki-tooltip label="Inline start" placement="start">
<ki-button type="button">start</ki-button>
</ki-tooltip>
<ki-tooltip label="Inline end" placement="end">
<ki-button type="button">end</ki-button>
</ki-tooltip>

When to use: add a brief clarifying hint for an icon-only, abbreviated, or otherwise ambiguous control when the same information is discoverable elsewhere in the interface.

When not to use: essential or unique information in a tooltip; interactive or rich content in a tooltip; form validation messages, disabled controls, or touch-primary flows. Use visible layout text or a future ki-popover pattern for those cases.

Properties & attributes

AttributePropertyTypeDefaultDescription
labellabelstring''The entire tooltip content. The string is reflected to the slotted trigger's accessible description without changing its name. Empty or whitespace-only labels render no tooltip and expose no description. When to use: a short hint that clarifies the slotted trigger. When NOT to use: never use label for essential information, rich content, interactive content, validation messages, or information attached to disabled controls; put that content in visible UI or a future popover.
placementplacement"bottom" | "end" | "start" | "top"'top'Preferred placement for the tooltip. The component may flip or clamp the rendered placement to keep the bubble inside the viewport; unknown runtime values fall back to top. When NOT to use: do not depend on placement for meaning or reading order.

Slots

SlotDescription
(default)Exactly one interactive trigger. The component reflects label to the trigger's aria-description.

CSS parts

PartDescription
tooltipThe non-focusable tooltip bubble.

CSS custom properties

The public styling contract of ki-tooltip: reassign these tokens at :root or on a subtree — never override internals.

TokenDescription
--ki-effect-component-secondary-default-shadowMarsUI Component_effect/secondary_default: drop 0/2/1.5/-0.5 plus inner White/3 0/2/3. Pair with backdrop-filter blur(var(--ki-effect-component-backdrop-blur)).
--ki-motion-distance-smMotion travel distance sm (4px): small slide/settle offsets.
--ki-motion-duration-fastFast interaction transition duration.
--ki-motion-duration-instantZero-duration step: transitions that must complete immediately (reduced-motion fallbacks, instant handoffs).
--ki-motion-easing-outDecelerating interaction transition easing curve.
--ki-motion-easing-standard-accelerateUtility exit curve. M3 md.sys.motion.easing.standard-accelerate. onmars: the MarsUI accelerate curve (ki.easing.in).
--ki-outline-secondary-button-topsemantic color for outline secondary button top.
--ki-tooltip-backdrop-blurbackdrop blur used by the tooltip component glass card (MarsUI BACKGROUND_BLUR 24 = CSS 12px; material3 resolves to blur none via the semantic override).
--ki-tooltip-bgcolor used by the tooltip component for background (flat fallback of the MarsUI glass card gradient; the v1 inverse bubble predates the master — specs/013 correction block. material3 keeps the inverse bubble via its override).
--ki-tooltip-bg-endcolor used by the tooltip component for the glass gradient end (MarsUI Surface/special/light-s0_dark-s2).
--ki-tooltip-bg-startcolor used by the tooltip component for the glass gradient start (MarsUI Surface/special/blur_base_light White/80; dark Dark/700 blur base). Paint background: linear-gradient(180deg, var(--ki-tooltip-bg-start), var(--ki-tooltip-bg-end)).
--ki-tooltip-border-widthdimension used by the tooltip component for the bevel outline width (MarsUI glass card 1px Outline/secondary_button_top stroke; replaces the 1px literal ki-tooltip.css shipped while the token was pending).
--ki-tooltip-fgcolor used by the tooltip component for foreground (MarsUI title row Text/high_em; lands together with the glass background — white-on-glass would break contrast).
--ki-tooltip-font-sizedimension used by the tooltip component for font size (MarsUI Heading_top style UI/Para/medium: body_1 13px).
--ki-tooltip-font-weightfont weight used by the tooltip component for font weight.
--ki-tooltip-line-heightdimension used by the tooltip component for line height (MarsUI line_height/para 20px).
--ki-tooltip-max-inline-sizedimension used by the tooltip component for max inline size (288px; the master card is fixed 280px wide in its rich variants — the 8px divergence is a documented text-only reduction).
--ki-tooltip-offsetdimension used by the tooltip component for offset (MarsUI caret depth 8px with zero extra gap = trigger-to-card distance).
--ki-tooltip-padding-blockdimension used by the tooltip component for padding block (MarsUI card padding Space/xl 12px on all sides).
--ki-tooltip-padding-inlinedimension used by the tooltip component for padding inline (MarsUI card padding Space/xl 12px on all sides).
--ki-tooltip-radiusdimension used by the tooltip component for radius (MarsUI Tooltip master 12089:7621 List_wrap: Radius/big_component/radius_xs 16px).
--ki-tooltip-shadowshadow used by the tooltip component for shadow (MarsUI Elevation/e4 on the master wrap).
--ki-typography-family-bodysemantic font family for typography family body.

The tooltip’s label becomes the trigger’s accessible description, never its name — the trigger still owns its own label. Never put essential or unique information, interactive content, or form validation messages in a tooltip; tooltips are unreliable on touch-primary flows and invisible to anyone who never hovers or focuses the trigger.

Open ki-tooltip in Storybook