SScale Themedocs

Interactive section with clickable points on an image, smart tooltips, and precise desktop/mobile positioning.

Image Hotspot

The Image Hotspot section turns any image into an interactive experience. Animated points (hotspots) draw the visitor's attention and reveal, on click or hover, rich tooltips with a title, description, and call-to-action button. The <image-hotspot> web component automatically handles smart tooltip positioning, touch detection, keyboard navigation, and position recalculation on window resize.

This is one of the most effective conversion tools in the theme: instead of leaving the visitor to guess the details of a product, you show them directly on the image, exactly where they matter.


Why use hotspots?

Hotspots address a fundamental problem in e-commerce: the visitor sees a product but cannot touch it. By letting them visually explore the details, you reduce uncertainty and build confidence.

Impact on conversion:

  • Increased engagement -- Interactive elements increase time spent on the page, a positive signal for purchase decisions.
  • Product education -- Explain materials, features, or ingredients directly on the image, without forcing the visitor to read a long block of text.
  • Fewer returns -- A customer who understands exactly what they are buying is less likely to return the product.
  • Seamless navigation -- Each hotspot can include a CTA button linking to the product page, a materials page, or a size guide, without visually leaving the current page.
💡Limit the number of hotspots to 3-5 per image. Beyond that, the image becomes cluttered and visitors do not know where to click. Prioritize details that answer the most common questions.

Guide: Create your first hotspot image in 5 steps

Step 1: Choose your image

In the Shopify editor, add the Image with hotspots section and then select your main image.

Desktop vs. mobile image:

The section supports two separate images. The desktop image is displayed at screen widths of 750px and above; the mobile image is used below that. If you do not set a mobile image, the desktop image is used everywhere.

SettingDescriptionRecommendation
ImageMain image (desktop)Landscape, at least 1500px wide
Mobile imageDedicated mobile image (optional)Portrait or square, at least 750px wide

Image height:

ValueBehaviorWhen to use
AdaptRespects the image's natural aspect ratioDefault choice, ideal in most cases
Small30rem mobile / 40rem desktopAmbient background image
Medium40rem mobile / 55rem desktopGood visibility without dominating the page
Large50rem mobile / 70rem desktopHero section, immersive image
⚠️If you choose a fixed height (Small, Medium, Large), the image will be cropped with object-fit: cover. Make sure important elements are near the center of the image to avoid them being cut off.

Step 2: Add your hotspots

Click Add block in the editor's side panel, then select Hotspot. Each hotspot is an independent block with its own position and content settings.

You can also add a Heading block (limited to 1) to display a title above the image.

Recommended order:

  1. Add the Heading block first if you want a section title.
  2. Then add your Hotspot blocks one by one.
  3. Configure each hotspot individually (position first, then content).

Step 3: Position your hotspots

This is the most important step. Each hotspot has 4 position sliders: two for desktop (top, left) and two for mobile (top_mobile, left_mobile).

How positioning works:

Positions are expressed as a percentage of the image, from 5% to 95%. The point top: 5%, left: 5% corresponds to the upper-left corner, and top: 95%, left: 95% to the lower-right corner.

     5%        25%        50%        75%        95%   <- left
  5% +----------+----------+----------+----------+
     |          |          |          |          |
 25% +----------+----------+----------+----------+
     |          |          |          |          |
 50% +----------+----------+----------+----------+
     |          |          |          |          |
 75% +----------+----------+----------+----------+
     |          |          |          |          |
 95% +----------+----------+----------+----------+
  ^
 top

The 4 sliders per hotspot:

SliderRangeDescription
Top position (Desktop)5-95%Vertical position on the desktop image
Left position (Desktop)5-95%Horizontal position on the desktop image
Top position (Mobile)5-95%Vertical position on the mobile image
Left position (Mobile)5-95%Horizontal position on the mobile image
💡Adjust the sliders in the Shopify editor while watching the real-time preview. Start with desktop, then switch to the mobile view to adjust mobile positions separately.
⚠️If you use a different mobile image than the desktop image, positions must be adjusted independently. A jacket photographed in landscape (desktop) and in portrait (mobile) will not have the same framing: a zipper at top: 40%, left: 50% on desktop might be at top: 30%, left: 45% on mobile.

