Skip to content
Components

All 179 components.

Every component is specified before it is written, and the spec ships with it. A card here is not a card with a currency symbol — it is a surface that already knows what a balance is, which period it belongs to, and what to render when the value is unknown.
Components
179
Implemented
125
Families
13
Registry
@lopifi

Step 1 — once

Point components.json at the registry.

{ "registries": { "@lopifi": "https://lopifi.com/r/{name}.json" } }

Step 2 — per component

Install by name. Source and all, into your repository.

npx shadcn@latest add @lopifi/theme
npx shadcn@latest add @lopifi/balance-card

Agents can skip the file entirely and connect to the MCP server, which serves the same 179 entries with their source.

Design layer

Primitives, surfaces, tables, charts. The parts a generic UI kit also claims to have — built here around money that can be negative, null, or in a currency with three decimal places.

1Primitives

15 of 15 builtFamily spec

The layer everything else composes. Build these first; nothing above them is right until they are.

RowComponentWhat it doesPreview
1MoneymoneyThe core primitive. A monetary value, formatted correctly.
2DeltadeltaA signed change, with polarity and a redundant non-color cue.
3FigurefigureA large display numeral with automatic size step-down.
4PercentpercentPercent vs. percentage points, explicitly discriminated.
5RuleruleSingle / double / section accounting rule lines.
6StatusPillstatus-pillPayment and reconciliation states.
7SparklinesparklineInline trend, one-shot draw.
8TrendtrendArrow + delta + optional sparkline, composed.
9AsOfas-ofTimestamp with live relative formatting and a stated timezone.
10RedactedredactedMasked value with reveal.
11ReferencereferenceCopyable transaction/account ID with disambiguated glyphs.
12CurrencyBadgecurrency-badgeISO code + optional flag.
13EntityMarkentity-markBank/merchant logo with the full fallback ladder.
14TooltiptooltipHover/focus restatement. Never the only home of a fact.
15InfoTipinfo-tipThe ⓘ. Extra context that survives touch, because it opens on press.
15 components15 built · 0 specified

2Cards

9 of 10 builtFamily spec
RowComponentWhat it doesPreview
1BalanceCardbalance-cardThe hero: one trusted number.
2KpiCardkpi-cardMetric + delta + optional sparkline.
3AccountCardaccount-cardBank account with available vs. current.
4PaymentMethodCardpayment-method-cardThe physical card object. 3D flip, pointer tilt.
5RunwayCardrunway-cardMonths of runway with a burn line.
6InvoiceCardinvoice-cardInvoice summary with aging state.
7SubscriptionCardsubscription-cardRecurring charge with next-billing.
8AnomalyCardanomaly-cardA flagged deviation with its explanation.
9GoalCardgoal-cardTarget vs. actual with a progress rule.
10StatCardstat-cardThe minimal label+value card.
Not built yet
10 components9 built · 1 specified

3Payments

14 of 14 builtFamily spec
RowComponentWhat it doesPreview
1AmountInputamount-inputThe hardest input in fintech.
2CurrencySelectcurrency-selectSearchable, with recents.
3PayeeSelectpayee-selectRecipient picker with fuzzy search and last-paid.
4PaymentFormpayment-formAmount → payee → method → date → memo.
5PaymentMethodListpayment-method-listSelectable method cards.
6CheckoutSummarycheckout-summaryItemized total with fees and tax.
7ConfirmPaymentDialogconfirm-payment-dialogAmount, destination, timing. Hold-to-confirm.
8PaymentStatusTimelinepayment-status-timelineSubmitted → sent → settled, with real timestamps.
9PaymentSuccesspayment-successThe sanctioned delight moment.
10ReceiptSheetreceipt-sheetPrintable/shareable receipt.
11PayoutSchedulepayout-scheduleUpcoming payouts calendar.
12CardInputcard-inputPAN / expiry / CVC with correct autocomplete.
13BankAccountInputbank-account-inputRouting + account with checksum validation.
14RecurringSchedulerecurring-scheduleFrequency, end condition, preview of next 3.
14 components14 built · 0 specified

