Skip to content
Data & ChartsPro

List Panel

A dashboard card with a titled list: 31 ready panels (transactions, orders, integrations, team, activity, crypto, timelines …) with loading, empty and error states, or your own rows.

See alsoList ItemProList GroupPro

Usage

Recent transactions

Last 7 days

  • Oct 21, 09:24
    +$2,480.00Paid
  • Oct 20, 16:02
    +$1,150.00Paid
  • Oct 20, 11:45
    +$640.00Pending
  • Oct 19, 14:30
    -$320.00Refunded
  • Oct 18, 10:12
    $980.00Failed

Installation

List Panel comes with WunderUI Core and Pro, in the package from your plan. See the plans.

Then import what you need:

tsx
import {
  ListPanel,
  ListPanelPreset,
  ListPanelProps,
  ListPanelSkeleton,
  ListPanelState,
  ListPanelVariant,
} from "@wunderui/react"

Examples

Recent Transactions

Rows with dividers: 5 rows — recent transactions. Rows select on click.

Recent transactions

Last 7 days

  • Oct 21, 09:24
    +$2,480.00Paid
  • Oct 20, 16:02
    +$1,150.00Paid
  • Oct 20, 11:45
    +$640.00Pending
  • Oct 19, 14:30
    -$320.00Refunded
  • Oct 18, 10:12
    $980.00Failed

Recent Orders

Rows with dividers: 5 rows — recent orders. Rows select on click.

Recent orders

12 new today

  • Sofia Klein, 3 items
    $248.00Delivered
  • Noah Berger, 1 item
    $89.00Shipped
  • Emma Wolf, 2 items
    $132.50Processing
  • David Schulz, 5 items
    $412.00Unfulfilled
  • Clara Neumann, 1 item
    $56.00Cancelled

Invoices

Rows with dividers: 5 rows — invoices. Rows select on click.

Invoices

4 open, 1 overdue

  • $2,480.00, due Nov 4
  • $1,150.00, paid Oct 28
  • $640.00, due Oct 30
  • $3,200.00, overdue 6 days
  • $890.00, paid Oct 14

Connected Integrations

Rows with dividers: 5 rows — connected integrations. Rows select on click. Resume pauses the HubSpot sync again.

Connected integrations

5 of 30 apps connected

  • Synced 2 min ago
  • Synced 14 min ago
  • 2,140 contacts synced
  • Posting to #sales-updates
  • Sync paused since Oct 19

Team Members

Rows without dividers: 4 rows — team members. Rows select on click. The row menu opens profile, message, role and remove.

Team members

8 people in Product

  • Head of productAvailable
  • Product designerIn a meeting until 11:00
  • Engineering leadAvailable
  • Account executiveOut of office until Oct 24

Activity Feed

Rows without dividers: 5 rows — activity feed. Rows select on click.

Activity

Across all projects

  • Merged pull request #312 Billing export
    5m
  • Uploaded 4 files to Brand assets
    22m
  • Approved invoice INV-2041
    1h
  • Moved Atlas Foods to Proposal
    3h
  • Closed ticket #8812 Login loop
    5h

Notifications

Rows with dividers: 5 rows — notifications. Rows select on click.

Notifications

2 unread

  • $2,480.00 from Brightline Studio
    2mUnread
  • Felix Brandt mentioned you in Q4 roadmap
    18mUnread
  • Weekly revenue report
    1h
  • Team plan, 20 of 20 seats
    3h
  • Chrome on macOS, Berlin
    Yesterday

Upcoming Events

Rows without dividers: 4 rows — upcoming events. Rows select on click.

Upcoming events

This week

  • Oct22
    10:00 to 10:45, Room Atlas
    Alina Lorenz, Felix Brandt, Mara Koch
  • Oct23
    09:30 to 10:30, video call
    Mara Koch, Tim Vogel, Lena Hoffmann
  • Oct24
    14:00 to 14:30
    Tim Vogel, Alina Lorenz
  • Oct27
    11:00 to 12:30, Board room
    Alina Lorenz, Felix Brandt, Tim Vogel

