pallet

A Pokémon route-map style navigation component for React. A trail of circular nodes connected by a dotted line, each showing a pixel-art sprite for a page or section.

1 — Pick a slot

Style

accent
ring
trail
axis

2 — Choose a sprite for Home

898 of 898 sprites

3 — Copy your config

{
  "position": "left",
  "orientation": "vertical",
  "items": [
    {
      "label": "Home",
      "href": "/",
      "pokemonId": 133
    },
    {
      "label": "Work",
      "href": "/work",
      "pokemonId": 81
    },
    {
      "label": "Writing",
      "href": "/writing",
      "pokemonId": 137
    },
    {
      "label": "Contact",
      "href": "/contact",
      "pokemonId": 185
    }
  ],
  "theme": {
    "accentColor": "#f97316",
    "ringStyle": "solid",
    "trailPath": "wavy",
    "dotStyle": "dotted"
  }
}

Variants

Everything below is the same component under different theme settings. Click a node to change the active route. Every color comes from one accent value.

accentColor

Trail path

straight

wavy

wavy + pokeball

wavy + position: right

Horizontal orientation

Labels sit below the node so the trail never runs through them. positionstays independent — it controls which end the trail packs to.

horizontal + straight

horizontal + wavy

horizontal + pokeball + position: right

Scroll-linked trail fill

Scroll the page — the trail fills continuously in accentColor, and the highlight travels to whichever node the fill has reached. Progress is 0.00, supplied by useScrollProgress(), not read inside the component.

straight

wavy

horizontal + wavy

Custom sprites, no Pokémon

Every item takes a spriteUrl, so the component works with entirely your own artwork and never touches the bundled catalogue.