4Swaps & FX

9 of 9 builtFamily spec
RowComponentWhat it doesPreview
1SwapWidgetswap-widgetFrom/to with the flip. The signature component.
2RateLinerate-lineA rate with its timestamp. Never one without the other.
3RateLockrate-lockLocked rate with a countdown and expiry behavior.
4ConversionBreakdownconversion-breakdownAmount → fee → rate → recipient gets. Every line.
5CurrencyPairChartcurrency-pair-chartRate history with a period selector.
6RateTickerrate-tickerLive multi-pair ticker with value flash.
7SlippageControlslippage-controlTolerance setting with an explicit worst case.
8SwapRouteswap-routeMulti-hop path visualization.
9FxExposurefx-exposurePosition by currency with unrealized gain/loss.
9 components9 built · 0 specified

5Ledger & tables

15 of 16 builtFamily spec
RowComponentWhat it doesPreview
1TransactionTabletransaction-tableThe workhorse. Virtualized, sticky, priority-collapsing.
2TransactionRowtransaction-rowDesktop row.
Not built yet
3TransactionCardtransaction-cardThe mobile re-rank.
4TransactionDetailtransaction-detailFull detail sheet with attachments and audit trail.
5LedgerTableledger-tableDouble-entry with debit/credit columns and a balance check.
6AgingTableaging-tableAR/AP buckets, 0-30-60-90+.
7ReconciliationViewreconciliation-viewTwo-pane matcher. The match animation.
8CategoryPickercategory-pickerHierarchical with rule creation.
9FilterBarfilter-barURL-param-backed filters with resolved-value chips.
10BulkActionBarbulk-action-barSelection count + actions, safe-area aware.
11ColumnManagercolumn-managerShow/hide/reorder with drag.
12GroupPickergroup-pickerOne cut through a table, with subtotals per group.
Not built yet
13ExportMenuexport-menuCSV/XLSX/PDF with a stated scope.
14TableColumnstable-columnsSort and resize for a table that renders on the server.
15ColumnHeadercolumn-headerThe sortable, draggable header cell.
16PeriodGridperiod-gridThe ruled grid. Frozen panes, hidden columns, hover change, ⌘C.
Not built yet
16 components15 built · 1 specified

6Statements

12 of 12 builtFamily spec

**The largest gap in the market.** Nothing else has these.

RowComponentWhat it doesPreview
1StatementTablestatement-tableThe shared shell: hierarchy, periods, rules.
2StatementRowstatement-rowIndent level, subtotal, total, expand.
3ProfitAndLossprofit-and-lossP&L with period comparison and variance.
4BalanceSheetbalance-sheetAssets / liabilities / equity, with the balance check.
5CashFlowStatementcash-flow-statementOperating / investing / financing.
6StatementToolbarstatement-toolbarBasis, period, comparison, currency, consolidation.
7PeriodPickerperiod-pickerFiscal-aware. Never assumes January.
8VarianceCellvariance-cellAbsolute + percent + significance flag.
9FluxAnalysisflux-analysisPeriod-over-period explanations.
10DrilldownSheetdrilldown-sheetStatement line → the GL entries behind it.
11TrialBalancetrial-balanceAll accounts with the debit=credit proof.
12CloseChecklistclose-checklistTasks, owners, blockers, sign-off.
12 components12 built · 0 specified

7Dashboard & charts