Tasks & Approvals

Rows with dividers: 5 rows — tasks & approvals. Rows select on click. The checkboxes tick; the done task keeps the selected fill.

Tasks & approvals

3 waiting for you

  • Alina Lorenz, due today
    High
  • Felix Brandt, due Oct 23
    Medium
  • Tim Vogel, due Oct 24
    High
  • Lena Hoffmann, due Oct 28
    Low
  • Mara Koch, done Oct 20
    Done

Files & Documents

Rows with dividers: 5 rows — files & documents. Rows select on click. The row menu opens Open, Download, Rename and Delete.

Files

Shared with you

  • 2.4 MB, Oct 21
  • 18.6 MB, Oct 20
  • 860 KB, Oct 19
  • 312 KB, Oct 17
  • 124 MB, Oct 15

Uploads & Sync Jobs

Rows with dividers: 5 rows — uploads & sync jobs. Rows select on click. Progress bars use the Progress component; Retry restarts the failed sync.

Uploads & sync

2 running, 1 failed

  • Uploading to Dropbox
    x
    70%
  • Syncing to HubSpot
    x
    40%
  • Shopify, 1,284 records
    Done
  • PayPal, stopped at 62%
  • Notion, 412 pages
    x
    90%

Top Products

Rows without dividers: 5 rows — top products. Rows select on click.

Top products

Marketplace, October

  • 1,284 sales
    $38,52012.4%
  • 962 sales
    $24,0508.1%
  • 731 sales
    $18,2753.2%
  • 418 sales
    $16,7205.6%
  • 356 sales
    $8,9000.0%

Top Customers

Rows without dividers: 5 rows — top customers. Rows select on click.

Top customers

By revenue, last 90 days

  • 1
    42 orders
    $18,420Since 2024
  • 2
    35 orders
    $15,860Since 2023
  • 3
    28 orders
    $12,940Since 2025
  • 4
    24 orders
    $9,310Since 2024
  • 5
    19 orders
    $7,780Since 2026

Audience by Location

Rows without dividers: 5 rows — audience by location. Rows select on click. The share bars use the Progress component, the value beside them is exact.

Audience by location

39,480 users

  • 12,480 users
    x
    31.6%
  • 7,190 users
    x
    18.2%
  • 5,880 users
    x
    14.9%
  • 4,460 users
    x
    11.3%
  • 3,430 users
    x
    8.7%

Traffic Sources

Rows with dividers: 5 rows — traffic sources. Rows select on click.

Traffic sources

Visitors and conversion

  • 12,480 visitors, 3.4% conversion
    14.2%
  • 8,920 visitors, 4.1% conversion
    6.8%
  • 6,310 visitors, 2.7% conversion
    2.1%
  • 4,870 visitors, 5.2% conversion
    9.4%
  • 2,140 visitors, 3.9% conversion
    0.0%

Revenue by Channel

Rows with dividers: 5 rows — revenue by channel. Rows select on click.

Revenue by channel

October, $84.2K total

  • 42% of revenue
    $35.4K11.2%
  • 27% of revenue
    $22.7K6.3%
  • 16% of revenue
    $13.5K2.4%
  • 9% of revenue
    $7.6K4.0%
  • 6% of revenue
    $5.0K1.2%

Subscriptions

Rows with dividers: 5 rows — subscriptions. Rows select on click.

Subscriptions

Software spend, $1,342 per month

  • Design team, billed yearly
    $540/moActive
  • Whole company, billed monthly
    $375/moActive
  • Whole company, billed yearly
    $160/moRenews Nov 2
  • Engineering, billed monthly
    $172/moActive
  • Engineering, trial
    $95/moTrial

Support Tickets

Rows with dividers: 4 rows — support tickets. Rows select on click.

Support tickets

