agentsclimarketplace

Dashboard design

Skill fabioc-aloha/Alex_Skill_Mall/plugins/data-analytics/dashboard-design

Dashboard layout patterns, KPI card design, filter architecture, narrative flow through panels, and self-contained HTML generationFrom its SKILL.md

Install
npx -y skills add fabioc-aloha/Alex_Skill_Mall --skill dashboard-design

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

12.4 KB, ~2.4k tokens by cl100k_base, as published. Nobody here has run it

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"

Keep looking

Skills are one crate of 326,750. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.