You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svelte-kit-vice/src/uix/soma/components/tooltip
dev 00742e33b4
Advance Eidos component migration
5 months ago
..
components Add Eidos tooltip reference comparison 5 months ago
README.md Advance Eidos component migration 5 months ago
exports.ts Move Soma public types out of providers 5 months ago
index.ts Add Tooltip component, export Side/Align/Boundary from $soma/types 6 months ago
tooltip-provider.svelte.test.ts Advance Eidos component migration 5 months ago
tooltip-provider.svelte.ts Add Eidos tooltip reference comparison 5 months ago
types.ts Add Eidos tooltip reference comparison 5 months ago

README.md

Tooltip

A floating label that appears on hover or focus to describe an element. Supports delay groups, positioning, and hoverable content.

Anatomy

<Tooltip.Provider>
	<Tooltip.Trigger>Hover me</Tooltip.Trigger>
	<Tooltip.Content>
		<Tooltip.Arrow />
		Tooltip text
	</Tooltip.Content>
</Tooltip.Provider>

Wrap multiple tooltips in Tooltip.Group to share open delay across a group.

Parts

Part Element Description
Group none Optional group coordinator. Shares delay state across tooltips.
Provider none Root context for a single tooltip. Manages open state and timing.
Trigger any Element that triggers the tooltip on hover/focus.
Content <div> Floating tooltip panel. Positioned relative to trigger.
Arrow <div> Floating arrow pointing toward the trigger.

ARIA

Part Attribute Value
Trigger aria-describedby ID of Content (when open)
Content role tooltip
Content aria-label Optional label text

Data Attributes

Part Attribute Values
Trigger data-tooltip-trigger Always present
Trigger data-state closed | delayed-open | instant-open
Content data-tooltip-content Always present
Content data-state closed | delayed-open | instant-open
Content data-side top | right | bottom | left
Content data-align start | center | end
Content data-starting-style Present during open animation
Content data-ending-style Present during close animation

CSS Variables

Variable Part Description
--floating-transform-origin Content Transform origin based on placement
--floating-available-width Content Available width before collision
--floating-available-height Content Available height before collision
--floating-anchor-width Content Width of the anchor element
--floating-anchor-height Content Height of the anchor element

Keyboard

Key Action
Escape Close the tooltip
Tab (to trigger) Open tooltip on focus
Tab (away) Close tooltip on blur

Tooltips open on pointerenter and focus, close on pointerleave and blur.

Usage

Basic

<script>
	import { Tooltip } from '$soma/components';
</script>

<Tooltip.Provider>
	<Tooltip.Trigger>
		<button>Save</button>
	</Tooltip.Trigger>
	<Tooltip.Content>
		<Tooltip.Arrow />
		Save your changes
	</Tooltip.Content>
</Tooltip.Provider>

With delay group

<Tooltip.Group openDelay={500} closeDelay={0}>
	<Tooltip.Provider>
		<Tooltip.Trigger>A</Tooltip.Trigger>
		<Tooltip.Content>Tooltip A</Tooltip.Content>
	</Tooltip.Provider>

	<Tooltip.Provider>
		<Tooltip.Trigger>B</Tooltip.Trigger>
		<Tooltip.Content>Tooltip B</Tooltip.Content>
	</Tooltip.Provider>
</Tooltip.Group>

Custom positioning

<Tooltip.Content side="right" sideOffset={8}>Positioned to the right</Tooltip.Content>

Non-hoverable content

<Tooltip.Provider disableHoverableContent>
	<!-- Content disappears immediately when pointer leaves trigger -->
</Tooltip.Provider>

Powered by TurnKey Linux.