Step 4: Configure tooltip content

Each hotspot can contain three content elements:

FieldTypeDescriptionDefault
TitleTextTooltip title, displayed in bold"Feature name"
DescriptionRich textParagraphs, lists, bold, italic<p>Share details about this feature or benefit.</p>
Button textTextCTA button label"Learn more"
Button linkURLButton destination-
Button styleSelectButton visual appearancePrimary

Available button styles:

StyleRenderingRecommended use
PrimarySolid button, accent colorMain action: "Buy now", "View product"
SecondaryButton with borderSecondary action: "Learn more", "Details"
TertiaryText button, no background or borderSubtle action: "Read more"
ℹ️The button only appears if both fields (text and link) are filled in. If you want a purely informational hotspot (no CTA), simply leave the button text empty.

Step 5: Adjust size and test

Hotspot size:

The Hotspot size slider controls the diameter of all clickable points in the section, from 30px to 60px. The default value of 44px is optimized for accessibility (minimum touch target recommended by WCAG).

SizeDiameterRecommendation
Minimum30pxBusy image, many hotspots close together
Default44pxIdeal balance of visibility and subtlety
Maximum60pxFew hotspots, simple image, older audience

Pre-publish checklist:

  • [ ] Verify each hotspot in both desktop AND mobile view in the editor.
  • [ ] Click each point to confirm the tooltip opens correctly.
  • [ ] Verify that tooltips do not overflow the screen (smart positioning handles this, but a visual check is always helpful).
  • [ ] Test CTA buttons: do the links point to the correct pages?

Smart tooltip positioning

One of the key strengths of this section is the automatic positioning of tooltips. The <image-hotspot> component analyzes the position of each point on the image and automatically chooses the best location for the tooltip.

Positioning logic:

The component evaluates two axes:

  • Horizontal axis: if the hotspot is in the left 30% of the image, the tooltip opens to the right. If it is in the right 30%, it opens to the left.
  • Vertical axis: if the hotspot is in the top 30% of the image, the tooltip opens downward. If it is in the bottom 30%, it opens upward.
Hotspot positionCSS class appliedTooltip direction
left < 30%hotspot--position-leftTooltip to the right
left > 70%hotspot--position-rightTooltip to the left
top < 30%hotspot--position-topTooltip downward
top > 70%hotspot--position-bottomTooltip upward
Center zone (30-70%)No special classTooltip centered on the hotspot
ℹ️Positioning is automatically recalculated on window resize (with a 150ms debounce for performance). You do not need to configure anything -- the component adapts on its own.

Positioning guide

Here is a quick reference for common positions. Use these values as a starting point, then fine-tune in the editor.

Common positions

Image zoneTopLeftDescription
Upper left corner2020Logo, label, collar of a garment
Top center2050Hood, head, top of a product
Upper right corner2080Badge, shoulder detail
Center left5020Side pocket, handle
Center5050Main element, heart of the product
Center right5080Closure, button, USB port
Lower left8020Sole, furniture foot
Bottom center8050Hem, base of the product
Lower right8080Price tag, finishing detail

Placement tips

  • Avoid extreme edges (5-10%): tooltips may be truncated despite smart repositioning.
  • Space out hotspots: keep at least 15-20% distance between two points to avoid overlap.
  • Align strategically: place hotspots on real elements in the image (seam, button, ingredient), not in empty space.

Hotspot animation

Each hotspot displays a continuous pulse animation that draws the visitor's eye. The animation uses a semi-transparent circle that grows and fades in a loop every 2 seconds.

Animation behavior:

