Umbraco.Community.ImageHotspot
17.0.8
dotnet add package Umbraco.Community.ImageHotspot --version 17.0.8
NuGet\Install-Package Umbraco.Community.ImageHotspot -Version 17.0.8
<PackageReference Include="Umbraco.Community.ImageHotspot" Version="17.0.8" />
<PackageVersion Include="Umbraco.Community.ImageHotspot" Version="17.0.8" />
<PackageReference Include="Umbraco.Community.ImageHotspot" />
paket add Umbraco.Community.ImageHotspot --version 17.0.8
#r "nuget: Umbraco.Community.ImageHotspot, 17.0.8"
#:package Umbraco.Community.ImageHotspot@17.0.8
#addin nuget:?package=Umbraco.Community.ImageHotspot&version=17.0.8
#tool nuget:?package=Umbraco.Community.ImageHotspot&version=17.0.8
Image Hotspot
An Umbraco property editor that allows an editor to place a hotspot on an image.
This property editor provides similar functionality to what was previously available with the Vokseverk.ImageHotspot data type in Umbraco, versions 7-13.
It's a property editor that displays an image and lets the editor place a hotspot on it.
Installation
Add the package to an existing Umbraco website (v15+) from NuGet:
dotnet add package Umbraco.Community.ImageHotspot
Note: If you are upgrading from v13 and below, using Vokseverk.ImageHotspot, you need to update your Data Type configurations to use this editor.
Backoffice setup
1. Create a Data Type
- Go to Settings → Data Types and create a new Data Type.
- Select Image Hotspot as the property editor.
- Configure the settings:
- Image — the alias of the media picker property that holds the image (default:
image). The editor resolves this recursively, so it works inside Block List and Block Grid elements. - Width — display width of the image in the editor in pixels (default:
400). - Color — hotspot indicator colour:
Red,Green,Blue, orOrange(default:Red).
- Image — the alias of the media picker property that holds the image (default:
2. Add properties to a Document Type
Add a Media Picker property (single image) with the alias you configured above (e.g. image), then add an Image Hotspot property using the Data Type you just created.
When a content editor opens that document, they will see the referenced image and can click (or drag) to place the hotspot.
Using the value in code
The included ImageHotspotPropertyConverter runs automatically and converts the stored JSON into a strongly-typed ImageHotspotValue object via ModelsBuilder.
ImageHotspotValue properties
public class ImageHotspotValue
{
public decimal PercentX { get; set; } // X as a percentage (0–100)
public decimal PercentY { get; set; } // Y as a percentage (0–100)
}
ToString() returns a ready-made CSS snippet (left: X%; top: Y%;) for use directly in a style attribute.
Razor example
@{
var hotspot = Model.Hotspot; // ImageHotspotValue — property alias "hotspot"
var image = Model.Image; // IPublishedContent — property alias "image"
}
@if (hotspot != null && image != null)
{
<div style="position:relative; display:inline-flex;">
<img src="@image.Url()" alt="" />
<span style="
position: absolute;
width: 12px;
height: 12px;
border-radius: 50%;
background: red;
transform: translate(-50%, -50%);
@hotspot
"></span>
</div>
}
The @hotspot interpolation expands to left: 55.75%; top: 74.878%;.
Accessing coordinates directly
var hotspot = Model.Value<ImageHotspotValue>("hotspot");
if (hotspot != null)
{
// Use percentage coordinates (0–1 range)
double x = (double)hotspot.PercentX; // e.g. 0.5575
double y = (double)hotspot.PercentY; // e.g. 0.7488
}
More information
Full documentation and source code: github.com/skttl/umbraco-image-hotspot
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Umbraco.Cms.Api.Common (>= 17.0.0)
- Umbraco.Cms.Api.Management (>= 17.0.0)
- Umbraco.Cms.Web.Common (>= 17.0.0)
- Umbraco.Cms.Web.Website (>= 17.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 17.0.8 | 97 | 6/2/2026 |
| 17.0.8-preview001 | 89 | 6/2/2026 |
| 17.0.7 | 95 | 6/1/2026 |
| 17.0.6 | 109 | 5/19/2026 |
| 17.0.5 | 90 | 5/19/2026 |
| 17.0.4 | 91 | 5/19/2026 |
| 17.0.3 | 98 | 5/19/2026 |
| 17.0.2 | 99 | 5/19/2026 |
| 17.0.1 | 91 | 5/19/2026 |
| 17.0.0 | 101 | 5/18/2026 |
| 0.3.0 | 511 | 8/8/2025 |
| 0.2.0 | 259 | 8/8/2025 |
| 0.1.0 | 270 | 8/8/2025 |
| 0.1.0-alpha001 | 344 | 5/13/2025 |