Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
fabioc-aloha avatar

Dashboard Design

  • 1 installs
  • 3 repo stars
  • Updated August 5, 2026
  • fabioc-aloha/alex_skill_mall

Provides dashboard layout patterns, KPI card design, filter architecture, and narrative panel flow for generating self-contained HTML dashboards.

About

Guides dashboard design through layout patterns, KPI card structure, filter architecture, and narrative flow, producing self-contained HTML output. Used when building analytics dashboards that need to read as a coherent data story.

  • KPI card and filter architecture patterns
  • Depends on data-visualization and data-analysis for content

Dashboard Design by the numbers

  • 1 all-time installs (skills.sh)
  • Ranked #1,609 of 1,880 Design & UI/UX skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/fabioc-aloha/alex_skill_mall --skill dashboard-design

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1
repo stars3
Last updatedAugust 5, 2026
Repositoryfabioc-aloha/alex_skill_mall

What it does

Provides dashboard layout patterns, KPI card design, filter architecture, and narrative panel flow for generating self-contained HTML dashboards.

Files

SKILL.mdMarkdownGitHub ↗

Dashboard Design

PropertyValue
DomainData Analytics
CategoryDashboard Architecture & Layout
ComponentsSKILL.md + dashboard-design.instructions.md + dashboard.prompt.md
Dependsdata-visualization (chart content), data-analysis (KPIs and segments)
Staleness Watch: See EXTERNAL-API-REGISTRY.md for source URLs and recheck cadence

Overview

Design dashboards that tell stories through layout. A dashboard is not a collection of charts -- it's a guided reading experience where position, size, and interaction design control what the viewer understands and in what order.

The cardinal rule: reading order = story order. KPIs answer "what?", charts answer "why?", tables answer "how much?", and drill-downs answer "show me more."

Module 1: Layout Patterns

PatternBest ForReading FlowUse When
Inverted PyramidExecutive dashboardsKPIs → hero chart → supporting → detailAudience scans from top, drills as needed
Z-PatternMarketing / consumerTop-left → top-right → bottom-left → endTwo primary metrics side-by-side
F-PatternData-heavy analyticsLeft column scanned top-down, right detailDense detail dashboards for analysts
Hub-and-SpokeExploration dashboardsCentral question, surrounding perspectivesWhen multiple equally important views exist
Narrative ScrollData stories / reportsTop-to-bottom linear readingSelf-contained HTML stories with guided arc

Reference Pattern: Inverted Pyramid (from population.html)

┌────────────────────────────────────────────────────┐
│ HEADER: Title + subtitle + badge                   │
├────────────────────────────────────────────────────┤
│ KPI ROW: 3-6 cards (auto-fit grid)                 │
├────────────────────────────────────────────────────┤
│ CONTROLS: Search + filter buttons                  │
├────────────────────────────────────────────────────┤
│ HERO CHART: Full-width, clickable                  │
├───────────────────────┬────────────────────────────┤
│ SUPPORTING CHART 1    │ SUPPORTING CHART 2         │
├───────────────────────┴────────────────────────────┤
│ DATA TABLE: Sortable, ranked, inline indicators    │
├────────────────────────────────────────────────────┤
│ FOOTER: Data source + attribution + last updated   │
└────────────────────────────────────────────────────┘

         ┌── DRILL-DOWN MODAL ──┐
         │ Detail stats grid     │
         │ Horizontal bar        │
         │ Detail table          │
         └───────────────────────┘

Module 2: KPI Card Design

Each KPI card follows the metric + delta + context pattern:

ElementPurposeExample
Primary valueThe headline number"334M"
LabelWhat it measures"Total Population"
DeltaChange indicator (arrow + %)"↑ 2.1% YoY"
SparklineTrend miniature (optional)Tiny 30-day line
SubtitleTime range or source"2024 Census estimate"
Icon/EmojiVisual anchor"👥"
Accent colorCategory signalBrand purple

KPI Selection Rules

RuleWhy
3-6 KPIs maximumMore overwhelms; fewer under-informs
Each answers a different "what?"Redundant KPIs waste prime real estate
Include at least one deltaStatic numbers lack context
Lead with the most importantTop-left KPI gets the most attention
Color thresholds if applicableGreen/amber/red for status-driven metrics

Module 3: Filter Architecture