7 of 11 builtFamily spec
RowComponentWhat it doesPreview
1DashboardShelldashboard-shellResponsive grid with optional rearrange.
2KpiRowkpi-row2–4 KPI cards with aligned baselines.
Not built yet
3MoneyChartmoney-chartLine/area with a money axis and negative-aware baseline.
4MoneyBarChartmoney-bar-chartGrouped/stacked, zero-baseline origin, hatched negatives.
5WaterfallChartwaterfall-chartThe P&L bridge. Essential and rare.
6CategoryBreakdowncategory-breakdownRanked bars, not a pie.
7CashCalendarcash-calendarDaily heatmap of cash movement.
8CandlestickChartcandlestick-chartFor FX/crypto pairs.
9ChartLegendchart-legendInteractive, keyboard-navigable.
Not built yet
10ChartTooltipchart-tooltipTouch-persistent readout.
Not built yet
11DataTableToggledata-table-toggleEvery chart's accessible table equivalent.
Not built yet
11 components7 built · 4 specified

8System & states

9 of 9 builtFamily spec

---

RowComponentWhat it doesPreview
1EmptyStateempty-stateThree variants. Always one next action.
2ErrorStateerror-stateWith the financial reassurance sentence.
3SkeletonskeletonStructural, per-component.
4StaleIndicatorstale-indicatorLast-synced + retry.
5ToasttoastSonner, configured to our tokens.
6CommandPalettecommand-paletteMotionless. Money-aware search.
7SheetsheetVaul, configured. The mobile primary overlay.
8HoldToConfirmhold-to-confirmIrreversible actions, with accessible fallbacks.
9DensityToggledensity-togglePersisted, synced, phone-clamped.
9 components9 built · 0 specified

Domain layer

The general ledger, receivables, payables, the close, controls, consolidation and metrics. This is where the system stops being a component kit and starts being accounting software.

9Accounting core (GL)

18 of 18 builtFamily spec
RowComponentWhat it doesPreview
1JournalEntryjournal-entryDebit and credit as two columns. No signed-column variant.
2JournalEntryFormjournal-entry-formLine grid with live balance check and dimension capture.
3JournalEntryTablejournal-entry-tableAll entries, with the gapless-numbering check.
4AccountPickeraccount-pickerShows the normal balance. Blocks non-postable accounts.
5ChartOfAccountschart-of-accountsHierarchy, statement mapping, unsupported-account flags.
6AccountRegisteraccount-registerGL detail with a running balance.
7DimensionPickerdimension-pickerEntity always required; renders what the account demands.
8AdjustingEntryFormadjusting-entry-formTemplated by type. Auto-reverse defaults on for accruals.
9RecurringEntryTemplaterecurring-entry-templateTemplate editable; instances read-only.
10EntryReversalDialogentry-reversal-dialogHold-to-confirm. Never a delete.
11ScheduleTableschedule-tableOne shell, seven presets. Prepaids through debt.
12RollForwardroll-forwardOpening → movements → closing → tie. The universal shape.
13AccountTieOutaccount-tie-outEvery BS account, proven against its evidence.
14SchedulePreviewschedule-previewWhat the schedules will post, before they post.
15RevenueWaterfallrevenue-waterfallDeferred balance recognizing by future period.
16DepreciationScheduledepreciation-scheduleBook and tax in parallel. In-service date, not purchase date.
17LeaseSchedulelease-scheduleROU asset and liability on diverging curves.
18AllowanceRollForwardallowance-roll-forwardWith the methodology shown, not just the number.
18 components18 built · 0 specified

10Receivables (AR)

