ArticleCard

A blog post as a linked card: cover, tags, title, meta.

<ArticleCard.Root href="/blog/my-article">
	<ArticleCard.Frame>
		<ArticleCard.Image src={cover} alt="Cover" />
		<ArticleCard.Content>
			<ArticleCard.Tags>
				<ArticleTags.Tag>Hiring</ArticleTags.Tag>
			</ArticleCard.Tags>
			<ArticleCard.Title>Why brief your freelancer…</ArticleCard.Title>
			<ArticleCard.Description>Every kickoff…</ArticleCard.Description>
			<ArticleCard.Meta>
				<ArticleCard.MetaItems>
					<ArticleCard.MetaItem><CalendarBlankIcon />July 12, 2026</ArticleCard.MetaItem>
				</ArticleCard.MetaItems>
				<ArticleCard.Arrow />
			</ArticleCard.Meta>
		</ArticleCard.Content>
	</ArticleCard.Frame>
</ArticleCard.Root>

Root is the link, so nothing inside it should be one. Posts with no cover use ArticleCard.ImageFallback, which keeps the card the same height as its neighbours in a grid.

API

ArticleCard.Root

PropTypeDefault
renderComponentRenderFn<HTMLProps, {}> | ReactElement<unknown, string | JSXElementConstructor<any>>Allows you to replace the component's HTML element with a different tag, or compose it with another component. Accepts a ReactElement or a function that returns the element to render.

Plus every <a> prop. Source: landing/components/article-card/root.tsx.

ArticleCard.Arrow

PropTypeDefault
altstring
colorstring
mirroredboolean
sizestring | number
weightIconWeight

Plus the DOM props of the element it renders. Source: landing/components/article-card/arrow.tsx.

The five undescribed props on this part are Phosphor's own, shared by every icon in the kit and not annotatable from here — see Icon, which covers what they do.

ArticleCard.Content

Plus every <div> prop. Source: landing/components/article-card/content.tsx.

ArticleCard.Description

Plus every <p> prop. Source: landing/components/article-card/description.tsx.

ArticleCard.Frame

Plus every <article> prop. Source: landing/components/article-card/frame.tsx.

ArticleCard.Image

PropTypeDefault
altstringrequiredRequired, not optional: a card image carries the article's subject.

Plus every <img> prop. Source: landing/components/article-card/image.tsx.

ArticleCard.ImageFallback

Plus every <div> prop. Source: landing/components/article-card/image-fallback.tsx.

ArticleCard.Meta

Plus every <div> prop. Source: landing/components/article-card/meta.tsx.

ArticleCard.MetaItem

Plus every <span> prop. Source: landing/components/article-card/meta-item.tsx.

ArticleCard.MetaItems

Plus every <div> prop. Source: landing/components/article-card/meta-items.tsx.

ArticleCard.Tags

Plus every <div> prop. Source: landing/components/article-card/tags.tsx.

ArticleCard.Title

PropTypeDefault
renderComponentRenderFn<HTMLProps, {}> | ReactElement<unknown, string | JSXElementConstructor<any>>Allows you to replace the component's HTML element with a different tag, or compose it with another component. Accepts a ReactElement or a function that returns the element to render.

Plus every <h3> prop. Source: landing/components/article-card/title.tsx.