Image

The Card Image — a themed product image that swaps its asset per brand theme (Diamond, Dark, Amber, Opal). Assets exported directly from the LUSTER Figma component.

Card image — Diamond theme
Figma Properties
Variant: Theme
Themes: Diamond, Dark, Amber, Opal
Size: 458 × 385px
Fit: contain
Asset: card-image-diamond.png

Component · Card Image (Themes)

One image slot, four brand themes. The asset swaps to match the active theme while keeping the same frame.

Diamond
Diamond (default)
Dark
Dark
Amber
Amber
Opal
Opal

Theme Assets

ThemeFigma Variant ValueAsset
Diamondurl('../imgs/card-image-diamond.png')/assets/card-image/diamond.png
Darkurl('../imgs/card-image-dark.png')/assets/card-image/dark.png
Amberurl('../imgs/card-image-amber.png')/assets/card-image/amber.png
Opalurl('../imgs/card-image-opal.png')/assets/card-image/opal.png

Usage Guidelines

✓ DO

Swap the asset to match the active brand theme automatically.

✓ DO

Use object-fit: contain so the product is never cropped.

✗ DON'T

Don't stretch or distort the image — keep the 458×385 ratio.

✗ DON'T

Don't ship a single theme asset — provide all four variants.

Implementation

import './CardImage.css';

type Theme = 'diamond' | 'dark' | 'amber' | 'opal';

const ASSETS: Record<Theme, string> = {
  diamond: '/imgs/card-image-diamond.png',
  dark:    '/imgs/card-image-dark.png',
  amber:   '/imgs/card-image-amber.png',
  opal:    '/imgs/card-image-opal.png',
};

export const CardImage = ({ theme = 'diamond', alt = '' }: { theme?: Theme; alt?: string }) => (
  <div className="card-image">
    <img src={ASSETS[theme]} alt={alt} />
  </div>
);