StateAnimation
DefaultContinuous pulse (2s, cubic-bezier(0.4, 0, 0.6, 1))
HoverAnimation paused, subtle halo around the point
Hotspot openAnimation paused, point filled with shadow
Active clickSlight reduction of the point (scale(0.95)) for tactile feedback

Performance: The animation uses exclusively transform and opacity (GPU-accelerated properties), ensuring 60fps rendering without impacting the main thread.

ℹ️If the visitor has enabled the prefers-reduced-motion system preference, all animations are automatically disabled: no pulse, no transitions. The hotspots remain fully functional -- only the animated decoration is removed.

Interaction: Desktop vs. Mobile

The component automatically detects the device type and adapts its behavior.

Desktop (mouse)

ActionResult
Hover over the hotspotThe tooltip appears gradually (300ms)
Leave the hoverThe tooltip disappears
Click on the hotspotThe tooltip stays open (pinned mode)
Click elsewhere on the pageThe active tooltip closes
Escape keyThe active tooltip closes, focus returns to the hotspot

On desktop, the hotspot--hover-enabled class is added, enabling hover-to-open via CSS. The close button (X) is hidden since leaving the hover is enough to close the tooltip.

Mobile (touch)

ActionResult
Tap on the hotspotThe tooltip opens, focus is placed on the close button
Tap on the X buttonThe tooltip closes
Tap elsewhere on the pageThe active tooltip closes
Escape key (external keyboard)The active tooltip closes

On mobile, the close button (X) is always visible, and focus is automatically moved to it on open to make closing easy.

💡Only one hotspot can be open at a time. If the visitor clicks a second hotspot, the first one closes automatically. This behavior prevents visual overload and keeps the interface readable.

Tooltip visual effects

The tooltip uses several effects to stand out from the image without feeling aggressive:

PropertyValueEffect
Backgroundrgba(background, 0.95)Semi-transparent background that lets the image show through
Backdrop blurblur(10px)Background blur for readability
Border1px solid rgba(foreground, 0.1)Subtle separation from the image
Border radius1.2remModern rounded corners
Shadow0 1rem 3rem rgba(0,0,0,0.15)Depth and elevation
Enter animationscale(0.9) -> scale(1) in 300msSmooth, natural appearance

The tooltip width is 30rem on mobile and 35rem on desktop, with a maximum of 90vw to never exceed the screen.


Full configuration reference

Section settings

SettingTypeOptionsDefaultDescription
ImageImage picker--Main image (desktop)
Mobile imageImage picker-Inherits from desktopDedicated mobile image
HeightSelectAdapt / Small / Medium / LargeAdaptImage container height
Desktop alignmentSelectLeft / Center / RightCenterSection title alignment
Mobile alignmentSelectLeft / Center / RightCenterMobile title alignment
Hotspot sizeRange30-60px (step 2)44pxClickable point diameter

The section also includes standard global settings: margins (desktop/mobile), color palette, separators, entrance animations, visibility, and section ID.

Heading block (limit 1)

Main title displayed above the image. Uses the standard BLOCK_HEADING schema-part with subtitle, title, size, and spacing.

Hotspot block (unlimited)

SettingTypeRangeDefaultDescription
Top position (Desktop)Range5-95%50%Vertical position on desktop
Left position (Desktop)Range5-95%50%Horizontal position on desktop
Top position (Mobile)Range5-95%50%Vertical position on mobile
Left position (Mobile)Range5-95%50%Horizontal position on mobile
TitleText-"Feature name"Tooltip title
DescriptionRich text-Default paragraphDescriptive content
Button textText-"Learn more"CTA label
Button linkURL--CTA destination
Button styleSelectPrimary / Secondary / TertiaryPrimaryButton appearance

Detailed use cases

1. Product details (fashion, tech, furniture)

The classic use case: a product photo on a neutral background with hotspots on each important detail.

