You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Most globe marker types render at 9-11px (emoji font-size or small geometric shapes) with no expanded hit area. Clicking them on a 3D globe is frustratingly difficult, especially on touch devices. The satellite marker was recently fixed (PR #1315) with a 16px invisible hit wrapper, but 18+ other marker types still have the same problem.
Current State (audited from GlobeMap.tscreateMarkerElement())
Tiny (5-10px effective hit area, hardest to click)
Marker
Rendering
Effective Size
ucdp
Circle sized by deaths: 5 + deaths * 0.3, capped at 10px
5-10px
weather
Emoji at font-size:9px
~9px
vessel
Emoji at font-size:10px
~10px
cyber
Emoji at font-size:10px
~10px
fire
Emoji at font-size:10px
~10px
climate
Emoji at font-size:10px
~10px
gpsjam
Emoji at font-size:10px
~10px
tech
Emoji at font-size:10px
~10px
irradiator
Emoji at font-size:10px
~10px
datacenter
Emoji at font-size:10px
~10px
waterway
Emoji at font-size:10px
~10px
mineral
Emoji at font-size:10px
~10px
milbase
CSS triangle border-bottom:9px
~10px
Borderline (11-12px, workable but not great)
Marker
Rendering
Effective Size
flight
Emoji at font-size:11px with rotation
~11px
natural
Emoji at font-size:11px
~11px
protest
Emoji at font-size:11px
~11px
displacement
Emoji at font-size:11px
~11px
nuclearSite
Emoji at font-size:11px
~11px
spaceport
Emoji at font-size:11px
~11px
economic
Emoji at font-size:11px
~11px
flightDelay
Emoji at font-size:11px
~11px
cableAdvisory
Emoji at font-size:11px
~11px
repairShip
Emoji at font-size:11px
~11px
aisDisruption
Emoji at font-size:11px
~11px
outage
Emoji at font-size:12px
~12px
earthquake
Circle Math.max(8, magnitude * 2.5)
8-18px (small at low mag)
Already OK (16px+)
Marker
Size
conflict
6-12px dot + pulse ring extends to ~16px
hotspot
10px diamond (borderline, but high-priority marker)
Apply the same pattern used for satellites: wrap each emoji/shape marker in a transparent hit-target <div> with min-width:16px; min-height:16px centered around the visible element. This makes the clickable area uniform without changing the visual appearance.
For emoji-based markers, this could be a shared utility or CSS class rather than per-marker inline styles.
Problem
Most globe marker types render at 9-11px (emoji font-size or small geometric shapes) with no expanded hit area. Clicking them on a 3D globe is frustratingly difficult, especially on touch devices. The satellite marker was recently fixed (PR #1315) with a 16px invisible hit wrapper, but 18+ other marker types still have the same problem.
Current State (audited from
GlobeMap.tscreateMarkerElement())Tiny (5-10px effective hit area, hardest to click)
ucdp5 + deaths * 0.3, capped at 10pxweatherfont-size:9pxvesselfont-size:10pxcyberfont-size:10pxfirefont-size:10pxclimatefont-size:10pxgpsjamfont-size:10pxtechfont-size:10pxirradiatorfont-size:10pxdatacenterfont-size:10pxwaterwayfont-size:10pxmineralfont-size:10pxmilbaseborder-bottom:9pxBorderline (11-12px, workable but not great)
flightfont-size:11pxwith rotationnaturalfont-size:11pxprotestfont-size:11pxdisplacementfont-size:11pxnuclearSitefont-size:11pxspaceportfont-size:11pxeconomicfont-size:11pxflightDelayfont-size:11pxcableAdvisoryfont-size:11pxrepairShipfont-size:11pxaisDisruptionfont-size:11pxoutagefont-size:12pxearthquakeMath.max(8, magnitude * 2.5)Already OK (16px+)
conflicthotspotiranconflictZonenewsLocationsatelliteProposed Fix
Apply the same pattern used for satellites: wrap each emoji/shape marker in a transparent hit-target
<div>withmin-width:16px; min-height:16pxcentered around the visible element. This makes the clickable area uniform without changing the visual appearance.For emoji-based markers, this could be a shared utility or CSS class rather than per-marker inline styles.
Implementation Notes
sat-hitwrapper div withwidth:16px;height:16px;display:flex;align-items:center;justify-content:center;margin:-8px 0 0 -8pxto center the visible dot:hoverrule on the wrapper provides visual feedback (scale-up + glow) without per-marker JS listeners.marker-hitclassucdpcircle,milbasetriangle,earthquakecircle), ensure the hit area is at least 16px even when the visual element is smallerhotspot(10px diamond) is a high-priority interaction target and should also get a 16px hit areaFiles to Modify
src/components/GlobeMap.ts(all branches increateMarkerElement(), lines ~730-945)Acceptance Criteria
npx tsc --noEmitpasses