3 of 13 builtFamily spec
RowComponentWhat it doesPreview
1InvoiceForminvoice-formWith the revenue-recognition preview per line.
2InvoiceDetailinvoice-detailBalance due as the hero, not total.
Not built yet
3InvoiceRegisterinvoice-registerGapless-numbering check surfaced.
Not built yet
4CashApplicationcash-applicationThe highest-value screen in AR. Every case, not just the happy one.
5PaymentSuggestionpayment-suggestionInvoice combinations summing exactly to a lump sum.
6UnappliedCashPanelunapplied-cash-panelNever revenue; net credit balances flagged as liabilities.
Not built yet
7CreditNoteFormcredit-note-formDistinct from a refund and from a write-off.
Not built yet
8CollectionsWorklistcollections-worklistPromise-to-pay as a first-class object.
Not built yet
9DunningTimelinedunning-timelinePer customer, not per invoice.
Not built yet
10CustomerStatementcustomer-statementPrintable. Print styles are first-class.
Not built yet
11CustomerCreditPanelcustomer-credit-panelLimit and exposure together, with hierarchy roll-up.
Not built yet
12SalesOrderTablesales-order-tableBacklog, visually separated from ledger-derived numbers.
Not built yet
13ArMetricsPanelar-metrics-panelDSO with its method stated.
Not built yet
13 components3 built · 10 specified

11Payables (AP)

4 of 16 builtFamily spec
RowComponentWhat it doesPreview
1BillFormbill-formPer-line coding, required evidence, discount ROI surfaced.
Not built yet
2BillDetailbill-detailSource document inline beside the coding.
Not built yet
3BillRegisterbill-registerAging and approval state.
Not built yet
4DuplicateBillAlertduplicate-bill-alertBlocking. Duplicate payment is the most common AP loss.
5ThreeWayMatchthree-way-matchLine-level variances, not header totals.
6MatchExceptionQueuematch-exception-queueThe clerk's worklist.
Not built yet
7ApprovalChainapproval-chainSegregation of duties enforced. Approvals bind to a version.
8ApprovalInboxapproval-inboxMobile-first, document inline.
9PaymentRunBuilderpayment-run-builderShows the cash balance remaining after the run.
Not built yet
10PaymentRunPreviewpayment-run-previewHold-to-confirm. Partial failure is a first-class state.
Not built yet
11CashRequirementscash-requirementsDue in 7/14/30 vs. available, payroll broken out.
Not built yet
12VendorMastervendor-masterBank details versioned, never overwritten.
Not built yet
13BankDetailChangeAlertbank-detail-change-alertThe fraud-prevention surface.
Not built yet
14ExpenseCaptureexpense-captureCamera-first, policy violations shown at entry.
Not built yet
15CardTransactionMatchcard-transaction-matchMatched to receipts, never re-entered.
Not built yet
16UninvoicedReceiptsReportuninvoiced-receipts-reportGR/IR aging. The evidence for the period-end accrual.
Not built yet
16 components4 built · 12 specified

12Close, controls & consolidation

2 of 24 builtFamily spec

**See also:** `#69 TrialBalance` and `#70 CloseChecklist` in [statements](06-statements.md) — same family conceptually.

RowComponentWhat it doesPreview
1PeriodStatusperiod-statusState, provenance, and the next action.
Not built yet
2CutoffWarningcutoff-warningInline, with both legitimate remedies named.
3CloseStatusclose-statusThe seven-section gated pipeline.
Not built yet
4AuditTrailaudit-trailField-level diffs on every financial object.
5EvidencePanelevidence-panelInline rendering, content hash, never deleted.
Not built yet
6IntegrityCheckPanelintegrity-check-panelEleven continuous assertions. A failure owns the screen.
Not built yet
7MaterialityPolicymateriality-policyBoth thresholds must be exceeded. Threshold displayed.
Not built yet
8ApprovalPolicyEditorapproval-policy-editorSeparate-approver shown as fixed, not a toggle.
Not built yet
9RoleMatrixrole-matrixController ≠ Treasurer. Admin cannot transact.
Not built yet
10SubsequentEventLogsubsequent-event-logAdjusting vs. non-adjusting, decision recorded.
Not built yet
11RestatementBannerrestatement-bannerMarks a restated comparative everywhere.
Not built yet
12AuditorModeauditor-modeRead-only server-side, scope immutable, itself audited.
Not built yet
13SamplingToolsampling-toolMethod and seed recorded — reproducible selection.
Not built yet
14EvidenceBundleevidence-bundleEntries + documents + approvals + trail, with a manifest.
Not built yet
15EntitySelectorentity-selectorExplicit scope. Standalone vs. consolidated visually distinct.
Not built yet
16ConsolidationViewconsolidation-viewEntity columns, eliminations, NCI, group total.
Not built yet
17IntercompanyMatrixintercompany-matrixMust net to zero. Break types named.
Not built yet
18EliminationEntryelimination-entryConsolidation-level only, boundary visible.
Not built yet
19NciPanelnci-panelOn both statements.
Not built yet
20TranslationSummarytranslation-summaryRates by type, with sources and methodology.
Not built yet
21CtaRollForwardcta-roll-forwardIts own equity line, never buried.
Not built yet
22FxRevaluationfx-revaluationMonetary items only, derived from classification.
Not built yet
23FxGainLossPanelfx-gain-loss-panelRealized and unrealized never combined.
Not built yet
24RateTablerate-tableRate type is not optional. A missing rate blocks.
Not built yet
24 components2 built · 22 specified