14 open, 3 urgent

  • Sofia KleinAssigned to Lena Hoffmann
    Urgent
  • Noah BergerAssigned to Tim Vogel
    High
  • Emma WolfAssigned to Mara Koch
    Normal
  • David SchulzUnassigned
    Low

Crypto Portfolio

Rows without dividers: 5 rows — crypto portfolio. Rows select on click.

Portfolio

$92,418.60 total

  • 0.8421 BTC
    $54,210.40$64,372.102.4%
  • 7.2500 ETH
    $24,563.00$3,388.001.1%
  • 52.40 SOL
    $8,201.60$156.523.8%
  • 4,120.00 USDC
    $4,120.00$1.000.0%
  • 92.10 LINK
    $1,323.60$14.375.2%

Crypto Transactions

Rows with dividers: 5 rows — crypto transactions. Rows select on click.

Transactions

Wallet Main

  • From wallet 8F3A, Oct 21
    +0.0420 BTCConfirmed
  • To wallet 2C91, Oct 20
    -1.2000 ETHConfirmed
  • Exchange, Oct 20
    820.00 USDCPending
  • From wallet 7B04, Oct 18
    +500.00 USDCConfirmed
  • To wallet 9E12, Oct 17
    -12.00 LINKFailed

Crypto Watchlist

Rows without dividers: 5 rows — crypto watchlist. Rows select on click.

Top movers

Watchlist, 24 h

  • $5.42
    18.6%
  • $1.14
    9.3%
  • $4.86
    3.8%
  • $0.71
    6.2%
  • $38.40
    4.7%

Staking & Rewards

Rows with dividers: 4 rows — staking & rewards. Rows select on click.

Staking & rewards

$1,284.20 earned this year

  • 12.50 ETH staked
    +0.42 ETH3.4% APY
  • 180.00 SOL staked
    +9.82 SOL6.8% APY
  • 640.00 DOT staked
    +48.10 DOT11.2% APY
  • 310.00 ATOM staked
    +21.40 ATOM9.5% APY

Account Activity

Rows with dividers: 5 rows — account activity. Rows select on click.

Account activity

Sign-ins and security events

  • Chrome on macOS, Berlin
    Today, 09:12
  • iPhone 16, Munich
    Yesterday
  • Firefox on Windows, Lisbon
    Oct 19
  • Authenticator app
    Oct 18
  • Chrome on macOS, Berlin
    Oct 18

System Activity

Rows with dividers: 5 rows — system activity. Rows select on click.

System activity

All services

  • Database, eu-central-1
    09:00Success
  • API, 4 regions
    08:42Success
  • Search, p95 1.8 s
    08:15Warning
  • Billing, 3 retries left
    07:58Error
  • CDN, all assets
    07:30Info

Project Timeline

A timeline with a 2 px connector behind the steps: 5 rows — project timeline. Rows select on click.

Project timeline

Website relaunch

  • Done Oct 6, Alina Lorenz
    x
    100%
  • Done Oct 14, Felix Brandt
    x
    100%
  • Due Oct 28, Felix Brandt
    x
    60%
  • Due Nov 18, Mara Koch
    x
    10%
  • Planned Nov 25, Alina Lorenz
    x
    0%

Order Timeline

A timeline with a 2 px connector behind the steps: 4 rows — order timeline. Rows select on click.

Order #10482

Sofia Klein, 3 items

  • Order confirmed
    Oct 18, 14:02
  • Visa ending 4242
    Oct 18, 14:03
  • Parcel 0034 5521 handed over
    Oct 19, 08:30
  • Expected Oct 23
    Pending

Customer Timeline

A timeline with a 2 px connector behind the steps: 4 rows — customer timeline. Rows select on click.

Atlas Foods

Customer journey

  • Inbound email, Tim Vogel
    Sep 12
  • 45 min call with 3 people
    Sep 19
  • $48,000 per year, 40 seats
    Oct 2
  • Contract signed by the CFO
    Oct 20

Release Timeline