Filter TypePlacementBehaviorExample
Global filterTop, below KPIsAffects all charts and tableRegion buttons, date range
Chart filterInline on chartAffects only parent chartSort toggle, limit slider
Cross-filterClick on chartHighlights related data elsewhereClick bar → table highlights
Drill-throughClick on itemOpens detail modal or new viewClick state → city breakdown
SearchTop controlsText filter across primary columnSearch box for state names

Filter Design Rules

1. Global filters visible at all times (sticky if page scrolls) 2. Active filter state clearly indicated (colored buttons, badges) 3. "All" or "Reset" always available as first option 4. Filter changes animate smoothly (transition: 300ms) 5. Filter state reflected in chart titles or subtitles

Module 4: Narrative Flow

The dashboard tells a story through panel arrangement:

LayerComponentAnswersTime to Absorb
1KPI cards"What's the story?"2 seconds
2Hero chart"Show me the shape"10 seconds
3Supporting charts"What else?"15 seconds
4Data table"Give me the details"As needed
5Drill-down modal"Tell me more about X"On demand

Progressive Disclosure

  • Above the fold: KPIs + hero chart (must convey the main story without scrolling)
  • Below the fold: Supporting views + table (deeper evidence)
  • On demand: Drill-down modals, tooltips, expandable rows

Module 5: Self-Contained HTML Pattern

Every dashboard outputs as a single HTML file:

RequirementImplementation
Zero build stepOpen in browser, no npm/webpack/build
Embedded dataJavaScript arrays/objects, not external API calls
Single CDN dependencyChart.js 4.x via jsdelivr
ResponsiveCSS grid with auto-fit, minmax, media queries
ThemeableCSS custom properties for colors, spacing, fonts
AccessibleSemantic HTML, ARIA labels, alt text on charts
Print-friendly@media print styles for clean output

CSS Custom Properties Template

:root {
  --bg-primary: #0f0f23;
  --bg-card: #1a1a2e;
  --text-primary: #e8e8f0;
  --text-secondary: #888;
  --accent-1: #6366f1;
  --accent-2: #3b82f6;
  --accent-3: #10b981;
  --accent-4: #f59e0b;
  --accent-5: #ec4899;
  --border-radius: 12px;
  --shadow: 0 2px 8px rgba(0,0,0,0.3);
  --transition: 0.3s ease;
}

Module 6: Platform Targets

PlatformOutput FormatKey Differences
HTML (primary)Self-containedChart.js + Canvas, embedded data
Power BIReport specDAX measures, M queries, visual config
StreamlitPython appPlotly charts, st.columns, st.metric
ReactComponent treeRecharts/Nivo, state management, props

Default to HTML unless the user specifies otherwise.

Module 7: Chart Grid Pattern (from visuals.html)

For dashboards that showcase multiple chart types or let users explore:

ComponentPurposeImplementation
Category filterShow charts by categoryButton row with colored states
Card gridVisual index of available chartsCSS grid, auto-fit, minmax(280px)
Mini previewQuick visual (130px height canvas)Chart.js render at small scale
Metadata badges"Best for", "Data type"Tags below chart preview
Modal detailFull chart + metadata + examplesFixed overlay, arrow key nav

Module 8: Interaction Patterns

PatternTriggerEffect
Hover tooltipMouse over barShow exact value + label
Click drill-downClick chart itemOpen modal with detail view
Filter selectClick buttonFilter all charts to selection
Sort toggleClick column headRe-sort table ascending/descending
Search highlightType in searchFade non-matching, highlight match
Responsive collapseScreen < 768pxStack columns, hide secondary charts

Module 9: 5-Visual Rule (VT BIT 5424)

Executive dashboards follow the 5-Visual Rule:

1. 1 KPI row (3-6 metric cards) 2. 1 hero chart (the main story) 3. 2 supporting charts (different lenses on same data) 4. 1 data table (detail on demand)

Maximum 5 visual elements above the fold. More than 5 creates cognitive overload for executive audiences. Analysts get more through drill-down, not more panels.

Anti-Patterns

Anti-PatternProblemFix
Chart soupToo many charts with no narrative connectionApply 5-Visual Rule, add story arc
Dashboard as databaseEvery field shown "just in case"Show only what answers the KPI questions
Inconsistent colorsSame category = different color across chartsUse semantic color map (region → color)
No drill-down escapeModal/detail has no clear close/backAlways show close button + ESC handler
Tiny chartsCramming 10 charts into one screenFewer, larger charts with drill paths
Static title"Revenue Dashboard""Revenue grew 34% -- but growth is slowing"

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.