Avara UI

Wallet

An interactive fintech cardholder wallet component featuring 3 serially staggered cards, an authentic physical thumb scoop, a solid enclosed pocket, and privacy balance toggle. When hovered, the 3 cards glide up smoothly in a spring-staggered sequence. Designed with complete dual-theme adaptivity—delivering a clean, crisp, modern light palette in Light Mode and a deep, luxurious violet finish in Dark Mode.

Interactive Cardholder Wallet

Hover over the wallet to smoothly slide out the 3 cards serially. Click any card to pull it high out of the wallet, then click it again to 3D-flip and reveal its back face (magnetic stripe, signature box & CVV). Moving the cursor away resets all cards back inside.

ClickonClick
any card to elevate it high above the others. Click again to 3D flip between front face and back face (with magnetic stripe & CVV).
ToggleallowReveal
the Eye icon button to reveal or conceal the balance amount.
Reusablecards & props
all texts, cards, balances, tags, and disclaimers can be passed as props, or used zero-config out-of-the-box.

Installation

New project? Follow the installation guide to set up Tailwind CSS, shadcn, the cn helper and lucide-react, register the @algorize-ui registry once, then copy your styles from the Themes page.

Install Wallet

npx shadcn@latest add @algorize-ui/wallet

components/custom/blocks/WalletBlock.tsx is written into your project. Copy any snippet from a Usage tab above and it runs.

Install dependencies

Nothing beyond the shared setup — Wallet needs only the cn helper and lucide-react, which the installation guide already put in place.

Features

Serially Staggered Cards

Hovering over the wallet smoothly slides out all 3 cards in a staggered spring sequence, allowing each card tier to reveal its currency and balance.

100% Theme Adaptive (Light & Dark)

Renders a clean, elegant light wallet with crisp borders in Light Mode and switches automatically to deep violet luxury tones in Dark Mode.

Completely Enclosed Pocket Base

Engineered with a solid pocket base ensuring cards are 100% hidden inside before hover and never poke through the bottom.

Interactive Balance Privacy Toggle

Users can toggle balance visibility with an animated eye icon button or auto-reveal the unmasked balance on hover.

Best Practices & Guidelines

Touch & Mobile Support

On touchscreens without hover capability, tapping the wallet triggers the staggered cards reveal so mobile users have the identical tactile experience.

Custom Datasets

Pass a custom cards array to customize the name, balance, currency, card number, and gradient classes for each of the 3 cards to match your company's product lineup.

Individual Card Hover

When cards are fanned out, hovering over an individual card raises it an extra 18px and adjusts scale to highlight that specific card.

Props Reference

PropTypeDefaultDescription
cardsWalletCardItem[]DEFAULT_WALLET_CARDSArray of cards with balances, names, chip states, and gradients.
overallBalancestring"$89,000.00"The total balance shown on the front face of the wallet.
overallLabelstring"Overall Balance"Subtitle text displayed underneath the overall balance.
revealTextstring"Reveal balance"Label for the button when balance is concealed/masked.
concealTextstring"Conceal balance"Label for the button when balance is revealed/visible.
maskedBalancestring"✱✱✱✱✱✱✱✱"Placeholder string rendered when balance is hidden.
allowRevealbooleantrueWhether to show the Reveal/Conceal balance toggle button.
defaultRevealedbooleanfalseInitial visibility state of the balance (masked or unmasked).
autoRevealOnHoverbooleanfalseAutomatically unmask the balance when hovering over the wallet.
walletColorstring"var(--primary)"Base color or CSS variable. The sleeve and pocket wear a soft tint of it, with text in a deep shade of the same hue.
hintstring"Hover to view cards"Prompt shown above the closed wallet on pointer devices. Pass "" to hide.
touchHintstring"Tap to view cards"The same prompt on touch screens, where the wallet opens on tap.
openHintstring"Click a card to view details"Prompt shown while the cards are out, on pointer devices. Pass "" to hide.
touchOpenHintstring"Tap a card to view details"The open prompt on touch screens.
classNamestringundefinedOptional wrapper container CSS classes.

WalletCardItem Object

PropertyTypeDefaultDescription
namestringRequiredCard title or currency name (e.g., "Pounds", "Euros").
balancestringRequiredFormatted balance amount (e.g., "€46,000.00").
currencystringundefinedCurrency code (e.g., "GBP", "EUR", "USD").
tagstringundefinedSmall pill tag in top right (e.g., "SAVINGS", "PRIMARY").
cardNumberstring"•••• 4829"Masked card number displayed in the card footer.
expirystring"12/29"Expiration date string (e.g., "08/29", "09/30").
issuerstring"PINSTACK"Card issuer or network brand name.
cvvstring"832"CVV security code shown on the back-face signature strip.
hasChipbooleanfalseRenders the metallic golden EMV chip on the card face.
gradientLightstringundefinedTailwind gradient classes for Light Mode card background.
gradientDarkstringundefinedTailwind gradient classes for Dark Mode card background.
textColorLightstringundefinedText color class for Light Mode (e.g., "text-amber-950").
textColorDarkstringundefinedText color class for Dark Mode (e.g., "text-white").
subtextColorLightstringundefinedSecondary text color class for Light Mode.
subtextColorDarkstringundefinedSecondary text color class for Dark Mode.
backSignatureLabelstring"AUTHORIZED SIGNATURE"Label inside the back-face white signature strip.
backSubtitlestring"GLOBAL SECURE ASSET CARD"Header text printed on the card back footer.
backNoticestring"NOT VALID UNLESS SIGNED..."Legal disclaimer text printed on the card back footer.