A timeline with a 2 px connector behind the steps: 4 rows — release timeline. Rows select on click.

Releases

WunderUI app

  • Planned Nov 4, 9 changes
    Planned
  • Oct 24, 3 fixes
    Beta
  • Oct 21, 14 changes
    Live
  • Oct 9, 5 fixes
    Previous

Integration Directory

Rows with dividers: 5 rows — integration directory. Rows select on click. Connect switches to Connected.

Integration directory

30 apps available

  • Connect your designs and collaborate with your team.Design
  • Analyze documents and automate tasks with AI.AI
  • Start and schedule video calls from any record.Meetings
  • Sync records between bases and your workspace.Data
  • Answer conversations and sync customer data.Support

Integration Sync Status

Rows with dividers: 5 rows — integration sync status. Rows select on click.

Sync status

Last 24 hours

  • Synced 2 min ago, 3,120 files
    Synced
  • Synced 5 min ago, 86 events
    Synced
  • Syncing 1,204 of 2,980 contacts
    Syncing
  • Rate limit reached at 14:02
  • Synced 1 h ago, 412 issues
    Synced

Available Modules

Rows without dividers: 5 rows — available modules. Rows select on click. Add switches to Added; the footer button browses more.

Available modules

Add features to your workspace

  • Create and send invoices
  • Track stock across locations
  • Log hours per project
  • Route requests to approvers
  • Dashboards and reports

Loading

state="loading": skeleton rows at the size and number of the real rows, so the card keeps its height when the data arrives. The header action waits until the rows are there.

Recent transactions

Last 7 days

Loading recent transactions…

Empty

state="empty" (or no rows): a short message and one next step. Every variant brings its own copy; pass empty to change it.

Recent transactions

Last 7 days

No transactions yet

Payments appear here as soon as a customer pays.

Error

state="error" is announced as an alert; onRetry adds Try again. Here it loads for a moment and then shows the rows.

Recent transactions

Last 7 days

In context

How the component is used inside real screens — the same compositions as the Usage section of the Figma page.

Sales overview: revenue chart with recent transactions

An Area Chart card next to the Recent Transactions panel; the chart reloads, switches period and toggles its legend.

Revenue

Area chart, 12 points from Jan to Dec. Revenue from 32k to 58k, lowest 32k, highest 58k; Expenses from 18k to 35k, lowest 18k, highest 38k.
Revenue and expenses, data table
monthRevenueExpenses
Jan32k18k
Feb41k22k
Mar38k27k
Apr47k24k
May44k30k
Jun52k28k
Jul49k34k
Aug55k31k
Sep51k36k
Oct46k33k
Nov53k38k
Dec58k35k

Recent transactions

Last 7 days

  • Oct 21, 09:24
    +$2,480.00Paid
  • Oct 20, 16:02
    +$1,150.00Paid
  • Oct 20, 11:45
    +$640.00Pending
  • Oct 19, 14:30
    -$320.00Refunded
  • Oct 18, 10:12
    $980.00Failed

Integrations settings: connected apps, sync status and modules

Three panels side by side on a settings page.

Connected integrations

5 of 30 apps connected

  • Synced 2 min ago
  • Synced 14 min ago
  • 2,140 contacts synced
  • Posting to #sales-updates
  • Sync paused since Oct 19

Sync status

Last 24 hours

  • Synced 2 min ago, 3,120 files
    Synced
  • Synced 5 min ago, 86 events
    Synced
  • Syncing 1,204 of 2,980 contacts
    Syncing
  • Rate limit reached at 14:02
  • Synced 1 h ago, 412 issues
    Synced

Available modules

Add features to your workspace

  • Create and send invoices
  • Track stock across locations
  • Log hours per project
  • Route requests to approvers
  • Dashboards and reports

Crypto wallet: price chart, portfolio and activity

A Line Chart with the portfolio beside it, transactions, top movers and staking below.

Bitcoin price

