Content Feature Media
Install a typed Payload CMS feature-media block with body copy, two icon features, and a framed image. The CLI wires it into your Pages layout and renderer.
Installation
npx payload-components add content-feature-mediaWhat it installs
Copies 4 source files into your project:
src/blocks/shared/contentFields.tssharedsrc/blocks/shared/contentIcons.tssrc/blocks/ContentFeatureMedia/config.tssrc/blocks/ContentFeatureMedia/Component.tsx
…and makes 4 edits to wire the block into your project:
| Registers the block | src/collections/Pages/index.ts |
| Maps the renderer | src/blocks/RenderBlocks.tsx |
| Regenerates types | src/payload-types.ts |
| Regenerates the admin import map | src/app/(payload)/admin/importMap.js |
src/collections/Pages/index.tssrc/blocks/RenderBlocks.tsxsrc/payload-types.tssrc/app/(payload)/admin/importMap.jscontentFields.ts is the shared field core for this family — every variant composes it. Editing it updates each installed block at once, and re-running an install never overwrites a copy you have changed.Re-running the install converges: it detects existing wiring, skips it, and records install state in .payload-components/state.json.
Content model
The eyebrow, title, and paragraphs fields come from the shared Content family base
(src/blocks/shared/contentFields.ts); the features list and image upload are specific to this
variant. Feature icons are chosen from the shared allowlist in src/blocks/shared/contentIcons.ts.
Prop
Type
Each item in features carries:
Prop
Type
Usage
ContentFeatureMedia block to its layout.RenderBlocks on the frontend, fully typed — no extra wiring.Requirements
- Target
- payload-website-starter
- Payload
- v3
- Next.js
- 15 / 16
- shadcn UI
- badge
Your project must already expose components.json, src/payload.config.ts, src/blocks/RenderBlocks.tsx, src/collections/Pages/index.ts — the surfaces payload-components add patches. The CLI verifies this against the support matrix before touching anything.
In this family
content-showcasecontent-image-leadcontent-feature-splitcontent-feature-mediacurrentcontent-image-framecontent-split-rowscontent-rowscontent-statscontent-quotecontent-communitycontent-columnscontent-listcontent-list-columnscontent-list-icons