dashboard-design
Skill3 starsChanged 6 days agoApache-2.0View on GitHub
SOVA dashboard UI design system and quality guardrails: Catppuccin Mocha dark theme, Tailwind CSS, Jinja2 templates, component macros. Anti-slop rules, visual hierarchy discipline, spacing/motion quality. Auto-activates when creating or modifying dashboard templates, CSS, or JavaScript.
17 other projects use a version of this.
Adopted by
Most recently taken up by
- thensls/nsls-builder-toolkittheir own version, first seen Nov 8, 2026
- dmoreq/agent-grimoiretheir own version, first seen Nov 8, 2026
- matheus-rib1108/meu-kit-claude-codetheir own version, first seen Nov 1, 2026
- oleg494/coding-kittheir own version, first seen Nov 1, 2026
- ArnavPuri/designskillstheir own version, first seen Nov 1, 2026
- shipiit/shipit-ui-designtheir own version, first seen Oct 20, 2026
Used with
Projects with it also use data-visualization and motion-design.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
AnthropicSkilldata-visualization
Create effective data visualizations with Python (matplotlib, seaborn, plotly). Use when building charts, choosing the right chart type for a dataset, creating publication-quality figures, or applying design principles like accessibility and color theory.
Also in 4 projects that use this
soilmassSkillmotion-design
Create animations and motion graphics using industry standards. Use when asked to animate UI elements, create video content, implement transitions, or build motion systems. Implements W3C Design Tokens, Material Design 3 baseline, and Lottie specification compliance.
Also in 3 projects that use this
Other versions17 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 17
- abdiraimov-otabek/dashboard-design-skill★ 410same name
- ArnavPuri/designskills★ 17same name
- YepAPI/skills★ 8same name
- Marvellbrazil/my-agentic-skills★ 4same name
- oleg494/coding-kit★ 3same name
- gmanch94/claude-code-aidlc-template★ 2same name
- valewnrt/design-skills★ 2same name
- tines/skills★ 1same name
- dmoreq/agent-grimoire★ 0same name
- fabioc-aloha/alex-cognitive-architecture★ 0same name
7 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository44 other files it gives its agents.
- AGENTS.mdAGENTS.md
- templates/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- templates/CLAUDE.mdCLAUDE.md
- database-patternsSkill
- design-systemSkill
- design-tasteSkill
- issue-templateSkill
- sova-address-prSkill
- sova-after-mergeSkill
- sova-agent-readinessSkill
- sova-audit-instructionsSkill
- sova-debugSkill
- sova-develop-explainSkill
- sova-develop-fullSkill
- sova-developSkill
- sova-extract-knowledgeSkill
- sova-find-taskSkill
- sova-health-auditSkill
- sova-ingest-reviewSkill
- sova-integrate-prSkill
- sova-issueSkill
- sova-new-featureSkill
- sova-optimize-knowledgeSkill
- sova-prSkill
- sova-rearrange-commitsSkill
- sova-researchSkill
- sova-review-fullSkill
- sova-review-prSkill
- sova-reviewSkill
- sova-simplifySkill
- sova-specSkill
- sova-standupSkill
- sova-statusSkill
- sova-testSkill
- sova-update-docsSkill
- testing-patternsSkill
- visual-auditSkill
- dashboard-designSkill
- database-patternsSkill
- design-tasteSkill
- issue-templateSkill
- testing-patternsSkill
- visual-auditSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. 0 are common, 8 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 16 edited versions we read keep these.
8
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 9
Read this skill BEFORE writing any template HTML, CSS, or frontend JavaScript under sova/dashboard/.
- Distinctive: line 13
Before making changes, read these:
- Distinctive: line 35
If your generated code includes ANY of these, the output fails quality checks:
- Distinctive: line 82
Every page element must have a clear place in the visual hierarchy.
- Distinctive: line 86
Every content section needs exactly 3 levels of visual weight:
- Distinctive: line 92
If everything is the same size and weight, nothing stands out.
- Very specific: line 115
Never use arbitrary spacing values (p-[13px], gap-[7px]).
- Distinctive: line 126
Every clickable element must have a visible hover state change
- Very specific: line 128
All nested interactive elements inside clickable containers must call event.stopPropagation()
- Very specific: line 130
Use data-tooltip="text" for hover context (not native title)
- Distinctive: line 159
Never use semantic colors on UI chrome (only on data indicators)
- Very specific: line 208
Never set overflow: hidden|auto|scroll on containers with absolutely-positioned children (tooltips, popovers, notification panel).
- Distinctive: line 212
Before delivering UI work:
“Common” is measured: kept by at least 6 in 10 of the 16 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
SOVA Dashboard Design System + Quality Protocol
Read this skill BEFORE writing any template HTML, CSS, or frontend JavaScript under sova/dashboard/. It combines the design system reference with quality-of-execution rules that prevent generic AI output.
0. Reference Files
Before making changes, read these:
sova/dashboard/static/style.css: CSS variables (Catppuccin Mocha), component classessova/dashboard/templates/_head.html: shared Tailwind config (centralized)sova/dashboard/templates/_icons.html: SVG icon macro (Heroicons v2 outline)sova/dashboard/templates/_components.html: Jinja2 component macros (stat_card, card_header)docs/design-system.md: full design system reference
1. Design Dials
Three dials control output. SOVA defaults (do not change without explicit user instruction):
| Dial | Value | Effect |
| DESIGN_VARIANCE | 3 (Predictable) | Symmetrical grids, equal paddings. Developers need trust, not surprise. |
| MOTION_INTENSITY | 2 (Static) | CSS :hover/:focus only. No scroll-triggered reveals, no auto-animations. Agent status data should feel stable. |
| VISUAL_DENSITY | 6 (Dense App) | Tighter spacing (p-4 to p-8). Dashboard is information-dense by nature. |
These dials mean: no masonry layouts, no parallax, no staggered scroll reveals, no ambient background motion.
2. Anti-Slop Rules (Banned Patterns)
If your generated code includes ANY of these, the output fails quality checks:
Layout
- Generic 3-equal-column grids with identical cards (the "SaaS landing page" look)
- Cards with no visual hierarchy: all same padding, same font size, same weight
- Full-width sections with no constraint (content stays within the
ml-64 p-8main area) - Centered text blocks wider than
max-w-2xl
Color
- Any color outside Catppuccin Mocha palette (no hardcoded hex, rgb, hsl)
- Gradient backgrounds on containers or sections (SOVA is flat, not glassmorphic)
- Random opacity values: use the established scale:
text-gray-500for muted,/30for borders,/20for subtle fills,/10for faint backgrounds rgba(0,0,0,...)or similar generic shadows: use Catppuccin surface colors
Typography
- More than the 6 established type roles (page heading, section heading, label, body, caption, data)
- Font sizes below 12px (
text-xsis the minimum) font-boldon body text or captions (bold is for headings and data values only)- ALL-CAPS text except for badge labels and
text-xs uppercase tracking-widereyebrow tags - Mixing font weights within the same visual role
Components
- Inventing new button variants beyond
.sova-btn-primary|success|danger|warning - Using Tailwind shadow classes (
shadow-md,shadow-lg): use border-based depth - Inline SVGs for icons that exist in
_icons.html(use{{ icon("name", "w-5 h-5") }}) - Native browser elements without
.sova-input,.sova-tableclasses - ASCII characters as icons (arrows, dots, checks): use Heroicon SVGs
Motion
transition: all(always specify properties:transition-colors,transition-opacity)linearorease-in-outon interactive elements (useeaseortransition-colors)- Scroll-triggered animations or
IntersectionObserverreveals animationon content elements (only for loaders andanimate-pulsestatus indicators)- Transition durations longer than 300ms on interactive elements
Content
- Placeholder text ("Lorem ipsum", "John Doe")
- AI copywriting cliches ("Seamless", "Elevate", "Unleash", "Next-Gen")
- Emojis anywhere in templates, code, or UI text
Jinja2/JS
{{ variable }}withoutescapeHtml()in JS string contexts- Inline
<script>without being in the page's main script block innerHTMLwith user-controlled data without escaping
3. Visual Hierarchy Rules
Every page element must have a clear place in the visual hierarchy.
The 3-Level Rule
Every content section needs exactly 3 levels of visual weight:
- Primary: the thing the user came to see (stat value, agent status, PR state). Largest, boldest, highest contrast.
- Secondary: context and labels (stat titles, column headers, issue titles). Medium size, medium weight.
- Tertiary: metadata and actions (timestamps, badges, action buttons). Smallest, lightest, most muted.
If everything is the same size and weight, nothing stands out. If there are more than 3 levels, the hierarchy is noisy.
Applying to SOVA Components
| Component | Primary | Secondary | Tertiary |
| Stat card | .sova-stat-value (text-2xl, font-semibold) | .sova-stat-label (text-xs, uppercase) | .sova-stat-detail (text-xs, text-gray-500) |
| Task row | Issue title (text-sm, text-white) | Issue number (text-xs, font-bold, text-accent) | Badges, timestamps (text-xs, muted) |
| Agent card | Role + issue (font-semibold) | Status + step (text-sm) | Cost, duration (text-xs, text-gray-500) |
| Table | Data cells (text-sm) | Column headers (text-xs, font-medium, uppercase) | Action icons (text-xs, muted) |
Spacing Hierarchy
Spacing must follow a consistent scale:
| Context | Gap | Usage |
| Between page sections | mb-8 | Major sections on a page |
| Between cards | gap-4 to gap-6 | Card grids, stat rows |
| Inside cards | p-4 to p-6 | Card content padding |
| Between list items | gap-2 to gap-3 | Task rows, agent cards |
| Between related items | gap-1 to gap-2 | Badge groups, icon+text |
Never use arbitrary spacing values (p-[13px], gap-[7px]). Round to the nearest standard value.
4. Interaction Quality
With MOTION_INTENSITY at 2 (Static), interactions should be:
- Hover: subtle background shift (
hover:bg-surface-hover),transition-colors150ms - Active/pressed: slightly darker background
- Focus: accent ring for keyboard navigation
- Disabled:
opacity-50,cursor-not-allowed,pointer-events-none
Clickable Element Rules
- Every clickable element must have a visible hover state change
cursor-pointeron all non-link clickable elements- All nested interactive elements inside clickable containers must call
event.stopPropagation() - Links to external sites (GitHub) must use
target="_blank" rel="noopener" - Use
data-tooltip="text"for hover context (not nativetitle)
Polling & Dynamic Content
- Polling
innerHTMLrefresh kills open dropdowns: track interactive state flags, skip re-renders while menus are open - Clear stale UI on negative polling path (state gone = clear innerHTML or add
hidden) parseFloat(value || 0).toFixed(N)for all API cost fields (Decimal serializes as string)
5. Color System Quick Reference
Catppuccin Mocha Palette
| Token | Usage |
bg-surface / --ctp-mantle | Page background |
bg-surface-card / --ctp-base | Card background |
bg-surface-hover / --ctp-surface0 | Hover states |
text-accent / --ctp-blue | Links, primary actions |
text-accent-green / --ctp-green | Success, done |
text-accent-red / --ctp-red | Error, failed |
text-accent-yellow / --ctp-yellow | Warning, running |
text-accent-purple / --ctp-mauve | Metadata, researcher |
text-gray-500 / --ctp-overlay1 | Muted text |
Semantic Rules
- Blue = primary accent, links, developer role
- Green = success, done states, money
- Red = error, failed, danger actions
- Yellow/peach = warning, running, action needed
- Purple/mauve = metadata, researcher role
- Never use semantic colors on UI chrome (only on data indicators)
6. Component Quick Reference
Buttons
.sova-btn .sova-btn-primary|success|danger|warning: never invent variants
Cards
.sova-card container, .sova-card-header or card_header() macro
Stats
.sova-stat + .sova-stat-label + .sova-stat-value or stat_card() macro
Capacity and quota meters
Use the fuel-gauge model: a full bar means all capacity is available, an empty bar means it is depleted. Compute the fill as remaining / total * 100, never consumed / total * 100, and label it "X of Y available" or "X remaining", not "X / Y consumed". A filling-up bar next to "0 / 4 reviews" reads as contradictory (a full green bar with nothing used). Applies to every remaining-capacity widget: CodeRabbit quota, CI budget, agent slots.
Icons
{{ icon("name", "w-5 h-5") }}: never use ASCII characters for icons
Badges
rounded-full for read-only state indicators (pills), rounded for clickable buttons
Tooltips
data-tooltip="text" with optional data-tooltip-pos="top|bottom|left|right"
Notifications
- Ephemeral:
showToast(message, type): info, warning, error, success - Persistent:
_addNotification(message, type)
Confirmation Dialogs
sovaConfirm(message, opts): returns Promise. Use confirmClass: 'danger' for destructive actions.
7. AI-Tell Detection
Common patterns that reveal AI-generated code:
| Tell | Fix |
Side-stripe border-l-4 border-accent on cards | Remove; use heading weight for hierarchy |
Gradient text bg-clip-text text-transparent | Use solid text-accent |
Ghost-card border-dashed as "add new" placeholder | Use a proper .sova-btn |
| Identical triplet cards in a row | Vary sizes, use stat cards, or merge into a list |
| Rainbow tags (4+ hues in one row) | Use Catppuccin semantic colors only |
Over-rounded rounded-3xl on cards | rounded-xl is the SOVA standard |
Gratuitous <hr> dividers everywhere | Use spacing (margin/padding) for separation |
Generic transition: all on everything | Specify: transition-colors, transition-opacity |
8. Overflow Rule
Never set overflow: hidden|auto|scroll on containers with absolutely-positioned children (tooltips, popovers, notification panel). CSS computes the other axis to auto, clipping popouts. Use max-width and opacity transitions on individual children instead.
9. Pre-Flight Checklist
Before delivering UI work:
- All colors reference Catppuccin CSS variables (no hardcoded hex)
- Buttons use
.sova-btn-*variants only - Cards use
.sova-cardor equivalent - Typography follows the 6-role scale
- Icons use the
_icons.htmlmacro - No text smaller than
text-xs(12px) - Every content section has 3 levels of visual weight
- Spacing uses standard Tailwind increments
- Every clickable element has visible hover state
- Transitions specify properties (not
transition: all) - No scroll-triggered animations
- Tooltips use
data-tooltip, not nativetitle - No AI-tell patterns (side-stripes, gradient text, identical triplets)
- No emojis, no placeholder text, no AI cliches
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