Line chart, 12 points from Jan to Dec. BTC / USD from 42k to 64.4k, lowest 42k, highest 66k; Last year from 30k to 47k, lowest 30k, highest 48k.
Bitcoin price, data table
monthBTC / USDLast year
Jan42k30k
Feb47k32k
Mar45k35k
Apr52k33k
May58k38k
Jun55k41k
Jul61k40k
Aug59k44k
Sep63k43k
Oct66k46k
Nov62k48k
Dec64.4k47k

Portfolio

$92,418.60 total

  • 0.8421 BTC
    $54,210.40$64,372.102.4%
  • 7.2500 ETH
    $24,563.00$3,388.001.1%
  • 52.40 SOL
    $8,201.60$156.523.8%
  • 4,120.00 USDC
    $4,120.00$1.000.0%
  • 92.10 LINK
    $1,323.60$14.375.2%

Transactions

Wallet Main

  • From wallet 8F3A, Oct 21
    +0.0420 BTCConfirmed
  • To wallet 2C91, Oct 20
    -1.2000 ETHConfirmed
  • Exchange, Oct 20
    820.00 USDCPending
  • From wallet 7B04, Oct 18
    +500.00 USDCConfirmed
  • To wallet 9E12, Oct 17
    -12.00 LINKFailed

Top movers

Watchlist, 24 h

  • $5.42
    18.6%
  • $1.14
    9.3%
  • $4.86
    3.8%
  • $0.71
    6.2%
  • $38.40
    4.7%

Staking & rewards

$1,284.20 earned this year

  • 12.50 ETH staked
    +0.42 ETH3.4% APY
  • 180.00 SOL staked
    +9.82 SOL6.8% APY
  • 640.00 DOT staked
    +48.10 DOT11.2% APY
  • 310.00 ATOM staked
    +21.40 ATOM9.5% APY

Support inbox: master-detail list with ticket queue

The Master-Detail group opens a conversation beside the inbox; the ticket queue sits on the right.

Inbox

12
  • Alina LorenzInvoice INV-2041 question
    09:24Unread
  • Felix BrandtAccess to the design files
    08:51
  • Sofia KleinRefund for order #10482
    Yesterday
  • Noah BergerUpgrade to the Business plan
    Yesterday
  • Emma WolfAPI rate limit reached
    Oct 19
Details: Alina Lorenz
Alina Lorenzalina@wunderui.com
Open

Invoice INV-2041 question

Hi team, the October invoice lists 14 seats but we only had 12 active members. Could you check the seat count and send a corrected invoice?

Priority
High
Assignee
Felix Brandt
Created
Oct 21, 09:24

Support tickets

14 open, 3 urgent

  • Sofia KleinAssigned to Lena Hoffmann
    Urgent
  • Noah BergerAssigned to Tim Vogel
    High
  • Emma WolfAssigned to Mara Koch
    Normal
  • David SchulzUnassigned
    Low

Project overview: timeline, approvals and team

Milestones with progress, the approvals to tick and the team with its menus.

Project timeline

Website relaunch

  • Done Oct 6, Alina Lorenz
    x
    100%
  • Done Oct 14, Felix Brandt
    x
    100%
  • Due Oct 28, Felix Brandt
    x
    60%
  • Due Nov 18, Mara Koch
    x
    10%
  • Planned Nov 25, Alina Lorenz
    x
    0%

Tasks & approvals

3 waiting for you

  • Alina Lorenz, due today
    High
  • Felix Brandt, due Oct 23
    Medium
  • Tim Vogel, due Oct 24
    High
  • Lena Hoffmann, due Oct 28
    Low
  • Mara Koch, done Oct 20
    Done

Team members

8 people in Product

  • Head of productAvailable
  • Product designerIn a meeting until 11:00
  • Engineering leadAvailable
  • Account executiveOut of office until Oct 24

Anatomy

