Add placeholder shop previews for Starlit Night and Mystic Forest.

Simple SVG thumbnails at /shop/room-night.svg and /shop/room-forest.svg.
This commit is contained in:
2026-05-24 04:42:35 -06:00
parent f5ce631dea
commit 4df8ea8d66
7 changed files with 54 additions and 7 deletions

View File

@@ -70,9 +70,18 @@ function ShopItemCard({
<Card className="flex h-full flex-col overflow-hidden">
<CardContent className="flex h-full flex-col gap-3 p-3">
<div className="flex min-w-0 items-start gap-3">
<div className="flex size-12 shrink-0 items-center justify-center border-2 border-border bg-zinc-950/80 p-1">
<div className="flex size-12 shrink-0 items-center justify-center overflow-hidden border-2 border-border bg-zinc-950/80 p-1">
{room ? (
<div className={cn("size-full", room.previewClassName)} />
item.image_path ? (
// eslint-disable-next-line @next/next/no-img-element
<img
src={item.image_path}
alt=""
className="size-full object-cover"
/>
) : (
<div className={cn("size-full", room.previewClassName)} />
)
) : (
<TintedSpriteIcon
src={item.image_path}

View File

@@ -236,7 +236,7 @@ export function getShopRoomBackgrounds() {
price: room.id === "room-night" ? 40 : 50,
image_path: "",
image_path: room.id === "room-night" ? "/shop/room-night.svg" : "/shop/room-forest.svg",
}));

View File

@@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48" height="48">
<defs>
<linearGradient id="forest-sky" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#064e3b"/>
<stop offset="50%" stop-color="#14532d"/>
<stop offset="100%" stop-color="#052e16"/>
</linearGradient>
</defs>
<rect width="48" height="48" fill="url(#forest-sky)"/>
<rect x="0" y="34" width="48" height="14" fill="#166534"/>
<rect x="6" y="18" width="8" height="20" fill="#14532d"/>
<rect x="20" y="14" width="10" height="24" fill="#15803d"/>
<rect x="34" y="20" width="8" height="18" fill="#14532d"/>
</svg>

After

Width:  |  Height:  |  Size: 642 B

View File

@@ -0,0 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48" height="48">
<defs>
<linearGradient id="night-sky" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#1e1b4b"/>
<stop offset="55%" stop-color="#4c1d95"/>
<stop offset="100%" stop-color="#0f172a"/>
</linearGradient>
</defs>
<rect width="48" height="48" fill="url(#night-sky)"/>
<circle cx="10" cy="12" r="1" fill="#fef9c3"/>
<circle cx="22" cy="8" r="1" fill="#fef9c3"/>
<circle cx="34" cy="14" r="1" fill="#fef9c3"/>
<circle cx="38" cy="10" r="1.5" fill="#fef08a"/>
<circle cx="36" cy="11" r="4" fill="#fef9c3" opacity="0.9"/>
</svg>

After

Width:  |  Height:  |  Size: 656 B

View File

@@ -33,8 +33,8 @@ values
('head-5', 'Head 5', 'head', 50, '/character/head/head-5.png'),
('head-6', 'Head 6', 'head', 55, '/character/head/head-6.png'),
('head-7', 'Head 7', 'head', 60, '/character/head/head-7.png'),
('room-night', 'Starlit Night', 'room', 40, ''),
('room-forest', 'Mystic Forest', 'room', 50, '')
('room-night', 'Starlit Night', 'room', 40, '/shop/room-night.svg'),
('room-forest', 'Mystic Forest', 'room', 50, '/shop/room-forest.svg')
on conflict (id) do update
set
name = excluded.name,

View File

@@ -0,0 +1,9 @@
-- Placeholder shop preview images for paid room backgrounds.
update public.shop_items
set image_path = '/shop/room-night.svg'
where id = 'room-night';
update public.shop_items
set image_path = '/shop/room-forest.svg'
where id = 'room-forest';

View File

@@ -33,8 +33,8 @@ values
('head-5', 'Head 5', 'head', 50, '/character/head/head-5.png'),
('head-6', 'Head 6', 'head', 55, '/character/head/head-6.png'),
('head-7', 'Head 7', 'head', 60, '/character/head/head-7.png'),
('room-night', 'Starlit Night', 'room', 40, ''),
('room-forest', 'Mystic Forest', 'room', 50, '')
('room-night', 'Starlit Night', 'room', 40, '/shop/room-night.svg'),
('room-forest', 'Mystic Forest', 'room', 50, '/shop/room-forest.svg')
on conflict (id) do update
set
name = excluded.name,