feat: integrate art assets across all game panels (#43)
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 1m2s
CI / Lint, Build & Test (push) Successful in 1m6s

## Summary

- Adds `apps/web/src/utils/cdn.ts` with a `cdnImage(folder, id)` helper that builds URLs from `https://cdn.nhcarrigan.com/elysium/`
- Wires CDN art into all 13 game panels (bosses, quests, adventurers, companions, equipment, upgrades, prestige, transcendence, achievements, explorations, crafting, story, codex)
- Zone selector tabs now display 16:9 zone art thumbnails in place of emoji icons
- Adds a fixed background image at 15% opacity via `body::before`
- Documents the art generation and CDN upload process in `CLAUDE.md` for future expansions

Resolves #15

 This PR was created with help from Hikari~ 🌸

Reviewed-on: #43
Co-authored-by: Hikari <hikari@nhcarrigan.com>
Co-committed-by: Hikari <hikari@nhcarrigan.com>
This commit was merged in pull request #43.
This commit is contained in:
2026-03-09 16:21:44 -07:00
committed by Naomi Carrigan
parent 7a1c57be9a
commit 11e97325cb
17 changed files with 217 additions and 25 deletions
@@ -4,6 +4,7 @@
* @license Naomi's Public License
* @author Naomi Carrigan
*/
import { cdnImage } from "../../utils/cdn.js";
import type { Zone } from "@elysium/types";
import type { JSX } from "react";
@@ -44,7 +45,11 @@ const ZoneSelector = ({
title={zone.description}
type="button"
>
<span className="zone-emoji">{zone.emoji}</span>
<img
alt={zone.name}
className="zone-tab-image"
src={cdnImage("zones", zone.id)}
/>
<span className="zone-name">{zone.name}</span>
</button>
);