Agent skill

Data-Dense Dashboard Designer

by plugin87 in plugin87/ux-ui-agent-skills

Lays out dense analytics or trading-terminal screens in banded sections with hand-drawn SVG charts, instead of a wall of identical stat cards.

MITAuto-check passedFrontend & Design

Install Data-Dense Dashboard Designer

skills CLI
$ npx skills add plugin87/ux-ui-agent-skills --skill data-dashboard -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install plugin87/ux-ui-agent-skills data-dashboard --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/plugin87/ux-ui-agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/data-dashboard .claude/skills/data-dashboard && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
data-dashboard
GitHub stars
1.5k
Token cost
~2.6k tokens
SKILL.md length
1,420 words
Files
1
Skills in repo
23
Repo updated
First seen
Licence
MIT

At a glance

Lays out dense analytics or trading-terminal screens in banded sections with hand-drawn SVG charts, instead of a wall of identical stat cards.

  • Works in 7 steps: Decide the brief before drawing anything → Layout sequence, not a grid of equal cards → The chart inventory → …
  • Building an analytics console or trading-terminal screen
  • SKILL.md covers 1. Decide the brief before…, 2. Layout sequence, not a grid…, 3. The chart inventory and 4. Domain correctness is part…, plus 3 more sections
  • Calls node and npx

What it does

This skill opens by checking that a parent design-token kit is installed, then composes the page in five bands: a hero metric with its own chart, two or three secondary figures, three different chart shapes side by side, a real sortable table with a feed, and a closing footer line, all on a twelve-column grid with explicit spans rather than an auto-fit card grid.

Every chart type, from candlestick and depth to donut, gauge, sparkline, heatmap, and order book, is plain inline SVG sized by CSS and filled from design-token chart colors, with an accessibility contract per chart type and attention to the contrast traps that only surface in dark mode.

When your agent uses it

  • Building an analytics console or trading-terminal screen
  • Laying out a data-heavy monitoring dashboard
  • Choosing which chart shape fits a given metric

Example prompts

  • “Design a trading terminal with a candlestick chart and an order book panel.”
  • “Lay out an analytics dashboard with a hero revenue metric and a donut breakdown.”
  • “Check this dashboard for dark-mode contrast problems.”

Requirements

  • The parent design-token kit installed alongside this skill

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Decide the brief before drawing anything
  2. Layout sequence, not a grid of equal cards
  3. The chart inventory
  4. Domain correctness is part of craft
  5. Accessibility contract, per chart
  6. The traps that only appear when you measure
  7. The loop

What it can do on your machine

Read from SKILL.md and the folder at commit 8e73a21. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • node
    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Data-Dense Dashboard Designer loads about 2.6k tokens when it runs. Until then it costs about 136 tokens; SKILL.md has 1,420 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~136
When it runs · the whole SKILL.md, loaded when a task matches
~2.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from plugin87/ux-ui-agent-skills at commit 8e73a21, republished under its MIT licence (© plugin87). 1,420 words, ~2,578 tokens.

