Viewing File: /usr/local/cpanel/whostmgr/docroot/images/announcements/README.md
# Announcement assets
These are installed to `whostmgr/docroot/images/announcements/` and referenced
by filename from the announcement config (`header.background_image`,
`header.logo`, `banner.icon`, and each item's `image`).
Most of the current images were **extracted from the PUI-2268 design prototype**
(`cPanel_AI.html` bundle) and mapped to each card:
| file | card / use |
|------|------------|
| `ai-assistant.jpg` | AI Assistant |
| `nodejs.jpg` | Node.js |
| `mcp-connectivity.jpg` | MCP Connectivity |
| `nova-agentic-builder.jpg` | Nova, Agentic Builder |
| `nova-for-wordpress.jpg` | Nova for WordPress |
| `meridian.jpg` | Meridian |
| `sitejet-ai.jpg` | Sitejet AI Website Generator |
| `header-bg.jpg` | header hero background (flattened from the hero background PNG) |
| `cpanel-ai-logo.svg` | modal `header.logo` (white wordmark, `filter: brightness(0) invert(1)`) |
| `hero.webp` | animated hero, played as an `<img>` over `header-bg.jpg` (the original 7 MB MP4 didn't play over cpsrvd — moov-at-end + no byte-range support) |
One asset came from a **different** prototype: `cp-icon.svg` (solid-orange
"cP" glyph, `fill="#de5c2e"`, the `--cp-accent` token) is the banner's
`banner.icon`, extracted from the PUI-2478 banner prototype
(`/root/WHM-cPanel_AI_advert_and_notifications.html`), not PUI-2268. It's
deliberately distinct from `cpanel-ai-logo.svg` — that wordmark is the
modal's `<h1>` title-replacement art and isn't the right shape for a small
44x44 banner icon (see `whm/announcements/docs/architecture.md`'s "Banner content and
files" section for how it was extracted).
The design is still WIP on PUI-2268; replace these with the frozen export when available
(keep the same filenames, or update the config to match).
**Header animation must be an `<img>`-compatible format (animated WebP, as shipped, or
similar) referenced via `header.background_animation`.** There is no `<video>` codepath --
an MP4 hero video was tried and dropped because it requires HTTP byte-range requests, which
cpsrvd does not serve.
The prototype bundle also contains self-hosted fonts (Open Sans + Remix Icon, woff2), which
are not wired in yet — the component uses an "Open Sans" system font stack. Add them here
and reference from the component SCSS if a closer pixel-match is needed.
Back to Directory