Skip to content

feat: rebuild Pokémon pages around what makes each one distinct - #29

Merged
voltcrash merged 4 commits into
mainfrom
feat/pokemon-insights
Sep 30, 2026
Merged

voltcrash merged 4 commits into
mainfrom
feat/pokemon-insights

Conversation

@voltcrash

Copy link
Copy Markdown
Owner

Pokémon pages listed the same facts as every other dex (artwork, types, a stat table) and left the interpretation to the reader. Nothing said what a Pokémon is for, how it stacks up, or what beats it.

  • Header: the artwork now sits inside its own stat shape, with the six base stats around the rim, so the header is also the stat readout. The name fills its column using Archivo's width axis: wide for Mew, condensed for Crabominable. It's sized with container units before any script runs and only shrinks on the client if a name still overflows.
  • Role: each Pokémon gets a battle role from its stat spread (physical/special/mixed sweeper, glass cannon, tank, slow hitter, attacker, physical/special wall, speedster, all-rounder), judged against its own average so unevolved Pokémon get one too. The header states the role and links to every Pokémon that shares it, and power search gains role: (role:sweeper, role:special-wall, role:physical).
  • Percentiles: the base stats table shows the share of all species each stat beats.
  • Counters: fully evolved, non-legendary Pokémon that resist every one of its same-type attacks and hit it super effectively, 4× first. Judged on types, as the section says.
  • Closest stats: the six other species with the nearest base stats, each one click from Compare. (Typhlosion turns out to have exactly Charizard's stats.)
  • Size: About draws the Pokémon at scale beside a 1.7 m person and compares its weight with everyday things, from "lighter than an apple" to "about as heavy as a small car".

Roles, percentiles, counters and look-alikes are computed on the server from the local index, so there are no extra PokéAPI calls.

Stacked on #28.

Validated with vp check, vp run check, vp test and vp build.

🤖 Generated with Claude Code

voltcrash and others added 4 commits September 28, 2026 11:28
Stat spreads are classified as sweepers, glass cannons, tanks, walls, speedsters and so on, judged against the Pokémon's own average so every stage gets a role. Searches can filter by it with role:sweeper, role:special-wall or role:physical.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The page header now draws the Pokémon's artwork inside its own stat shape, with the six base stats around the rim. The name fills its column using Archivo's width axis, wide for short names and condensed for long ones, and the header states its role with a link to every Pokémon that shares it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Base stats show the share of species each one beats. New sections list counters, fully evolved everyday Pokémon that resist all of a Pokémon's same-type attacks and hit it super effectively, and the species with the closest base stats, each a click from comparing.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
About now draws the artwork at scale next to a 1.7 m person and compares its weight with everyday things, from an apple to a small car.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
dexa Ready Ready Preview Sep 28, 2026 5:59am UTC

@voltcrash
voltcrash changed the base branch from feat/power-search to main September 30, 2026 10:13
@voltcrash
voltcrash merged commit b05c7ae into main Sep 30, 2026
3 checks passed

This branch was successfully deployed

1 active deployment
Preview — fac7c314 Deployed Sep 28, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant