Skip to content
← Inventory

EditorialCard

Renders an editorial content card in one of several layout variants, composing imagery, title, and subtitle into a single linkable promotional tile.

Handcrafted terracotta tile

Featured collection

Handcrafted tiles

Usage

import { EditorialCard, EditorialCardContent, EditorialCardContentProps, EditorialCardImageProps, EditorialCardMedia, EditorialCardMediaProps, EditorialCardProps, EditorialCardStack, EditorialCardStackProps, EditorialCardTicker, EditorialCardTickerProps, EditorialCardVariant } from "@desk/ui/compositions/editorial-card";

Best practices

  • Match the media prop to variant: ticker/stack consume images[] (stack uses the first three), while media uses imageSrc/videoSrc — passing the wrong one renders empty media.

  • Pass renderImage (wrapping next/image) in Next.js — the default is a plain <img> and skips Next optimization; give media images a meaningful alt.

  • Set href to make the whole card a single link (it wraps in an <a>); don't nest additional links/buttons inside — use EditorialCard for promo tiles, plain Card for neutral content.

Props

EditorialCard

PropTypeDefaultDescription
altstring

Alt text for media variant

classNamestring

Optional class name

hrefstring

Optional link URL - wraps card in anchor if provided

imageSrcstring

Single image URL for media variant

imagesstring[]

Array of image URLs for ticker and stack variants

renderImage(props: EditorialCardImageProps) => ReactNode

Custom image renderer for framework-specific image components (e.g., next/image). Defaults to standard img element.

subtitlestring

Optional subtitle text (appears above title)

tickerVelocitynumber

Velocity for ticker animation (pixels per second)

title(required)string

Main title text

variant(required)EditorialCardVariant

Visual variant of the card

videoSrcstring

Video URL for media variant (takes precedence over imageSrc)

EditorialCardContent

PropTypeDefaultDescription
classNamestring
subtitlestring
title(required)string

EditorialCardMedia

PropTypeDefaultDescription
altstring

Alt text for the image

classNamestring

Optional class name for the container

imageSrcstring

Image URL

renderImage(props: EditorialCardImageProps) => ReactNode

Custom image renderer (e.g., for next/image). Defaults to standard img element.

videoSrcstring

Video URL (takes precedence over imageSrc)

EditorialCardStack

PropTypeDefaultDescription
classNamestring

Optional class name for the container

images(required)string[]

Array of image URLs (uses first 3)

renderImage(props: EditorialCardImageProps) => ReactNode

Custom image renderer (e.g., for next/image). Defaults to standard img element.

EditorialCardTicker

PropTypeDefaultDescription
classNamestring

Optional class name for the container

images(required)string[]

Array of image URLs to display in the ticker grid

renderImage(props: EditorialCardImageProps) => ReactNode

Custom image renderer (e.g., for next/image). Defaults to standard img element.

velocitynumber

Velocity for the ticker animation (pixels per second)

Also exports

  • interfaceEditorialCardContentProps
  • interfaceEditorialCardImageProps
  • interfaceEditorialCardMediaProps
  • interfaceEditorialCardProps
  • interfaceEditorialCardStackProps
  • interfaceEditorialCardTickerProps
  • typeEditorialCardVariant

Composition