Skip to content

Cards

Responsive link-card grid and single cards with optional icons.

card() builds a single card; cards() wraps any number of them in the Plumest-style responsive grid.

cards([
{ title: 'Markdown authoring', description: 'Write docs in plain Markdown.', href: '/guides/example/', icon: 'lucide:file-text' },
{ title: 'Component gallery', description: 'Every kit builder, live.', href: '/contribution/components/', icon: 'lucide:zap' },
{ title: 'Design tokens', description: 'The single source of truth.', href: '/contribution/styles/', icon: 'lucide:palette' },
]);
Card without icon

Plain card

No icon, no link — a bare block.

Extra HTML content inside.

card({ title: 'Getting started', description: 'A card that links somewhere.', href: '/guides/example/', icon: 'lucide:arrow-right' });
card({ title: 'Plain card', description: 'No icon, no link — a bare block.', children: '<p>Extra HTML content inside.</p>' });
card({ title: 'Plumest', description: 'External links open in a new tab.', href: 'https://github.com/CelPlume/CelestPlume', external: true, icon: 'lucide:external-link' });
OptionTypeDefaultDescription
titlestringCard title (required).
descriptionstring''Supporting text.
hrefstring''Target URL — with it the card renders as an <a>.
externalbooleanfalseOpens the link in a new tab.
iconstring''Iconify name (e.g. lucide:zap) or raw SVG.
childrenstring''Extra HTML below the description.
  • Icons resolve via the project’s local @iconify-json sets — never fetched from the Iconify API at runtime.
  • cards() accepts an array of CardOptions or a single pre-built HTML string.