Download SKILL.mdSave it as .claude/skills/data-dashboard/SKILL.md (or your agent's skills folder).
name
data-dashboard
description
Build a dense, data-heavy screen - an analytics console or a trading terminal - with real charts drawn from tokens: candlestick, volume, depth, stacked area, waterfall, scatter, correlation matrix, donut, gauge, sparklines, heatmaps and order books. Use when the request is a dashboard, terminal, monitoring view, data console, or any screen whose job is to show many numbers at once. Covers the layout sequence, the SVG geometry, the accessibility contract per chart type, and the contrast traps that only appear in dark mode.

Skill: Data dashboard

Step 0 — is the kit here? This skill reads files from the kit. Check once: ls ${CLAUDE_SKILL_DIR}/../../../tokens >/dev/null 2>&1 && echo KIT_OK || echo KIT_MISSING On KIT_MISSING only the skill folders were installed, which is what npx skills add does. Say so plainly, point the user at npx ux-ui-agent-skills init or the plugin install, and stop. Do not guess the contents of a file you could not open.

A dashboard is the hardest screen to keep honest: it is dense, it is mostly non-text, and almost every default makes it worse. This is the recipe that produced ${CLAUDE_SKILL_DIR}/../../../examples/showcase/ and ${CLAUDE_SKILL_DIR}/../../../examples/terminal/, both of which pass every gate in both themes.

1. Decide the brief before drawing anything

Answer these in one line each, or /grill-me them out of the user:

  • Who reads this, and what decision do they make from it? A revenue console for an operator and a trading desk for a dealer look nothing alike.
  • What is the one number that leads? A dashboard without a lead is a wall.
  • What is the update cadence? Hourly figures get a "last run" line. Live figures get a tape and a timestamp per row.
  • How dense is honest? A terminal earns 12 panels. A weekly report does not.

2. Layout sequence, not a grid of equal cards

Four equal stat cards is the single loudest tell that nobody designed this. Compose in bands, each a different shape:

BandContentWhy
1Hero metric at 3x body size + its own chart, spanning most of the widthThe eye lands once
2Two or three secondary figures, stacked or narrowQuiet by construction
3Three different chart shapes side by side (donut, ranked bars, sparklines)Variety reads as intent
4A table that really sorts, plus a feed or logDetail after summary
5A footer line that ends the pageA page must end on purpose

Use a 12-column grid with explicit spans (span 8 / span 4), collapsing to 6 then 1. Never repeat(auto-fit, …) for the primary bands - it produces exactly the equal-card wall you are avoiding.

3. The chart inventory

All of these are plain inline SVG with viewBox, sized by CSS, filled from --color-chart-*. No chart library, no runtime dependency.

ChartGeometryUse it for
Bar / column<rect> per bucket, rx for a soft cornerDiscrete periods
Candlestick<line> wick + <rect> body per period, class by up/downOHLC price
VolumeBars under the price chart, same x-scale, opacity:.45Conviction behind a move
Moving average<polyline> over the candles, 2px, round joinsTrend through noise
Line / sparkline<polyline>, pathLength="1" for a draw animationTrend in a cell
Area / stacked area<path> per band: forward along the top, reverse along the previous baseline, closeComposition over time
DepthTwo cumulative area paths mirrored around the midBook liquidity
WaterfallFloating <rect> per step + dashed connectors between levelsAttribution
Donut<circle> with stroke-dasharray and rotate() per segmentShare of a whole, 3-5 slices
Radial gaugeSame trick, stroke-linecap:round, 270-degree sweepOne value against a limit
Scatter / bubble<circle>, radius = third dimensionTwo measures plus weight
Correlation matrixHTML table, cell tint via color-mixPairwise relationships
HeatmapHTML table or <rect> grid, tint by valueCohorts, calendars
Order bookHTML table with a depth bar per rowBids and asks

Generate the geometry, do not hand-place it. Write a small deterministic script (a seeded walk) that emits the SVG elements, then paste the output in. Hand-typed coordinates drift and cannot be regenerated.

4. Domain correctness is part of craft

Gates cannot catch a chart that is drawn beautifully and means nothing. Check by hand:

  • A correlation matrix is symmetric and its diagonal is exactly 1. Random values in both triangles is an instant tell to anyone who reads one for a living.
  • A stacked area sums to the total; bands must not cross or leave gaps. The usual bug is reversing the baseline by index instead of by coordinate, which shows as dark wedges between bands.
  • A waterfall needs connectors, and the closing bar must equal opening plus the steps.
  • Depth rises away from the mid on both sides; it never falls.
  • A donut whose segments do not total the whole is a pie chart lying.

5. Accessibility contract, per chart

  • Every SVG gets role="img" plus either aria-label or <title>+<desc> referenced by aria-labelledby. Say what the chart shows, not that it is a chart: "Range 182.06 to 200.10, closing at 187.84" beats "price chart".
  • Never encode meaning in colour alone. Green with a + and an arrow; red with a -. Up and down also carry a word in the table cell.
  • Tables get <caption> (use .sr-only when the panel header already says it), scope="col" / scope="row", and aria-sort only if clicking really sorts.
  • Sortable headers, range tabs and theme toggles all declare state - so they must change it on a real click. verify_interactive.mjs clicks them and checks.
Show full SKILL.md (608 more words)Show less

6. The traps that only appear when you measure

Every one of these was found on a screen that looked finished. The first group a gate caught; the ones marked "no gate sees it" were caught by opening the screenshot and looking, which is why that step is not optional:

  • A chart palette is not a text palette. White initials on --color-chart-4 measured 2.65:1 in dark. Chart colours are tuned for large filled shapes.
  • Success green as text on a raised surface measured 4.43:1 - four hundredths short of AA. Put the colour on the icon and the sign; keep the text neutral.
  • axe must not run mid-transition. Disable transitions before flipping the theme, or contrast is sampled while colours are still moving.
  • Dense tables do not fit a phone. Drop the column a phone can lose - the sparkline, the derived value - in a media query, and say so in a comment. Do not shrink type below the scale.
  • Stagger comes from a token: calc(var(--duration-fast) * 0.6 * n), never a typed millisecond.
  • A grid row stretches its items. Two fields side by side where only one has a hint: the hint-less control grows to match the taller column and the two inputs end up different heights. Set align-content: start on the field and an explicit block-size on the control. Measure the heights in the render - the difference is obvious in a screenshot and invisible in the markup.
  • The same stretch hits whole panels, and no gate sees it. A row is as tall as its tallest panel, and the short one packs its content to the top and ends in a bordered void - a heatmap panel with 130px of nothing under the caption, a right column that stops two panels short of the map beside it. Every panel in a row has to say which it is: one child absorbs the slack (grid-template-rows:auto minmax(0,1fr), and that child's own tracks go minmax(<min>,1fr) so its rows grow too), or the rows share it out (align-content:space-between), or the short column earns another panel. Screenshot the row and look at the bottom edge of each panel; this never shows up in the markup.
  • auto-fit silently drops a column, and no gate sees it. Three gauges in a panel about 340px wide with minmax(min(100%,7rem),1fr) resolved to two tracks and orphaned the third beside an empty cell. When the count is fixed and meaningful, write repeat(3,minmax(0,1fr)) and give narrow widths their own rule.
  • A category chart needs its categories on the page, and no gate sees it. A Pareto of five defect types whose names live only in the aria-label is a row of anonymous bars to everyone looking at it. Put the labels under the bars - lay the plot out on an even pitch inside its viewBox so a matching grid of labels lines up without a second coordinate system.
  • An .sr-only needs a positioned ancestor. Inside a scroller it otherwise resolves against the initial containing block, lands outside the viewport, and inflates the document's scroll width by hundreds of pixels.
  • A zero-area element that only has area while it animates reads as content lost under prefers-reduced-motion. Give a radar sweep a wedge, not a 1px line.
  • Never reuse a class name across layout and colour. .c4 as both a four-column span and the fourth chart colour painted an entire panel pink.

7. The loop

bash
node ${CLAUDE_SKILL_DIR}/../../../scripts/measure_render.mjs <file> && node ${CLAUDE_SKILL_DIR}/../../../scripts/measure_render.mjs --dark <file>
node ${CLAUDE_SKILL_DIR}/../../../scripts/verify_states.mjs <file>  && node ${CLAUDE_SKILL_DIR}/../../../scripts/axe_audit.mjs --dark <file>
node ${CLAUDE_SKILL_DIR}/../../../scripts/verify_responsive.mjs <file> --scale=1.25
node ${CLAUDE_SKILL_DIR}/../../../scripts/verify_interactive.mjs <file>
node ${CLAUDE_SKILL_DIR}/../../../scripts/slop_tells.mjs --strict <file> && node ${CLAUDE_SKILL_DIR}/../../../scripts/taste_audit.mjs --strict <file>

Then screenshot it and look, in both themes, at 1600 and 390 wide. The gates will pass a chart that is drawn wrong. A correlation matrix that is not symmetric is 16/16 green and still embarrassing.

Worked references, both gate-verified: ${CLAUDE_SKILL_DIR}/../../../examples/showcase/index.html (revenue console) and ${CLAUDE_SKILL_DIR}/../../../examples/terminal/index.html (trading desk, ten chart types).

© plugin87, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/data-dashboard of plugin87/ux-ui-agent-skills.

Open the folder on GitHubat commit 8e73a21

Compare with similar skills

Data-Dense Dashboard Designer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Data-Dense Dashboard Designer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Data-Dense Dashboard Designer this skillplugin87/ux-ui-agent-skills1.5k—~2.6kAutomated safety check: PassMIT
Blog ChartAgriciDaniel/claude-blog2.3k1 repos~2.4kAutomated safety check: PassMIT
Blog ChartInfrasity-Labs/dev-gtm-claude-skills139—~2.1kAutomated safety check: PassMIT
Color Auditrome-os/rome725—~2.7kAutomated safety check: PassMIT
Ant Designkqcoxn/MaaPipelineEditor4081 repos~1.1kAutomated safety check: PassMIT
Better Colorstrycompai/crm11k—~1.9kAutomated safety check: PassMIT

Similar skills

  • Blog Chart

    AgriciDaniel/claude-blog

    Generate dark-mode-compatible inline SVG data visualization charts for blog posts.

    2.3k GitHub starsUsed in 1 repo~2.4k tokens
    Frontend & DesignAuto-check passed
  • Blog Chart

    Infrasity-Labs/dev-gtm-claude-skills

    Generate dark-mode-compatible inline SVG data visualization charts for blog posts.

    139 GitHub stars~2.1k tokensUpdated 3 mo ago
    Frontend & DesignAuto-check passed
  • Color Audit

    rome-os/rome

    Audit a design system's color palette against measurable color-science disciplines — WCAG/APCA contrast of declared token pairs, perceptual (OKLCH) ramp uniformity, color-blindness safety of…

    725 GitHub stars~2.7k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Ant Design

    kqcoxn/MaaPipelineEditor

    Decision guide for antd 6.x, Ant Design Pro 5/ProComponents, Ant Design X v2, and the offline @ant-design/cli.

    408 GitHub starsUsed in 1 repo~1.1k tokens
    Frontend & DesignAuto-check passed
  • Better Colors

    trycompai/crm

    OKLCH color space and color usage for web projects. An agent skill from trycompai/crm.

    11k GitHub stars~1.9k tokensUpdated 27 days ago
    Frontend & DesignAuto-check passed
  • Material Design 3 UI/UX Guide

    skydashnet/material-design-3-ui-skill

    Guides designing, reviewing or implementing interfaces that follow Google's Material Design 3 system: semantic tokens, component states, adaptive layout and accessibility.

    130 GitHub stars~3k tokensUpdated 7 days ago
    Frontend & DesignAuto-check passed

More from plugin87/ux-ui-agent-skills

All 23 skills in this repo
  • UI Component Spec Designer

    plugin87/ux-ui-agent-skills

    Writes a complete UI component spec with anatomy, variants, sizes, eight interaction states, design-token mapping and accessibility notes before or alongside code.

    1.5k GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Design Project Scaffold

    plugin87/ux-ui-agent-skills

    Creates a new design-product project from the kit's product-design template, then installs the engine folders and the Playwright dependency that the quality gates need.

    1.5k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Accessibility Audit

    plugin87/ux-ui-agent-skills

    Audits a UI or design against WCAG 2.2 and ARIA patterns and returns findings with the criterion, severity and a specific fix for each.

    1.5k GitHub stars~542 tokensUpdated today
    Auto-check passed
  • Apply Aesthetic

    plugin87/ux-ui-agent-skills

    Applies a chosen visual direction, an archetype or one of 138 named design systems, by remapping design tokens, then checks contrast before it finishes.

    1.5k GitHub stars~597 tokensUpdated today
    Auto-check passed
  • Brand Kit Design Tokens

    plugin87/ux-ui-agent-skills

    Builds a from-scratch brand design system as three-tier DTCG tokens plus one theme.css with light and dark modes, checked against WCAG contrast rules.

    1.5k GitHub stars~809 tokensUpdated today
    Auto-check passed
  • Design Code for Any Framework

    plugin87/ux-ui-agent-skills

    Generates complete, accessible, token-driven UI component code for a chosen framework such as React with Tailwind, SwiftUI, Vue, Flutter or Jetpack Compose.

    1.5k GitHub stars~1.7k tokensUpdated today
    Auto-check passed

Questions about Data-Dense Dashboard Designer

What does Data-Dense Dashboard Designer do?

Lays out dense analytics or trading-terminal screens in banded sections with hand-drawn SVG charts, instead of a wall of identical stat cards. This skill opens by checking that a parent design-token kit is installed, then composes the page in five bands: a hero metric with its own chart, two or three secondary figures, three different chart shapes side by side, a real sortable table with a feed, and a closing footer line, all on a twelve-column grid with explicit spans rather than an auto-fit card grid.

When should I use Data-Dense Dashboard Designer?

Data-Dense Dashboard Designer fits situations like: building an analytics console or trading-terminal screen; laying out a data-heavy monitoring dashboard; choosing which chart shape fits a given metric.

How do I install Data-Dense Dashboard Designer in Claude Code?

Run `npx skills add plugin87/ux-ui-agent-skills --skill data-dashboard -a claude-code`. Or copy the skill folder (.claude/skills/data-dashboard in plugin87/ux-ui-agent-skills) into .claude/skills/data-dashboard in your project. Claude Code loads it when a task matches its description.

How do I install Data-Dense Dashboard Designer in Codex?

Run `npx skills add plugin87/ux-ui-agent-skills --skill data-dashboard -a codex`. Or copy the skill folder (.claude/skills/data-dashboard in plugin87/ux-ui-agent-skills) into .agents/skills/data-dashboard in your project. Codex loads it when a task matches its description.

Can I use Data-Dense Dashboard Designer in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add plugin87/ux-ui-agent-skills --skill data-dashboard -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/data-dashboard, .gemini/skills/data-dashboard, .github/skills/data-dashboard and .opencode/skills/data-dashboard in your project.

What does Data-Dense Dashboard Designer need to run?

Going by SKILL.md and its folder, Data-Dense Dashboard Designer needs the command-line tools its instructions call (node and npx). Our summary lists: The parent design-token kit installed alongside this skill.

Does Data-Dense Dashboard Designer access the network?

SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Data-Dense Dashboard Designer safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Data-Dense Dashboard Designer use?

Data-Dense Dashboard Designer is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Data-Dense Dashboard Designer use?

About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Data-Dense Dashboard Designer?

Skills that share tags, products or a category with Data-Dense Dashboard Designer: Blog Chart (AgriciDaniel/claude-blog, 2.3k stars), Blog Chart (Infrasity-Labs/dev-gtm-claude-skills, 139 stars), Color Audit (rome-os/rome, 725 stars) and Ant Design (kqcoxn/MaaPipelineEditor, 408 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Data-Dense Dashboard Designer?

plugin87 (a GitHub user) maintains it in plugin87/ux-ui-agent-skills, which has 1,546 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 8, 2026.

Source: plugin87/ux-ui-agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.