13Metrics & analysis

8 of 12 builtFamily spec

---

RowComponentWhat it doesPreview
1MetricDefinitionmetric-definitionEvery metric requires one. Formula with values substituted.
2NonGaapReconciliationnon-gaap-reconciliationEBITDA below net income, every adjustment named.
Not built yet
3MrrBridgemrr-bridgeThe movement, not a single number with a percentage.
Not built yet
4BudgetVsActualbudget-vs-actualPolarity-aware, materiality-filtered, versions tracked.
5ForecastTableforecast-tableProjections dashed and labeled everywhere.
6CovenantMonitorcovenant-monitorThe contractual definition, not the generic one.
Not built yet
7KpiHealthStripkpi-health-stripProvisional marking for pre-close numbers.
Not built yet
8RevenueTrackerrevenue-trackerRevenue by stream, with mix, growth and concentration.
Not built yet
9ExpenseTrackerexpense-trackerSpend by category on three bases. Polarity derived per row from the sign convention.
Not built yet
10DriverModeldriver-modelThe inputs a forecast is built from, and what they produce.
Not built yet
11ScenarioComparescenario-compareScenarios side by side, all measured against the base.
Not built yet
12PlByDimensionpl-by-dimensionThe P&L cut by department, entity or product.
Not built yet
12 components8 built · 4 specified

Common questions

What is Lopifi?

Lopifi is a React component system for accounting and finance interfaces: 179 components across 13 families, from money primitives and ledger tables to financial statements, the month-end close and controls. Each one is specified before it is written, and the spec ships with it.

How do I install a Lopifi component?

Point `components.json` at the registry once — `{ "registries": { "@lopifi": "https://lopifi.com/r/{name}.json" } }` — then run `npx shadcn@latest add @lopifi/balance-card` for each component you want. The source lands in your repository and you own it; there is no runtime dependency on this site.

What makes an accounting component different from a generic UI component?

A card with a currency symbol is not an accounting component. These know that money is a minor-unit integer plus a currency code, that a negative can be a parenthesis or a minus depending on the statement, that zero, null, unknown, redacted and loading are five distinct renders, and that every figure has an entity, a basis, a period and an as-of date.

Can I use these components with an AI coding agent?

Yes — that is what they are for. The MCP server at https://lopifi.com/api/mcp exposes all 179 components with their source and specs, so an agent installs a correct component instead of generating a money primitive from scratch.

Told when a component lands

125 of 179 are built. One email when the rest ship, family by family — and when one of them changes in a way that needs a migration note.

One address, no list rental, unsubscribe in one click.

Works in your QuickBooks Online or Xero file

Get your books closed every month

Lopifi is building AI bookkeeping that keeps your books closed on US GAAP as transactions happen, with a CPA review every quarter, for $200 a month. We’re not open yet.

$200/month when we open. No card now.