Context
The 14 achievement trophies (lib/achievements.ts) currently render as flat SVG icons from
public/trophies/: acute-burnout, bug-catcher, crowd-favorite, engine-room,
golden-boot-repo, golden-boot-season, loan-spell, open-source-hero, playmaker, polyglot, risky-deploy,
system-architect, veteran, world-cup-player.
This is already a zero-code-change task. lib/trophyAssets.ts's
resolveTrophyIconSrc(id) already prefers a public/trophies/{id}.png over the bundled .svg when one exists:
export function resolveTrophyIconSrc(id: string): string {
if (fs.existsSync(path.join(TROPHIES_DIR, `${id}.png`))) {
return `/trophies/${id}.png`;
}
return `/trophies/${id}.svg`;
}
So this issue is: generate/design a realistic (or at least higher-fidelity) PNG for each trophy id, matching its
name/theme, and drop it into public/trophies/{id}.png. No .ts/.tsx file needs to change.
Acceptance criteria
Notes
Style is your call — "realistic" per the original ask could mean 3D-rendered, painterly, or a more detailed illustration style than the current flat icon set; the only hard requirement is that it reads clearly at the sizes above and fits the existing dark/green Transfergit palette (see app/globals.css for the design tokens) well enough not to clash.
Context
The 14 achievement trophies (
lib/achievements.ts) currently render as flat SVG icons frompublic/trophies/:acute-burnout,bug-catcher,crowd-favorite,engine-room,golden-boot-repo,golden-boot-season,loan-spell,open-source-hero,playmaker,polyglot,risky-deploy,system-architect,veteran,world-cup-player.This is already a zero-code-change task.
lib/trophyAssets.ts'sresolveTrophyIconSrc(id)already prefers apublic/trophies/{id}.pngover the bundled.svgwhen one exists:So this issue is: generate/design a realistic (or at least higher-fidelity) PNG for each trophy id, matching its
name/theme, and drop it into
public/trophies/{id}.png. No.ts/.tsxfile needs to change.Acceptance criteria
.pngexists inpublic/trophies/for as many of the 14 ids as you tackle (partial PRs — a subset of trophies — are fine, they don't need to land all at once).lib/achievements.tsfor what each one means before designing it).components/TrophyCabinet.tsxandcomponents/TrophyIcon.tsxfor the actual render sizes) — a busy, detailed image can turn to mush at 32px.Notes
Style is your call — "realistic" per the original ask could mean 3D-rendered, painterly, or a more detailed illustration style than the current flat icon set; the only hard requirement is that it reads clearly at the sizes above and fits the existing dark/green Transfergit palette (see
app/globals.cssfor the design tokens) well enough not to clash.