Bar List Card

The analytics breakdown list - traffic by device, browser, OS, country, or source as ranked rows whose background bars encode each item's share, label on the bar, metric on the right. Our underline Tabs switch between lists, the metric caption sits on the same baseline, and long lists fade behind a small pill that expands the rest so the card grows with them.

Visitors
Desktop61%
Mobile31%
Tablet8%

Installation

Bar List Card is part of BoardUI Pro.

Dark mode ready - this component follows BoardUI semantic tokens automatically. Set up theme switching.

Pro access

Bar List Card is a Pro component.

Your BoardUI Pro license unlocks this component and all of its source files. Activate your license once, then install it directly into your project with the CLI.

01

Activate your license

Use the key from your Lemon Squeezy purchase email. You only need to do this once per machine.

npx boardui@latest login YOUR_LICENSE_KEY
02

Install the component

The CLI copies the source and resolves every BoardUI and npm dependency for you.

npx boardui@latest add bar-list-card

This component is included in BoardUI Pro

Get BoardUI Pro now and install it right away.

Tabbed lists

tabs is { id, label, items }[]; each item may carry an icon- flags, favicons, anything 16px. Shares are relative to the tab's total, bar widths to its largest item.

Visitors
USUnited States of America29%
INIndia20%
BRBrazil13%
JPJapan9%
TRTürkiye9%
import * as Flags from "country-flag-icons/react/3x2"; <BarListCard metricLabel="Visitors" tabs={[ { id: "countries", label: "Countries", items: [ { label: "United States of America", value: 3120, icon: <Flags.US className="h-3 w-[18px] rounded-[2px]" /> }, { label: "India", value: 2160, icon: <Flags.IN className="h-3 w-[18px] rounded-[2px]" /> }, // … ], }, { id: "sources", label: "Sources", items: [{ label: "Direct", value: 5240 }, /* … */] }, ]} defaultTab="countries" onTabChange={(id) => track("breakdown_tab", { id })}/>

Single list and mono

Pass items + title for one list without tabs, metric="value" to print raw numbers instead of shares, and mono for a single grey ink.

PagesViews
/12,480
/pricing6,210
/components4,880
/blog/launch2,140
Visitors
Desktop61%
Mobile31%
Tablet8%
{/* One list, no tabs - a heading takes the tab strip's place */}<BarListCard title="Pages" metricLabel="Views" metric="value" items={pages} limit={4} /> {/* Single ink, mono grey bars */}<BarListCard mono />