Components
2 free copies left todaySign in
Components/Finance/Balance Card
Balance Card
Rendered from the real SwiftUI via ImageRenderer

Balance Card

NFrom Nibware - Original components, crafted in-house.

A hero balance card with account breakdown.

Finance29 linesSwiftUIiOS 17+

The actual source

Balance Card · Swift
BalanceCard.swift
import SwiftUI

let fnBlue = Color(red: 0.28, green: 0.35, blue: 0.95)

let fnPurple = Color(red: 0.48, green: 0.35, blue: 0.92)

/// A hero balance card with account breakdown.
struct FinanceBalance: View {
    var body: some View {
        VStack(alignment: .leading, spacing: 14) {
            VStack(alignment: .leading, spacing: 3) {
                Text("Total balance").font(.system(size: 13, weight: .medium)).foregroundStyle(.white.opacity(0.8))
                Text("$24,183.50").font(.system(size: 30, weight: .bold)).foregroundStyle(.white)
            }
            HStack(spacing: 6) {
                Image(systemName: "arrow.up.right").font(.system(size: 11, weight: .bold))
                Text("+$1,240 (5.4%) this month").font(.system(size: 12, weight: .medium))
            }.foregroundStyle(.white).padding(.horizontal, 10).padding(.vertical, 6).background(.white.opacity(0.18), in: Capsule())
            HStack {
                acct("Checking", "$8,420"); Spacer(); acct("Savings", "$14,320"); Spacer(); acct("Invest", "$1,443")
            }
        }
        .padding(20).frame(width: 320, alignment: .leading)
        .background(LinearGradient(colors: [fnBlue, fnPurple], startPoint: .topLeading, endPoint: .bottomTrailing), in: RoundedRectangle(cornerRadius: 22, style: .continuous))
    }
    func acct(_ l: String, _ v: String) -> some View {
        VStack(alignment: .leading, spacing: 2) { Text(l).font(.system(size: 11)).foregroundStyle(.white.opacity(0.75)); Text(v).font(.system(size: 14, weight: .semibold)).foregroundStyle(.white) }
    }
}
What it needs

Self-contained SwiftUI - system materials, SF Symbols, no external dependencies. This screen also references:

All of it - tokens, sub-views, models - is carried in the copy-paste source above.