Back to projects

AtlasKit

An interactive SVG world map for React.

Role
Creator
Type
Solo
Year
2025
Status
Open source
Category
Languages and Libraries
Main stack
React, TypeScript +1

Overview

AtlasKit is an npm package that drops an interactive world map into any React app. It ships as @justphemi/atlas-kit with full TypeScript types, 154 countries you can reference by ISO code or by name, and no map tile servers: the map is pure SVG, around 180KB and tree shakeable.

You can fill the map with a flat colour, a static gradient or a smoothly animated gradient. Markers can pulse, bounce or fade in, carry their own colours and data, and show tooltips with a custom renderer. Click and hover callbacks make it easy to build things like a sidebar for the selected country.

It is accessible out of the box, with ARIA roles, labels and keyboard support, and it builds to both ESM and CommonJS. The playground below runs the real published package, so what you tweak is exactly what you would get from npm install.

Highlights

  • •154 countries by ISO code or full name.
  • •Flat, linear and animated SVG gradient fills.
  • •Pulse, bounce and fade in marker animations, set globally or per marker.
  • •Tooltips with a custom renderer, plus click and hover events.
  • •ARIA roles and keyboard support, with ESM, CJS and TypeScript types.

Try it

AtlasKit playgroundInteractive world map with markers

Fill

Marker animation

Markers

NigeriaUnited StatesJapanBrazil

Click a marker on the map to see the click event.

Your code

<AtlasKit
  markers={[
    { country: "NG", size: 6 },
    { country: "US", size: 6 },
    { country: "JP", size: 6 },
    { country: "BR", size: 6 },
  ]}
  mapStyle={{ fill: { type: "animated", colors: ["#1e1b4b","#312e81","#4338ca","#312e81"], animationDuration: 9 }, }}
  defaultAnimation={{ type: "pulse" }}
  showTooltip={true}
/>

Built with

  • React
  • TypeScript
  • Vite

More in Languages and Libraries