Recommended configuration:

  • Image: High-resolution product photo, solid background or understated lifestyle setting.
  • Height: Adapt (respects the natural ratio).
  • Number of hotspots: 3-5 maximum.
  • Tooltip content: Short title (e.g., "Full-grain leather"), technical description (2-3 lines), "View material" button linking to a dedicated page.
  • Button style: Secondary to stay subtle.
  • Hotspot size: 44px (default).

Example positions for a handbag:

HotspotTopLeftContent
Handle1550Braided leather, hand-stitched
Clasp4050Aged brass, magnetic closure
Pocket6025Interior zippered pocket
Base8550Protective metal feet

2. Recipe / Ingredients

Photo of a finished dish or cosmetic product with hotspots on each visible ingredient.

Recommended configuration:

  • Image: Culinary or product photo, top-down or 3/4 view.
  • Height: Medium for good detail visibility.
  • Content: Title = ingredient name, description = amount + benefit, no CTA button (informational only).
  • Hotspot size: 36-40px (more subtle on a busy image).
💡For a recipe, place hotspots directly on the visible ingredients in the image. Use the rich text description to add bullet-point lists with exact quantities.

3. Complete look / Outfit

Lifestyle photo with a model wearing a full outfit. Each hotspot points to a different product.

Recommended configuration:

  • Desktop image: Full-length photo, landscape format.
  • Mobile image: Same photo cropped to portrait (bust or mid-body) so details remain visible.
  • Content: Title = product name, description = price + available sizes, "View product" button in Primary style.
  • Hotspot size: 44px for good visibility.
  • Mobile positions: Adjusted separately since the framing changes.
⚠️With a different mobile image, desktop and mobile positions must be calibrated independently. Take the time to switch between the two views in the editor for each hotspot.

4. Store map / Showroom / Infographic

Image of a floor plan, map, or infographic with interactive zones.

Recommended configuration:

  • Image: Floor plan or diagram on a light background, high resolution.
  • Height: Large so that details are legible.
  • Content: Title = zone name, description = hours, available services, "Book now" or "Learn more" button.
  • Button style: Tertiary for informational links, Primary for bookings.
  • Hotspot size: 50-60px for clearly visible hotspots on a large image.

Accessibility

The Image Hotspot section meets WCAG accessibility standards:

ARIA structure

ElementAttributeValuePurpose
Hotspot buttonaria-expandedtrue/falseIndicates open/closed state
Hotspot buttonaria-controlshotspot-content-{id}Links the button to its content
Hotspot buttonaria-label"Open hotspot"Description for screen readers
TooltiproledialogIdentifies the content as a dialog box
Tooltiparia-hiddentrue/falseHides content from screen readers when closed
Close buttonaria-label"Close hotspot"Description for screen readers

Keyboard navigation

KeyAction
TabNavigate between hotspots
Enter / SpaceOpen or close the active hotspot
EscapeClose the open tooltip and return focus to the hotspot

Visible focus

Hotspots and the close button display a visible focus outline (outline: 2px solid) when navigated via keyboard using :focus-visible. This indicator does not appear when using a mouse.

Reduced motion

When prefers-reduced-motion: reduce is active:

  • The pulse animation is disabled.
  • All CSS transitions (open/close, hover, scale) are removed.
  • Tooltips appear and disappear instantly.

Touch target

The default size of 44px meets the WCAG 2.5.8 recommendation (minimum target of 44x44 CSS pixels). If you reduce the size below 44px, the area around the point remains clickable thanks to the button's touch target zone.


Next steps

  • [Banner](/en/sections/banner) -- Combine a full-screen hero image with hotspots on a separate section below.
  • [Before / After](/en/sections/image-before-after) -- Compare two images interactively with a before/after slider.
  • [Gallery](/en/sections/gallery) -- Present multiple images with filters, complementing hotspots on a key image.
  • [Featured Product](/en/sections/featured-product) -- Highlight the main product with hotspots as a complementary section.