Use Feature Card for entry points, integrations, and hubs.
Feature Card
Card for key destinations and integrations. Supports optional icon, subtitle, badge, metadata, and external links.
- .source-feature-card Root clickable card
- .source-feature-card-icon Optional icon container
- .source-feature-card-title Primary label
- .source-feature-card-description Supporting text
- .source-feature-card-meta Optional metadata line
States
--source-color-border-strong for stronger affordance.
.source-feature-card--source-disabled with reduced opacity and no pointer interaction.
Design intent
Feature Card is a weighted entry point, heavier than a list row and lighter than a hero section. It works in overview grids where each destination deserves a brief description and an icon anchor. The disabled state communicates unavailability without removing the item from the layout.
When to use
Use subtitle and meta for compact supporting context.
Keep each card focused on one clear target.
Do not force heavy data tables into card format.
Avoid narrative blocks that turn cards into mini pages.
Do not set external unless the destination is truly outside the app.
Layout variants
Feature Card can be used in dense overview grids and in single-column resource blocks. Keep one card focused on one destination or one integration.
Designer checklist
- Disabled cards explain unavailability in the subtitle or meta area.
- External links are visually marked and the card communicates the destination type.
- Icon is decorative or has a text equivalent nearby. Critical meaning is not icon-only.
Props
target="_blank" and external icon when href is set.
Usage
import '@pierredelattre/source-tokens';
import '@pierredelattre/source-react/styles';
import { FeatureCard } from '@pierredelattre/source-react';
import { GitHubLogoIcon } from '@radix-ui/react-icons';
function Demo() {
return (
<FeatureCard
href="https://github.com/pierredelattre/source-design-system"
title="GitHub"
subtitle="@pierredelattre/source-react"
description="Source code, issues, and releases."
meta="github.com/pierredelattre/source-design-system"
icon={<GitHubLogoIcon width={16} height={16} />}
palette="accent"
external
/>
);
}
Component tokens
Tokens are defined on .source-feature-card. Override on a parent selector for local variants.
.resource-list .source-feature-card {
--source-feature-card-border-color-hover: var(--source-color-info);
--source-feature-card-title-color: var(--source-color-text);
}
Semantics
<a> only when href is provided and disabled is false.
external is true, the link gets target="_blank" and rel="noopener noreferrer".
aria-hidden="true".
aria-disabled="true" on the root element.