s-m-r-t

SummaryCard

Compact info card for dashboards and metrics. Shows a label with a prominent value, optionally with count badge, icon, and link functionality.

Installation

typescript
import { SummaryCard } from '@happyvertical/smrt-svelte';

Basic Usage

Simple metric display with label and value.

Total Users 1,234
svelte
<SummaryCard label="Total Users" value="1,234" />

With Icon

Add an icon for visual context.

Revenue $45,678
Orders 567
svelte
<SummaryCard label="Revenue" value="$45,678" icon="dollar-sign" />
<SummaryCard label="Orders" value="567" icon="shopping-cart" />

With Count Badge

Show a count badge next to the label.

Pending Tasks 3 12
svelte
<SummaryCard label="Pending Tasks" value="12" count={3} />

Clickable Card

Add href to make the card a clickable link.

svelte
<SummaryCard
  label="Active Projects"
  value="8"
  href="/projects"
/>

Highlighted

Use highlight for important metrics.

Today's Sales $12,345
svelte
<SummaryCard label="Today's Sales" value="$12,345" highlight />

Color Variants

Use variants for semantic meaning.

Success Rate 98.5%
Warnings 12
Errors 3
svelte
<SummaryCard label="Success Rate" value="98.5%" variant="success" />
<SummaryCard label="Warnings" value="12" variant="warning" />
<SummaryCard label="Errors" value="3" variant="danger" />

Dashboard Example

Multiple cards in a grid layout.

svelte
<Grid columns={2}>
  <SummaryCard label="Users" value="1,234" icon="users" href="/users" />
  <SummaryCard label="Revenue" value="$45,678" icon="dollar-sign" href="/revenue" />
  <SummaryCard label="Orders" value="567" icon="shopping-cart" href="/orders" />
  <SummaryCard label="Conversion" value="3.2%" icon="trending-up" variant="success" />
</Grid>

Props

PropTypeDefaultDescription
label *string-Card label text
value *string | number-Primary value to display
count number-Optional count badge
highlight booleanfalseUse highlighted style
href string-Make card clickable with link
icon string-Icon name or SVG string
variant 'default' | 'success' | 'warning' | 'danger''default'Value color variant

TypeScript

typescript
import { SummaryCard } from '@happyvertical/smrt-svelte';

interface Props {
  label: string;
  value: string | number;
  count?: number;
  highlight?: boolean;
  href?: string;
  icon?: string;
  variant?: 'default' | 'success' | 'warning' | 'danger';
}