KQ-595 · STATEMENT/FOLD

Statement Fold

A month's statement folded in three: pressing the header unfolds income, spend and net, each rotating from -90 degrees about its own top edge on glide in a cascade, so the letter opens from the top down instead of all at once. Folding back reverses the order on the exit ease, and the card's height comes from a ResizeObserver on the open content rather than a reserved minimum. Each panel's bar draws with scaleX against the largest of the three figures, the net colours by sign and never bounces, and the header is a real aria-expanded button that Enter, Space and Escape drive.

KQ-595 · STATEMENT/FOLD
Income
+$6,480.00
Spend
-$5,195.80
Net
+$1,284.20

August · open · net +$1,284.20

Install

One command — the source lands in your repo. Or copy it from the Code tab.

$ pnpm dlx shadcn@latest add @kinetiq/statement-fold

Props

month
string
default
The statement's month, as printed.
year
string | number
default
Optional year beside the month.
accountName
string
default
The account the statement belongs to, printed under the month.
income
number
default
Money in, major units.
spend
number
default
Money out, positive major units.
net
number
default income - spend
Overrides the computed net when the host has its own figure.
open / defaultOpen
boolean
default false
Controlled or initial fold state.
onOpenChange
(open: boolean) => void
default
Fires from the press or the Escape that changed it.
format
(value: number) => string
default Intl.NumberFormat("en-US", { style: "currency", currency: "USD" })
Formats an unsigned amount; the card composes the signs itself.