
Layout
Fix crowded or monotonous UI spacing and hierarchy when a screen’s composition feels generic or misaligned.
Overview
Layout is an agent skill for the Build phase that assesses spacing, hierarchy, and grid structure and guides intentional layout improvements using Impeccable design principles.
Install
npx skills add https://github.com/pbakaus/impeccable --skill layoutWhat is this skill?
- Mandatory prep: invoke /impeccable (and /impeccable teach if no design context yet) per Context Gathering Protocol
- Assesses spacing consistency, visual hierarchy (squint test), and grid structure before changes
- Targets monotonous equal-padding grids, weak grouping, and alignment problems
- Turns generic arrangements into intentional, rhythmic compositions
- User-invocable with optional [target] argument (v2.1.1)
- Version 2.1.1
- Mandatory Context Gathering Protocol via /impeccable
- Three assessment axes: spacing, visual hierarchy, grid and structure
Adoption & trust: 26.6k installs on skills.sh; 35.9k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
Your UI looks technically fine but spacing feels arbitrary, hierarchy is flat, and grids read as a monotonous template.
Who is it for?
Solo builders refining a specific screen or component when composition, rhythm, or alignment already bothers you or your users.
Skip if: Greenfield brand systems with zero Impeccable context—run /impeccable teach and broader Impeccable skills first—or pure copy/SEO work with no visual layout.
When should I use this skill?
User mentions layout feeling off, spacing issues, visual hierarchy, crowded UI, alignment problems, or wanting better composition.
What do I get? / Deliverables
You get a structured layout assessment and improvement path grounded in Impeccable context, with teach invoked first when design context is missing.
- Layout and spacing assessment
- Guided composition improvements aligned to Impeccable principles
Recommended Skills
Journey fit
How it compares
Use as a focused spatial critique step inside the Impeccable skill family, not instead of a full component library or accessibility audit.
Common Questions / FAQ
Who is layout for?
Indie and solo builders (and small teams) improving product UI composition in Claude Code, Cursor, or similar agents when spacing and hierarchy feel weak.
When should I use layout?
During Build (frontend) when layout feels off, spacing is inconsistent, the UI is crowded, alignment is wrong, or you want stronger visual hierarchy; also when iterating on a named [target] area after Impeccable context exists.
Is layout safe to install?
Review the Security Audits panel on this Prism page for ingest-time signals; the skill is design guidance and does not declare shell or network tools in its frontmatter.
Workflow Chain
Requires first: impeccable
SKILL.md
READMESKILL.md - Layout
Assess and improve layout and spacing that feels monotonous, crowded, or structurally weak — turning generic arrangements into intentional, rhythmic compositions. ## MANDATORY PREPARATION Invoke /impeccable — it contains design principles, anti-patterns, and the **Context Gathering Protocol**. Follow the protocol before proceeding — if no design context exists yet, you MUST run /impeccable teach first. --- ## Assess Current Layout Analyze what's weak about the current spatial design: 1. **Spacing**: - Is spacing consistent or arbitrary? (Random padding/margin values) - Is all spacing the same? (Equal padding everywhere = no rhythm) - Are related elements grouped tightly, with generous space between groups? 2. **Visual hierarchy**: - Apply the squint test: blur your (metaphorical) eyes — can you still identify the most important element, second most important, and clear groupings? - Is hierarchy achieved effectively? (Space and weight alone can be enough — but is the current approach working?) - Does whitespace guide the eye to what matters? 3. **Grid & structure**: - Is there a clear underlying structure, or does the layout feel random? - Are identical card grids used everywhere? (Icon + heading + text, repeated endlessly) - Is everything centered? (Left-aligned with asymmetric layouts feels more designed, but not a hard and fast rule) 4. **Rhythm & variety**: - Does the layout have visual rhythm? (Alternating tight/generous spacing) - Is every section structured the same way? (Monotonous repetition) - Are there intentional moments of surprise or emphasis? 5. **Density**: - Is the layout too cramped? (Not enough breathing room) - Is the layout too sparse? (Excessive whitespace without purpose) - Does density match the content type? (Data-dense UIs need tighter spacing; marketing pages need more air) **CRITICAL**: Layout problems are often the root cause of interfaces feeling "off" even when colors and fonts are fine. Space is a design material — use it with intention. ## Plan Layout Improvements Consult the [spatial design reference](reference/spatial-design.md) from the impeccable skill for detailed guidance on grids, rhythm, and container queries. Create a systematic plan: - **Spacing system**: Use a consistent scale — whether that's a framework's built-in scale (e.g., Tailwind), rem-based tokens, or a custom system. The specific values matter less than consistency. - **Hierarchy strategy**: How will space communicate importance? - **Layout approach**: What structure fits the content? Flex for 1D, Grid for 2D, named areas for complex page layouts. - **Rhythm**: Where should spacing be tight vs generous? ## Improve Layout Systematically ### Establish a Spacing System - Use a consistent spacing scale — framework scales (Tailwind, etc.), rem-based tokens, or a custom scale all work. What matters is that values come from a defined set, not arbitrary numbers. - Name tokens semantically if using custom properties: `--space-xs` through `--space-xl`, not `--spacing-8` - Use `gap` for sibling spacing instead of margins — eliminates margin collapse hacks - Apply `clamp()` for fluid spacing that breathes on larger screens ### Create Visual Rhythm - **Tight grouping** for related elements (8-12px between siblings) - **Generous separation** between distinct sections (48-96px) - **Varied spacing** within sections — not every row needs the same gap - **Asymmetric compositions** — break the predictable centered-content pattern when it makes sense ### Choose the Right Layout Tool - **Use Flexbox for 1D layouts**: Rows of ite