npx shadcn@latest add https://sdk-components.thesqd.com/r/streak-badge.jsonimport { StreakBadge } from "@/components/ui/streak-badge";import { StreakBadge } from "@/components/ui/streak-badge"
export function Example() {
return <StreakBadge length={7} frequency="daily" size="sm" />
}<StreakBadge
length={7} // the run
frequency="daily" // daily | weekly | monthly | yearly — the unit
size="sm" // xs (one-line pill) | sm | default | lg
tone="default" // default | coral
subtitle="streak" // the line under the count
icon={<FireIcon />} // replaces the flame
/>
┌──────────┐
│ 🔥 │ icon (Phosphor FireIcon, duotone, text-primary)
│ 7 days │ length + unit (pluralised)
│ streak │ subtitle
└──────────┘| Prop | Type | Default | Description |
|---|---|---|---|
length | number | 0 | Streak length value. |
frequency | "daily" | "weekly" | "monthly" | "yearly" | "daily" | What one step of the streak is; drives the unit label (day, week, month, year). |
size | "xs" | "sm" | "default" | "lg" | "default" | Badge size. `xs` is a one-line pill (flame, count, short unit) with no subtitle line. |
tone | "default" | "coral" | "default" | Colour. `coral` tints the border, fill, flame and count. |
subtitle | string | "streak" | The line under the count. |
icon | ReactNode | — | Custom icon to replace the flame. |
className | string | — | Class names forwarded to the badge. |