The parts the component is made of. Each one renders a you can target from CSS.

  • data-slot="list-panel"

    The dashboard card: 400 px, 16 px radius, 24 px padding above and below and 12 px at the sides, a 16 px semibold title, a link action and the rows. picks one of the 31 Figma panels.

  • data-slot="list-panel-skeleton"Optional

    Skeleton rows at the size of real rows while : leading shape, two text lines, a value.

  • data-slot="list-panel-header"Optional

    Title, description and the link action ("View all").

  • data-slot="list-panel-footer"Optional

    An optional full-width plain button under the rows (Available Modules).

  • data-slot="list-panel-state"

    The empty and error message: a round icon tile, title, description and one button (Try again for the error).

  • data-slot="list-panel-skeleton-row"

Best practices

  • When to use

    Use a List Panel for a list card on a dashboard: recent transactions, orders, integrations, the team, an activity feed, a timeline or crypto holdings, next to charts and KPIs.

  • Do

    Start from a and pass your own ; the title, the dividers and the copy of the empty and error states come with it.

  • Do

    Pass , and with . The skeleton keeps the card's height, and the error is announced.

  • Do

    Link the header action to the full list, and give rows when they open a detail.

  • Don’t

    Don't show more than five or six rows in a panel; the card sits in a grid with charts and should line up with them.

  • Don’t

    Don't stretch a panel across a wide row on its own. It is designed at 400 px; let charts take the extra width.

API Reference

PropTypeDefault
variant"recent-transactions" | "recent-orders" | "invoices" | "connected-integrations" | "team-members" | "activity-feed" | "notifications" | "upcoming-events" | "tasks-approvals" | "files-documents" | "uploads-sync-jobs" | "top-products" | "top-customers" | "audience-by-location" | "traffic-sources" | "revenue-by-channel" | "subscriptions" | "support-tickets" | "crypto-portfolio" | "crypto-transactions" | "crypto-watchlist" | "staking-rewards" | "account-activity" | "system-activity" | "project-timeline" | "order-timeline" | "customer-timeline" | "release-timeline" | "integration-directory" | "integration-sync-status" | "available-modules"—
title / descriptionReactNodefrom variant
action / onActionReactNode | string | false / () => voidvariant ("View all")
itemsListItemData[]variant sample rows
onItemSelect(item) => void—
state"ready" | "loading" | "empty" | "error""ready"
loadingRows / skeletonnumber / "circle" | "square"4 / from variant
empty / onEmptyAction{ icon, title, description, action } / () => voidfrom variant
error / onRetry{ title, description } / () => voidfrom variant / no button
footer / onFooterActionReactNode | string / () => void—
divider / density / timelineboolean / "comfortable" | "compact" / booleanfrom variant
actionReact.ReactNode | false—
density"compact" | "comfortable""comfortable"
descriptionReact.ReactNode—
dividerboolean—
empty{ icon?: React.ReactNode; title: React.ReactNode; description?: React.ReactNode; action?: React.ReactNode }—
error{ title?: React.ReactNode; description?: React.ReactNode }—
footerReact.ReactNode—
loadingRowsnumber—
onAction() => void—
onEmptyAction() => void—
onFooterAction() => void—
onRetry() => void—
skeleton"circle" | "square"—
timelineboolean—
titleReact.ReactNode—
titleAs"h2" | "h3" | "h4" | "h5" | "h6""h3"
...propsReact.HTMLAttributes (279 attributes)—

Theming

The CSS variables this component reads. Set one on any wrapper to restyle everything inside it. More in Theming.

VariableUsed forDefault
Color
BorderListPanel#F1F5F7dark #323438
BackgroundListPanel#FFFFFFdark #1C1D20
TextListPanel#000000dark #FFFFFF
BackgroundListPanel#F1F5F7dark #25272A
TextListPanel#454648dark #D1D1D1
BackgroundListPanel#FEF1F4dark #622F3A
TextListPanel#924756dark #FBC8D3
Radius
Corner radiusListPanel, ListPanelSkeleton8px
Corner radiusListPanel16px