sheengemologic ui
All components

Tooltip

An action button with hover/focus help and optional shortcut display.@gemologic/sheen · overlays

Playground

<Tooltip content="Save the workspace" shortcut={{ keys: "mod+s", scope: "global", label: "Save workspace", group: "Editing" }} variant="outline" loading={false} placement="top" size="md" tone="neutral" type="button" variant="ghost">Save</Tooltip>

Variant matrix

Save hint
type: button
type: submit
type: reset
placement: top
placement: bottom
placement: left
placement: right
variant: solid
variant: soft
variant: outline
variant: ghost
variant: link
tone: neutral
tone: accent
tone: danger
tone: success
size: xs
size: sm
size: md
size: lg

Anatomy

Package
@gemologic/sheen
Source
packages/ui/src/primitives/Tooltip.tsx
Tokens
  • --sheen-button-radius
  • --sheen-control-h-md
  • --sheen-color-accent
  • --sheen-color-bg-raised
  • --sheen-elevation-raised
  • --sheen-duration-fast

Accessibility

Role: tooltipKeyboard: Tab, Shift+Tab, Escape, Enter, Space

Do

  • Provide a visible label or aria-label on the native trigger.

Do not

  • Do not nest a button inside Tooltip or put interactive controls in its content.

Generated props

NameTypeDefaultDescription
type"button" | "submit" | "reset" | undefinedbuttonNative action, submission, or reset behavior.
content *stringNoninteractive supporting text; never a replacement for the trigger's accessible name.
shortcutstring | ShortcutAction | undefinedA string displays a hint only; a typed shortcut action also registers the trigger and displays its platform-formatted binding.
placement"top" | "bottom" | "left" | "right" | undefinedtopPreferred side, with viewport collision handling.
openDelaynumber500Hover opening delay in milliseconds; keyboard focus opens immediately.
closeDelaynumber100Pointer departure delay in milliseconds, preserving a hoverable path to the content.
variantNonNullable<"solid" | "soft" | "outline" | "ghost" | "link" | undefined> | undefinedghostVisual treatment; solid accent actions should be rare.
toneNonNullable<"neutral" | "accent" | "danger" | "success" | undefined> | undefinedneutralSemantic color role, independent of visual treatment.
sizeNonNullable<"xs" | "sm" | "md" | "lg" | undefined> | undefinedmdDensity-aware control size.
loadingfalse | true | undefinedfalseMarks pending work and disables activation.
Native Solid/HTML attributes remain available and are omitted from this authored-prop view.