Client275 Documents

Dynamic Images

Apply this policy to every panel, site, theme, and mobile app, including shared client components and their source, public, and asset directories. No image file may exist inside these clients. Every content image must be loaded dynamically from runtime content, API data, or configuration, with its URL or media identifier supplied by that data. Never bundle, commit, copy, or generate image assets inside a client, embed static images as base64 or data URLs, or hardcode image URLs in components or styles. This includes photographs, logos, backgrounds, placeholders, and icons. When a visual element is part of the design itself, implement it as a reusable SVG component whose colors and appearance use currentColor, theme tokens, or component properties; do not store it as a static image file. Use each platform's shared image component to render dynamic content images.

Correct

<Image image={content.hero.image} />
<Image source={{ uri: content.hero.image.url }} />
<BrandMark color={theme.colors.brand} />

Incorrect

import heroImage from './assets/hero.jpg'
<Image source={require('./assets/logo.png')} />
<img src='/themes/51/assets/hero.png' />
<img src='data:image/png;base64,...' />

Fix

Store content images in the media service or external media storage, persist their URLs or media identifiers in runtime content or configuration, and render them through the shared image component. Replace bundled design visuals with reusable, themeable SVG components.