Everything on one page, live — the same build you would install. Each example carries the exact markup that produces it, so you can copy a card and get that picture.
Drag it. The labels are ordinary anchors in your markup — mappo positions them every frame and publishes how far each has turned away, so they fade and hide at the horizon with plain CSS.
<mappo-world mode="globe" rotate-speed="6"
tilt="18" roll="-14.3"
figure="solid outline" figure-source="vector"
graticule meridians="24" parallels="11">
<a data-lat="38.7" data-lon="-9.1"><span>Lisbon</span></a>
<a data-lat="35.7" data-lon="139.7"><span>Tokyo</span></a>
</mappo-world>
.pin > span { opacity: calc(.28 + .72*var(--mappo-depth,1)) }
.pin[data-mappo-behind] { visibility: hidden }
mappo/linksfigure is a space-separated token list, so
combinations read the way you say them. The same names mean the same thing on the flat map and the globe.
Attributes are live — the buttons above just set them, and the map re-renders.
One caveat, stated plainly: on the GLOBE a filled figure style draws from the 512×256 mask, not the vector outlines — clipping a vector polygon to the visible hemisphere needs an algorithm mappo does not have yet, and every shortcut for it was measured painting open ocean. Fill and coast therefore both come from the grid there, where they agree by construction. figure="outline" with figure-source="vector" is exact on the globe, and the flat map is exact in every combination.
body "earth" (default) | any registered body ("moon", "mars", yours)
figure "dots" | "solid" | "outline" | "solid outline"
figure-source "grid" (traced from the body) | "vector" (the body's outlines)
figure-color the figure: dots, or the fill
figure-stroke the edge → falls back to figure-color
figure-stroke-width
ground-color everything that is not figure, as filler dots
borders region boundaries (Earth: countries)
borders-color / borders-width / borders-opacity
places gazetteer names of the body · markers "Name@lat,lon"
highlight-polygon / highlight-color
mode "flat" | "globe"
tilt axial tilt, degrees (23.44 = Earth)
roll lean in the screen plane, degrees
rotate-speed deg/sec · drag to spin, flick for momentum
graticule meridians / parallels
graticule-color / equator-color
graticule-opacity / equator-opacity
cols grid resolution · lat-min / lat-max framing
overlays position data-lat/data-lon children
animation wave | noise | ripple | sweep | sparkle
max-dpr cap the globe backing store (default 2)
Colours accept var(--x) and re-resolve when your theme changes — the toggle at the
top of this page repaints every map above without a line of JavaScript.
Full-screen versions: orbit · land styles ·
graticule & overlays · roll & tilt ·
Moon & Mars · performance ·
landing page.