CONTRIBUTOR-DOCS / Project planning / Components / Tooltip / Tooltip migration roadmap
In this doc
CSS selectors
Base component:
.spectrum-Tooltip
Variants:
.spectrum-Tooltip--bottom.spectrum-Tooltip--bottom .spectrum-Tooltip-tip.spectrum-Tooltip--bottom-end.spectrum-Tooltip--bottom-end .spectrum-Tooltip-tip.spectrum-Tooltip--bottom-end .spectrum-Tooltip-tip:dir(rtl).spectrum-Tooltip--bottom-end.is-open.spectrum-Tooltip--bottom-left.spectrum-Tooltip--bottom-left .spectrum-Tooltip-tip.spectrum-Tooltip--bottom-left.is-open.spectrum-Tooltip--bottom-right.spectrum-Tooltip--bottom-right .spectrum-Tooltip-tip.spectrum-Tooltip--bottom-right.is-open.spectrum-Tooltip--bottom-start.spectrum-Tooltip--bottom-start .spectrum-Tooltip-tip.spectrum-Tooltip--bottom-start .spectrum-Tooltip-tip:dir(rtl).spectrum-Tooltip--bottom-start.is-open.spectrum-Tooltip--bottom.is-open.spectrum-Tooltip--end.spectrum-Tooltip--end .spectrum-Tooltip-tip.spectrum-Tooltip--end .spectrum-Tooltip-tip:dir(rtl).spectrum-Tooltip--end-bottom.spectrum-Tooltip--end-bottom .spectrum-Tooltip-tip.spectrum-Tooltip--end-bottom .spectrum-Tooltip-tip:dir(rtl).spectrum-Tooltip--end-bottom.is-open.spectrum-Tooltip--end-bottom.is-open:dir(rtl).spectrum-Tooltip--end-top.spectrum-Tooltip--end-top .spectrum-Tooltip-tip.spectrum-Tooltip--end-top .spectrum-Tooltip-tip:dir(rtl).spectrum-Tooltip--end-top.is-open.spectrum-Tooltip--end-top.is-open:dir(rtl).spectrum-Tooltip--end.is-open.spectrum-Tooltip--end.is-open:dir(rtl).spectrum-Tooltip--info.spectrum-Tooltip--info .spectrum-Tooltip-tip.spectrum-Tooltip--left.spectrum-Tooltip--left .spectrum-Tooltip-tip.spectrum-Tooltip--left .spectrum-Tooltip-tip:dir(rtl).spectrum-Tooltip--left-bottom.spectrum-Tooltip--left-bottom .spectrum-Tooltip-tip.spectrum-Tooltip--left-bottom .spectrum-Tooltip-tip:dir(rtl).spectrum-Tooltip--left-bottom.is-open.spectrum-Tooltip--left-top.spectrum-Tooltip--left-top .spectrum-Tooltip-tip.spectrum-Tooltip--left-top .spectrum-Tooltip-tip:dir(rtl).spectrum-Tooltip--left-top.is-open.spectrum-Tooltip--left.is-open.spectrum-Tooltip--negative.spectrum-Tooltip--negative .spectrum-Tooltip-tip.spectrum-Tooltip--right.spectrum-Tooltip--right .spectrum-Tooltip-tip.spectrum-Tooltip--right .spectrum-Tooltip-tip:dir(rtl).spectrum-Tooltip--right-bottom.spectrum-Tooltip--right-bottom .spectrum-Tooltip-tip.spectrum-Tooltip--right-bottom .spectrum-Tooltip-tip:dir(rtl).spectrum-Tooltip--right-bottom.is-open.spectrum-Tooltip--right-top.spectrum-Tooltip--right-top .spectrum-Tooltip-tip.spectrum-Tooltip--right-top .spectrum-Tooltip-tip:dir(rtl).spectrum-Tooltip--right-top.is-open.spectrum-Tooltip--right.is-open.spectrum-Tooltip--start.spectrum-Tooltip--start .spectrum-Tooltip-tip.spectrum-Tooltip--start .spectrum-Tooltip-tip:dir(rtl).spectrum-Tooltip--start-bottom.spectrum-Tooltip--start-bottom .spectrum-Tooltip-tip.spectrum-Tooltip--start-bottom .spectrum-Tooltip-tip:dir(rtl).spectrum-Tooltip--start-bottom.is-open.spectrum-Tooltip--start-bottom.is-open:dir(rtl).spectrum-Tooltip--start-top.spectrum-Tooltip--start-top .spectrum-Tooltip-tip.spectrum-Tooltip--start-top .spectrum-Tooltip-tip:dir(rtl).spectrum-Tooltip--start-top.is-open.spectrum-Tooltip--start-top.is-open:dir(rtl).spectrum-Tooltip--start.is-open.spectrum-Tooltip--start.is-open:dir(rtl).spectrum-Tooltip--top.spectrum-Tooltip--top .spectrum-Tooltip-tip.spectrum-Tooltip--top-end.spectrum-Tooltip--top-end .spectrum-Tooltip-tip.spectrum-Tooltip--top-end .spectrum-Tooltip-tip:dir(rtl).spectrum-Tooltip--top-end.is-open.spectrum-Tooltip--top-left.spectrum-Tooltip--top-left .spectrum-Tooltip-tip.spectrum-Tooltip--top-left.is-open.spectrum-Tooltip--top-right.spectrum-Tooltip--top-right .spectrum-Tooltip-tip.spectrum-Tooltip--top-right.is-open.spectrum-Tooltip--top-start.spectrum-Tooltip--top-start .spectrum-Tooltip-tip.spectrum-Tooltip--top-start .spectrum-Tooltip-tip:dir(rtl).spectrum-Tooltip--top-start.is-open.spectrum-Tooltip--top.is-open.spectrum-Tooltip-label.spectrum-Tooltip-tip.spectrum-Tooltip.is-open.spectrum-Tooltip p
Language-specific:
.spectrum-Tooltip:lang(ja).spectrum-Tooltip:lang(ko).spectrum-Tooltip:lang(zh)
Passthroughs
None found for this component.
Modifiers
--mod-overlay-animation-duration--mod-overlay-animation-duration-opened--mod-tooltip-animation-distance--mod-tooltip-background-color-default--mod-tooltip-background-color-informative--mod-tooltip-background-color-negative--mod-tooltip-border-radius--mod-tooltip-cjk-line-height--mod-tooltip-content-color--mod-tooltip-font-size--mod-tooltip-font-weight--mod-tooltip-height--mod-tooltip-line-height--mod-tooltip-margin--mod-tooltip-max-inline-size--mod-tooltip-pointer-corner-spacing--mod-tooltip-spacing-block-end--mod-tooltip-spacing-block-start--mod-tooltip-spacing-inline--mod-tooltip-tip-antialiasing-inset--mod-tooltip-tip-block-size--mod-tooltip-tip-corner-radius--mod-tooltip-tip-height-percentage--mod-tooltip-tip-square-size
Attributes
delayed- Boolean attribute for warm-up/cooldown behaviordisabled- Boolean attribute to prevent self-managed tooltip from responding to user inputself-managed- Boolean attribute to automatically bind to parent elementoffset- Number attribute for positioning offsetopen- Boolean attribute reflecting open stateplacement- Values:top,top-start,top-end,right,right-start,right-end,bottom,bottom-start,bottom-end,left,left-start,left-endtip-padding- Number attribute for tip paddingvariant- Values:info,positive(deprecated in Spectrum 2),negative
Slots
icon- Icon element appearing at the start of the label- Default slot (no name) - Text label of the Tooltip
Spectrum Web Components:
<sp-tooltip-openable>
<slot name="icon"></slot>
<span id="label"><slot></slot></span>
<span id="tip" aria-hidden="true"></span>
</sp-tooltip-openable>
<!-- When self-managed=true -->
<sp-overlay
open="[open && !disabled && loaded]"
delayed="[delayed]"
disabled="[disabled]"
offset="[offset]"
placement="[placement]"
type="hint"
triggerInteraction="hover"
>
<sp-tooltip-openable>
<slot name="icon"></slot>
<span id="label"><slot></slot></span>
<span id="tip" aria-hidden="true"></span>
</sp-tooltip-openable>
</sp-overlay>Legacy (CSS main branch):
<span
class="spectrum-Tooltip
spectrum-Tooltip--[variant]
spectrum-Tooltip--[placement]
is-open"
>
<!-- Icon component rendered for info/positive/negative variants -->
<svg class="spectrum-Tooltip-typeIcon">
<!-- Workflow icon: Info, CheckmarkCircle, or Alert -->
</svg>
<span class="spectrum-Tooltip-label">[label]</span>
<span class="spectrum-Tooltip-tip"></span>
</span>Spectrum 2 (CSS spectrum-two branch):
<span
class="spectrum-Tooltip
spectrum-Tooltip--[variant]
spectrum-Tooltip--[placement]
is-open"
>
<span class="spectrum-Tooltip-label">[label]</span>
<span class="spectrum-Tooltip-tip"></span>
</span>Diff: Legacy (CSS main) → Spectrum 2 (CSS spectrum-two)
--- Legacy DOM structure
+++ Spectrum 2 DOM structure
@@ -1,5 +1,4 @@
<span class="spectrum-Tooltip">
- <svg class="spectrum-Tooltip-typeIcon"></svg>
<span class="spectrum-Tooltip-label">[label]</span>
<span class="spectrum-Tooltip-tip"></span>
</span>Key DOM changes:
- Removed:
.spectrum-Tooltip-typeIconwrapper and all icon rendering (icons no longer part of tooltip in Spectrum 2) - Removed: Icon imports and icon component instantiation for
info,positive, andnegativevariants - Template/JS: Remove
variantIconvariable and conditional icon logic, icon rendering in template, andpositivefrom variants array - Removed:
.spectrum-Tooltip-typeIconwrapper and all icon rendering (icons no longer part of tooltip in Spectrum 2)
| CSS selector | Attribute or slot | Status |
|---|---|---|
.spectrum-Tooltip |
Base component | Implemented |
.spectrum-Tooltip-label |
Default slot (wrapped in #label span) |
Implemented |
.spectrum-Tooltip-tip |
Tip element (internal #tip span) |
Implemented |
.spectrum-Tooltip--info |
variant="info" |
Implemented |
.spectrum-Tooltip--negative |
variant="negative" |
Implemented |
.spectrum-Tooltip--top |
placement="top" |
Implemented |
.spectrum-Tooltip--top-start |
placement="top-start" |
Implemented |
.spectrum-Tooltip--top-end |
placement="top-end" |
Implemented |
.spectrum-Tooltip--right |
placement="right" |
Implemented |
.spectrum-Tooltip--right-start |
placement="right-start" |
Implemented |
.spectrum-Tooltip--right-end |
placement="right-end" |
Implemented |
.spectrum-Tooltip--bottom |
placement="bottom" |
Implemented |
.spectrum-Tooltip--bottom-start |
placement="bottom-start" |
Implemented |
.spectrum-Tooltip--bottom-end |
placement="bottom-end" |
Implemented |
.spectrum-Tooltip--left |
placement="left" |
Implemented |
.spectrum-Tooltip--left-start |
placement="left-start" |
Implemented |
.spectrum-Tooltip--left-end |
placement="left-end" |
Implemented |
.spectrum-Tooltip.is-open |
open attribute |
Implemented |
.spectrum-Tooltip:lang(ja), .spectrum-Tooltip:lang(ko), .spectrum-Tooltip:lang(zh) |
Language-specific styling | Implemented |
.spectrum-Tooltip p |
Paragraph styling within tooltip | Implemented |
.spectrum-Tooltip--bottom-left |
placement="bottom-start" (logical) |
Implemented |
.spectrum-Tooltip--bottom-right |
placement="bottom-end" (logical) |
Implemented |
.spectrum-Tooltip--top-left |
placement="top-start" (logical) |
Implemented |
.spectrum-Tooltip--top-right |
placement="top-end" (logical) |
Implemented |
.spectrum-Tooltip--left-top |
placement="left-start" (logical) |
Implemented |
.spectrum-Tooltip--left-bottom |
placement="left-end" (logical) |
Implemented |
.spectrum-Tooltip--right-top |
placement="right-start" (logical) |
Implemented |
.spectrum-Tooltip--right-bottom |
placement="right-end" (logical) |
Implemented |
.spectrum-Tooltip--start |
Missing from WC | |
.spectrum-Tooltip--start-top |
Missing from WC | |
.spectrum-Tooltip--start-bottom |
Missing from WC | |
.spectrum-Tooltip--end |
Missing from WC | |
.spectrum-Tooltip--end-top |
Missing from WC | |
.spectrum-Tooltip--end-bottom |
Missing from WC | |
.spectrum-Tooltip--no-tip |
Missing from WC | |
.spectrum-Tooltip--positive |
Deprecated |
Deprecated:
.spectrum-Tooltip--positivevariant was removed in Spectrum 2.spectrum-Tooltip-typeIconwrapper element and all icon rendering logic
Variant updates:
- Variant icons (Info, CheckmarkCircle, Alert) for semantic variants are no longer rendered in the template
- The
.spectrum-Tooltip-typeIconclass and associated icon rendering logic were removed - Only
neutral,info, andnegativevariants remain in Spectrum 2 - CSS classes for the positive variant (
.spectrum-Tooltip--positive) are deprecated
New feature in Spectrum 2:
.spectrum-Tooltip--noTip- Optional removal of directional tip placement.
No structural HTML changes:
- The base
<span>wrapper structure remains identical .spectrum-Tooltip-labeland.spectrum-Tooltip-tipelements are preserved- All placement-related classes maintain the same structure