algorithmic-color-pale…
Derive a full UI colour palette algorithmically from one or two brand colours. Darker and lighter variants for interactive states, desaturated greys from the…
UI layout and grouping should follow Gestalt principles so users immediately understand which controls, commands, and elements belong together. Use when designing or reviewing component layout, navigation, toolbars, forms, dashboards, or any UI where visual grouping communicates
$ npx -y skills add dembrandt/dembrandt-skills --skill gestalt-ui-organisation --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/gestalt-ui-organisationContext preview
The summary Claude sees to decide when to auto-load this skill.
UI layout and grouping should follow Gestalt principles so users immediately understand which controls, commands, and elements belong together. Use when designing or reviewing component layout, navigation, toolbars, forms, dashboards, or any UI where visual grouping communicates
name: gestalt-ui-organisation
description: UI layout and grouping should follow Gestalt principles so users immediately understand which controls, commands, and elements belong together. Use when designing or reviewing component layout, navigation, toolbars, forms, dashboards, or any UI where visual grouping communicates relationships.
metadata:
priority: 7
docs:
- "https://www.interaction-design.org/literature/topics/gestalt-principles"
pathPatterns:
- "**/*.tsx"
- "**/*.jsx"
- "**/*.vue"
- "**/*.svelte"
- "components/**"
- "src/components/**"
- "design-system/**"
- "ui/**"
promptSignals:
phrases:
- "gestalt"
- "grouping"
- "visual hierarchy"
- "ui layout"
- "component organisation"
- "related controls"
- "ui clarity"
retrieval:
aliases:
- gestalt
- visual grouping
- ui organisation
- proximity
- similarity
- figure ground
intents:
- group related controls
- make ui clearer
- organise components
- show which elements belong together
- improve visual hierarchy
examples:
- group these buttons so users know they're related
- make it clearer which commands belong together
- organise this toolbar using gestaltUI should be organised so that the visual structure communicates relationships — which commands, controls, and elements belong together — without requiring users to read labels or documentation.
Elements that are close together are perceived as a group.
**Example:** A toolbar with `[Cut] [Copy] [Paste]` grouped tightly, then a wider gap before `[Undo] [Redo]`, communicates two distinct command groups without any visual divider.
Default to **whitespace, not divider lines**, for grouping. Most separators do work that spacing does better — they add noise and a "boxed-in" feel without adding information. Remove the majority and let proximity carry the grouping.
Caveat: a line takes almost no space, so removing it leaves groups too close. **Removing separators usually means adding spacing** — budget the whitespace (occasionally a subtle background or heading) rather than just deleting the line and leaving the layout cramped.
Elements that look alike are perceived as related.
**Example:** Destructive actions (Delete, Remove) use a different colour than constructive actions (Save, Add), signalling different intent groups.
Elements enclosed in a shared region are perceived as a group.
**A region needs no border — but a borderless one needs air.** Enclosure can come from a border/fill *or* from whitespace alone. When a card has no border or background, generous internal padding and a clear gap to its neighbours are what make it read as one region; without a border doing that job, cut the air and separate cards collapse into one blur. Borderless is fine — cramped-and-borderless is not.
**Example:** Form sections grouped in bordered cards signal that fields inside each card form a logical unit.
Elements connected by lines or visual links are perceived as related.
Users distinguish foreground interactive elements from background context.
The eye follows smooth paths and lines.
When reviewing a UI layout for Gestalt compliance:
| Anti-pattern | Problem | Fix | |---|---|---| | All buttons same size and colour regardless of function | Similarity principle violated — implies all actions are equivalent | Differentiate primary, secondary, destructive visually | | Related controls spread across distant areas of the screen | Proximity violated — user cannot perceive the relationship | Co-locate related controls | | Overuse of divider lines to group elements | Relies on decorati
UX and design-system skills for AI agents. Install once, and your agent knows how to design. --all installs every skill at once. They load only when a prompt needs them, so there is no runtime cost to having them all. Want to pick by hand?
Repo: dembrandt/dembrandt-skills
Derive a full UI colour palette algorithmically from one or two brand colours. Darker and lighter variants for interactive states, desaturated greys from the…
The persistent shell around an application — the top bar, the app launcher, the tenant and environment cue, and in heavy tools a status bar. In an estate of…
Product visuals — hero shots, demos, screenshots, landing-page panels — must reproduce the real product, not a stylised poster of it. Design with real content…
A brand's visual tone — playful or serious, rounded or angular — should be consistent across all UI elements. Shape language in typography, border-radius, and…
Every interactive element needs a complete set of visual states — rest, hover, active/pressed, focus, disabled, and loading. States should be derived…
Rebuild an existing web page 1:1 from measurement instead of by eye — into Figma, Penpot, or code. Captures the rendered page, the raw source and the computed…