algorithmic-color-pale…
Derive a full UI palette from one or two brand colours — state variants, brand-tinted greys, semantic colours. Use when building…
Match information density to platform and user type. Use when designing data tables, dashboards or toolbars, or adapting a desktop product for mobile.
Claude Code
$ npx -y skills add dembrandt/dembrandt-skills --skill ui-density --agent claude-code
Codex
$ npx skills add dembrandt/dembrandt-skills --skill ui-density -a codex -y
Cursor
$ npx skills add dembrandt/dembrandt-skills --skill ui-density -a cursor -y
Gemini CLI
$ npx skills add dembrandt/dembrandt-skills --skill ui-density -a gemini-cli -y
GitHub Copilot
$ npx skills add dembrandt/dembrandt-skills --skill ui-density -a github-copilot -y
OpenCode
$ npx skills add dembrandt/dembrandt-skills --skill ui-density -a opencode -y
Windsurf
$ npx skills add dembrandt/dembrandt-skills --skill ui-density -a windsurf -y
name: ui-density
description: Match information density to platform and user type. Use when designing data tables, dashboards or toolbars, or adapting a desktop product for mobile.
metadata:
priority: 7
pathPatterns:
- "**/*.css"
- "**/*.scss"
- "components/**"
- "src/components/**"
- "**/*.tsx"
- "**/*.jsx"
- "design-system/**"
promptSignals:
phrases:
- "density"
- "compact"
- "spacious"
- "too crowded"
- "too much"
- "feature count"
- "information density"
- "data table"
- "dashboard"
- "power user"
- "power user mode"
- "expert user"
- "reading is time"
retrieval:
aliases:
- ui density
- compact layout
- spacious layout
- information density
- feature count
- dashboard density
- power user mode
- expert vs casual user
- reading is time
intents:
- decide how dense the UI should be
- make a dashboard less overwhelming
- design a compact data table
- reduce feature count on mobile
- match density to user type
- design for domain experts / power users
- reduce how much the user has to read
examples:
- this dashboard feels overwhelming
- how dense should this table be
- reduce this for mobile
- this is an enterprise tool, can it be denser
- design a power-user mode for domain experts
- the UI has too much to readDensity describes how much information and how many interactive elements appear in a given area. The right density is not a universal standard — it depends on platform, user type, and session context.
| Platform | Default density | Reason | |---|---|---| | Desktop | Medium to high | Large screen, precise input, often primary work surface | | Tablet | Medium | Touch input, larger than phone but less than desktop | | Mobile | Low | Small screen, touch targets need space, interrupted sessions |
Never port a dense desktop layout directly to mobile. Remove, collapse, or deprioritise features rather than shrinking them.
| User type | Appropriate density | Examples | |---|---|---| | Power user / enterprise | High density acceptable | Trading platforms, ERP, analytics, developer tools | | Occasional / general user | Medium — clear visual breathing room | SaaS dashboards, project management | | Consumer / first-time user | Low — guided, uncluttered | Onboarding flows, consumer apps, e-commerce |
A trading platform operator sits in the product for 8 hours a day and has learned every pixel — high density serves them. A user visiting a settings page once a month needs clear space and obvious labels.
**Domain experts tolerate complexity — if it solves the *right* problem quickly.** People who know the domain (especially in internal tools) will happily use dense, complex, feature-rich interfaces, because the complexity maps to a mental model they already hold. Two conditions make this work rather than overwhelm:
Design a **power-user mode** around this: high density, expert terminology, keyboard-driven, primary action always in reach — distinct from a **casual/first-time mode** that guides and unclutters. The same product may offer both; match the mode to who is actually using the view.
Define spacing scale with density in mind. A compact variant reduces padding without changing structure:
/* Default density */
--density-row-height: 44px;
--density-cell-padding: var(--space-3) var(--space-4);
--density-gap: var(--space-4);
/* Compact (enterprise / data-heavy) */
[data-density="compact"] {
--density-row-height: 32px;
--density-cell-padding: var(--space-2) var(--space-3);
--density-gap: var(--space-2);
}
/* Spacious (consumer / onboarding) */
[data-density="spacious"] {
--density-row-height: 56px;
--density-cell-padding: var(--space-4) var(--space-6);
--density-gap: var(--space-6);
}Not every feature belongs on every platform. For each feature ask: does a mobile user need this right now?
| Priority | Mobile | Tablet | Desktop | |---|---|---|---| | Core task | Always | Always | Always | | Secondary actions | Collapsed (menu/sheet) | Visible | Visible | | Filters and sorting | Accessible but not persistent | Collapsible | Persistent sidebar or toolbar | | Bulk actions | Hidden or minimal | Reduced | Full | | Advanced settings | Link to separate screen | Link or panel | Inline or panel | | Data visualisation | Simplified (key metric only) | Reduced chart | Full chart |
Sections and features can be removed, collapsed, or repositioned on smaller viewports — not just resized.
Progressive disclosure is the principle: show the minimum needed to complete the primary task, reveal more on demand.
The most under-counted cost in a dense UI is **reading**. Every word the user must read to
Enterprise UX secrets, now built into your AI agent. Your agent writes the component in seconds. It does not know the modal should be a drawer, or that the grey it picked fails contrast. These skills carry that judgment: what to do, and what breaks otherwise.
Derive a full UI palette from one or two brand colours — state variants, brand-tinted greys, semantic colours. Use when building…
Top bar, sidebar rail, app launcher, tenant and environment cue, status bar. Use when designing the persistent shell, a…
Product visuals must show the real product with real data. Use when building landing pages, hero sections, screenshots or demo…
Shape language across type, radius and icons carries brand personality. Use when starting a design system, picking icons or…
Rest, hover, active, focus, disabled and loading states, derived from the base colour. Use when designing buttons, links, inputs…
Rebuild a live web page 1:1 from measurement into Figma, Penpot or code, then verify it. Use when reproducing a page or checking…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.