Dashboard

Dashboard layouts with stat cards, charts, and data tables. Build comprehensive admin interfaces and analytics views.

Overview

Dashboard patterns combine multiple components to create data-rich interfaces. These layouts organize statistics, visualizations, and tabular data in a way that's easy to scan and understand.

Key features:

  • Stat cards using <dl>/<dt>/<dd> for semantic label/value pairs
  • <progress data-type="ring"> for percentage metrics in stat cards
  • Chart placeholder layouts for any visualization library
  • Native <table> styling with <layout-badge> for status and <user-avatar> for identity
  • Responsive grid layouts using data-layout-min for automatic column sizing
  • Consistent spacing and <layout-card>-based organization

Stats Grid Dashboard

A dashboard focused on key metrics displayed in stat cards. Uses <dl>/<dt>/<dd> for semantic markup and <progress data-type="ring"> for the completion percentage.

Stat Card Styles

Charts Dashboard

A dashboard layout with chart placeholders for analytics and data visualization. Uses a responsive grid for chart positioning with compact stat cards at the top.

Chart Placeholder Styles

Data Table Dashboard

A dashboard centered on tabular data with a filter bar, status badges via <layout-badge>, user avatars via <user-avatar>, and row actions. Uses native <table> styling from Vanilla Breeze.

Table Wrapper

Configuration

Dashboard patterns use these layout attributes and components:

Element Attribute Values Description
data-layout="grid" data-layout-min CSS length (e.g. 200px) Minimum column width before wrapping
data-layout="grid" data-layout-gap xs s m l xl Gap between grid items
data-layout="cluster" data-layout-justify start center end between Horizontal distribution
data-layout="cluster" data-layout-align start center end Vertical alignment
data-layout="cluster" data-layout-gap xs s m l xl Gap between items
data-layout="stack" data-layout-gap xs s m l xl 2xl Vertical spacing
layout-card data-padding none s m l xl Card padding
layout-card data-variant elevated outlined ghost Card style
layout-badge data-color success warning error info primary Badge color
layout-badge data-variant subtle outlined Badge style
layout-badge data-size sm lg Badge size
user-avatar data-size xs sm md lg xl Avatar size
progress[data-type="ring"] data-size xs s m l xl Ring size
progress[data-type="ring"] value / max Native attributes Progress value

Usage Notes

  • Semantic stat cards: Use <dl>/<dt>/<dd> for label/value pairs — reset default margins with layout-card dl, layout-card dd { margin: 0 }
  • Native tables: Vanilla Breeze styles <table> elements directly — no custom classes needed. Wrap in .data-table-wrapper for horizontal scrolling on small screens.
  • Loading states: Show skeleton placeholders while data loads to prevent layout shift
  • Responsive layout: The grid automatically adjusts columns based on data-layout-min; test on mobile to ensure usability
  • Chart libraries: Chart placeholders work with any library (Chart.js, D3, ApexCharts, etc.)
  • Semantic colors: Use --color-success for positive trends, --color-error for negative
  • Empty states: Provide helpful empty states when no data is available
  • Accessibility: Ensure tables have proper scope attributes and buttons have aria-label
  • Real-time updates: Consider using subtle animations when stats update dynamically

Related

App Shells

Application shell layouts with navigation

Stats

Stat card patterns and change indicators

Card

Card component with padding and variant options

Badge

Status badges with semantic colors

User Avatar

Avatar component with fallback initials

Icon

SVG icon component with size variants

Progress (Ring Mode)

Native circular progress indicator