---
title: "Law of Common Region"
source: "/reference/law-of-common-region"
description: "Elements enclosed by the same visible boundary are usually interpreted as belonging together."
---
# Law of Common Region

Elements enclosed by the same visible boundary are usually interpreted as belonging together.



### Principle

Elements enclosed by the same visible boundary are usually interpreted as belonging together.

### Why it matters

Containers, cards, fieldsets, panels, tinted backgrounds, and bordered regions create strong grouping signals. They help people understand which labels, values, controls, and actions belong to the same conceptual unit. Used excessively, containers produce a wall of boxes and flatten hierarchy because every group receives equal visual weight. Layr should inspect whether boundaries clarify information architecture or merely decorate it.

### Deeper design interpretation

A visible boundary is one of the strongest claims an interface can make about ownership. Cards, tinted surfaces, bordered panels, fieldsets, inset sections, and drawers tell users that the things inside them belong to the same conceptual object or task. This is valuable when the content contains several nearby relationships that whitespace alone cannot communicate reliably.

The cost appears when every piece of content receives a container. Excessive enclosure removes contrast between levels of structure and produces “card soup”: a screen where everything looks equally grouped and users must read headings to reconstruct the hierarchy. Nested regions can also create false ownership. An action placed inside the wrong card may appear to affect only that card even when it changes the whole page.

Layr should therefore evaluate region boundaries as semantic statements. The right question is whether the enclosure matches the scope of the data and actions inside it. A region should help answer “what belongs together?” and “what will this action affect?” without forcing the user to inspect implementation details.

### What the agent should reason about

Compare visual enclosure with DOM/component ownership, data relationships, headings, and action scope. If the data model is unavailable, reduce confidence rather than guessing. Pay particular attention to actions located at the edge of a region, because their visual ownership may be ambiguous.

A missing border is rarely a problem by itself. Strong spacing, headings, background rhythm, or alignment may already provide sufficient grouping. Recommend enclosure only when the existing cues fail to preserve the intended relationship.

### Common failure patterns

- Independent settings are wrapped in one card because they share a column.
- A destructive action sits inside a local panel even though it affects the entire workspace.
- Cards are nested three or four levels deep, making hierarchy difficult to scan.
- A summary visually appears inside one step but actually describes the entire multi-step process.
- Responsive layouts remove a boundary without replacing it with another grouping cue.

### Audit questions

- What semantic relationship does each visible boundary communicate?
- Does the action placement imply the correct scope of effect?
- Are there enough hierarchy levels to explain the page without creating a wall of containers?
- Would the grouping remain understandable if borders were removed or the layout stacked on mobile?

### Example agent finding

> **Medium — The “Delete workspace” action is visually scoped to the Billing card.** Its placement inside the billing region suggests that the action affects subscription data, while the handler removes the entire workspace. Move the action into a dedicated danger region with explicit workspace-level labeling so visual ownership matches actual consequence.

### Agent directive

> Use boundaries to express real semantic groups. Flag regions whose visual enclosure implies a relationship the content does not actually have, or where missing enclosure makes a complex group difficult to parse.

### Apply this when

- Forms with multiple sections.
- Dashboards made of modules or cards.
- Settings pages, inspectors, side panels, checkout summaries, filters, and grouped controls.
- Any interface where proximity alone is insufficient to communicate grouping.

### Observable signals

- A border or background encloses controls with unrelated purposes.
- A label visually sits outside the region it describes.
- Nested cards create several competing container levels.
- Related controls are split across separate containers without a clear reason.
- A complex cluster lacks any boundary or heading and is difficult to distinguish from adjacent content.

### Recommended actions

- Align containers with semantic ownership and interaction scope.
- Prefer spacing and headings before adding another nested card when grouping is already clear.
- Use a stronger boundary only where the grouping must survive scanning, responsive reflow, or dense content.
- Keep actions inside or immediately adjacent to the region whose state they change.

### Do not over-apply

A visible border is not required for every group. Whitespace, alignment, typography, and proximity can establish grouping more quietly. Recommend a container only when it improves comprehension.

### Example

**Weak:** A dashboard places unrelated account controls, billing status, and recent activity inside one bordered card because they fit in the same column.

**Stronger:** Billing controls occupy one clearly labeled region, while recent activity is a separate section with its own heading and interaction scope.

### Evaluation notes

- **Default severity:** Medium when grouping causes wrong interpretation or action; low when it is mostly scan friction.
- **Typical confidence:** High when boundaries and semantic relationships are visible in the DOM or rendered layout.
- **Primary evidence:** DOM grouping, headings, borders/backgrounds, component ownership, action targets.
- **Related rules:** Law of Proximity, Law of Similarity, Law of Uniform Connectedness, Chunking

### References

- [Laws of UX — Law of Common Region](https://lawsofux.com/law-of-common-region/)

## Related rules

- [Law of Proximity](/__layr/pages/reference/law-of-proximity.md)
- [Law of Similarity](/__layr/pages/reference/law-of-similarity.md)
- [Law of Uniform Connectedness](/__layr/pages/reference/law-of-uniform-connectedness.md)
- [Chunking](/__layr/pages/reference/chunking.md)

## Agent guidance

Review criteria, the finding contract a report must use, and worked examples.

Established principle; Layr interpretation and agent guidance. Category: Perception & Visual Hierarchy.

## Retrieve
- Canonical page: https://layr.design/reference/law-of-common-region
- Markdown for agents: https://layr.design/__layr/pages/reference/law-of-common-region.md
- Reference map: https://layr.design/llms.txt
- Route index: https://layr.design/__layr/routes.toon

## Rule object
```yaml
rule:
  id: "law-of-common-region"
  title: "Law of Common Region"
  category: "Perception & Visual Hierarchy"
  origin: established
  canonical_url: "https://layr.design/reference/law-of-common-region"
  principle: "Elements enclosed by the same visible boundary are usually interpreted as belonging together."
  directive: "Use boundaries to express real semantic groups. Flag regions whose visual enclosure implies a relationship the content does not actually have, or where missing enclosure makes a complex group difficult to parse."
  applies_when:
    - "Forms with multiple sections."
    - "Dashboards made of modules or cards."
    - "Settings pages, inspectors, side panels, checkout summaries, filters, and grouped controls."
    - "Any interface where proximity alone is insufficient to communicate grouping."
  observable_signals:
    - "A border or background encloses controls with unrelated purposes."
    - "A label visually sits outside the region it describes."
    - "Nested cards create several competing container levels."
    - "Related controls are split across separate containers without a clear reason."
    - "A complex cluster lacks any boundary or heading and is difficult to distinguish from adjacent content."
  audit_questions:
    - "What semantic relationship does each visible boundary communicate?"
    - "Does the action placement imply the correct scope of effect?"
    - "Are there enough hierarchy levels to explain the page without creating a wall of containers?"
    - "Would the grouping remain understandable if borders were removed or the layout stacked on mobile?"
  recommended_actions:
    - "Align containers with semantic ownership and interaction scope."
    - "Prefer spacing and headings before adding another nested card when grouping is already clear."
    - "Use a stronger boundary only where the grouping must survive scanning, responsive reflow, or dense content."
    - "Keep actions inside or immediately adjacent to the region whose state they change."
  avoid_when:
    - "A visible border is not required for every group. Whitespace, alignment, typography, and proximity can establish grouping more quietly. Recommend a container only when it improves comprehension."
  common_failure_patterns:
    - "Independent settings are wrapped in one card because they share a column."
    - "A destructive action sits inside a local panel even though it affects the entire workspace."
    - "Cards are nested three or four levels deep, making hierarchy difficult to scan."
    - "A summary visually appears inside one step but actually describes the entire multi-step process."
    - "Responsive layouts remove a boundary without replacing it with another grouping cue."
  evidence_types:
    - "DOM grouping"
    - "headings"
    - "borders/backgrounds"
    - "component ownership"
    - "action targets"
  default_severity: "Medium when grouping causes wrong interpretation or action; low when it is mostly scan friction."
  typical_confidence: "High when boundaries and semantic relationships are visible in the DOM or rendered layout."
  related_rules:
    - { id: "law-of-proximity", title: "Law of Proximity", url: "https://layr.design/reference/law-of-proximity" }
    - { id: "law-of-similarity", title: "Law of Similarity", url: "https://layr.design/reference/law-of-similarity" }
    - { id: "law-of-uniform-connectedness", title: "Law of Uniform Connectedness", url: "https://layr.design/reference/law-of-uniform-connectedness" }
    - { id: "chunking", title: "Chunking", url: "https://layr.design/reference/chunking" }
```

## What to reason about
Compare visual enclosure with DOM/component ownership, data relationships, headings, and action scope. If the data model is unavailable, reduce confidence rather than guessing. Pay particular attention to actions located at the edge of a region, because their visual ownership may be ambiguous. A missing border is rarely a problem by itself. Strong spacing, headings, background rhythm, or alignment may already provide sufficient grouping. Recommend enclosure only when the existing cues fail to preserve the intended relationship.

## Routing
Route a review here when the evidence is primarily visual: grouping, emphasis, state differentiation, alignment, salience, relationship, or scan hierarchy. Pair these rules with accessibility checks when color, contrast, focus, or motion affects perception.

## Review procedure
For every finding:
1. Identify the exact component, state, route, or interaction.
2. State the observable evidence.
3. Name the principle that applies.
4. Explain the user consequence in the current context.
5. Estimate severity from the consequence, frequency, and reversibility.
6. Recommend the smallest change that addresses the issue while preserving the product's existing design system.
7. Lower confidence when intent, frequency, audience, device, or product constraints must be inferred.
8. Do not produce generic advice such as "improve hierarchy" or "make this clearer" without specifying what is wrong and why.

## Finding contract — emit exactly this shape
```yaml
finding:
  rule_id: string
  location: string
  evidence:
    - observable fact
  impact: string
  severity: low | medium | high | critical
  confidence: low | medium | high
  recommendation:
    change: string
    rationale: string
    preserve:
      - existing design-system behavior
      - valid product constraints
```

## Example finding for this rule
Medium — The “Delete workspace” action is visually scoped to the Billing card. Its placement inside the billing region suggests that the action affects subscription data, while the handler removes the entire workspace. Move the action into a dedicated danger region with explicit workspace-level labeling so visual ownership matches actual consequence.

## Code reference

The same principle as markup. Compare the structure, not the class names.

```html
<!-- weak -->
<div class="example-ui example-ui-weak">
  <div class="scene-chrome">
    <span class="scene-chrome-app">Settings</span>
    <span class="scene-chrome-view">Account</span>
  </div>
  <div class="scene-body">
    <div class="scene-panel">
      <span class="scene-panel-title">Account</span>
      <div class="scene-row">
        <span>Billing status</span>
        <span class="scene-tag scene-tag-success">Active</span>
      </div>
      <div class="scene-row">
        <span>Next invoice</span>
        <span class="scene-meta">1 Oct · $24</span>
      </div>
      <div class="scene-row">
        <span>Change password</span>
        <span class="scene-meta">Last set 4 Mar</span>
      </div>
      <div class="scene-row">
        <span>API tokens</span>
        <span class="scene-meta">2 active</span>
      </div>
      <div class="scene-row">
        <span>Recent activity</span>
        <span class="scene-meta">8 events</span>
      </div>
      <div class="scene-row">
        <span>Delete workspace</span>
        <span class="scene-action scene-action-danger">Delete</span>
      </div>
      <span class="scene-note">One boundary · six scopes · workspace deletion inside the account card</span>
    </div>
  </div>
</div>
```

```html
<!-- stronger -->
<div class="example-ui example-ui-strong">
  <div class="scene-chrome">
    <span class="scene-chrome-app">Settings</span>
    <span class="scene-chrome-view">Account</span>
  </div>
  <div class="scene-body">
    <div class="scene-panel">
      <span class="scene-panel-title">Billing</span>
      <div class="scene-row">
        <span>Studio plan</span>
        <span class="scene-value">$24 / month</span>
      </div>
      <div class="scene-row">
        <span>Next invoice</span>
        <span class="scene-meta">1 Oct</span>
      </div>
      <span class="scene-action">Manage billing</span>
    </div>
    <div class="scene-panel scene-panel-quiet">
      <span class="scene-panel-title">Recent activity</span>
      <div class="scene-row">
        <span>Invoice paid</span>
        <span class="scene-meta">Today</span>
      </div>
      <div class="scene-row">
        <span>Member invited</span>
        <span class="scene-meta">12 Sep</span>
      </div>
    </div>
    <div class="scene-panel scene-panel-danger">
      <span class="scene-panel-title">Workspace</span>
      <div class="scene-row">
        <span>Delete workspace</span>
        <span class="scene-action scene-action-danger">Delete</span>
      </div>
      <span class="scene-meta">Removes 18 projects for every member.</span>
    </div>
  </div>
</div>
```

```css
/* declarations these studies depend on */
.example-ui { display: grid; grid-template-rows: auto minmax(0, 1fr); min-width: 0; min-height: 17rem; overflow: hidden; border: var(--border-thin) solid var(--color-border-strong); background: var(--color-background); color: var(--color-text); font-size: var(--text-xs); line-height: var(--leading-snug); }
.example-ui .scene-chrome { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-1) var(--space-2); padding: var(--space-2) var(--space-3); border-bottom: var(--border-thin) solid var(--color-border-strong); background: var(--color-surface); }
.example-ui .scene-chrome-app { font-size: var(--text-2xs); font-weight: 600; letter-spacing: var(--tracking-label); text-transform: uppercase; }
.example-ui .scene-chrome-view { color: var(--color-text-tertiary); font-size: var(--text-2xs); }
.example-ui .scene-body { display: grid; align-content: start; gap: var(--space-3); min-width: 0; padding: var(--space-3); }
.example-ui .scene-body:has(> .scene-panel:only-child) { align-content: stretch; }
.example-ui .scene-panel { display: grid; align-content: start; justify-items: start; gap: var(--space-2); min-width: 0; padding: var(--space-3); border: var(--border-thin) solid var(--color-border-strong); background: var(--color-surface-raised); }
.example-ui .scene-panel-quiet { border-color: var(--color-border-subtle); background: var(--color-surface); }
.example-ui .scene-panel-danger { border-color: var(--color-danger); }
.example-ui .scene-panel-danger .scene-panel-title { color: var(--color-danger); }
.example-ui .scene-panel-title { font-size: var(--text-sm); font-weight: 600; letter-spacing: var(--tracking-heading); }
.example-ui .scene-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-1) var(--space-2); width: 100%; min-width: 0; padding-block: var(--space-1); }
.example-ui .scene-panel > .scene-row + .scene-row { border-top: var(--border-thin) solid var(--color-border-subtle); }
.example-ui .scene-meta { color: var(--color-text-tertiary); font-size: var(--text-2xs); }
.example-ui .scene-value { font-variant-numeric: tabular-nums; font-weight: 550; }
.example-ui .scene-note { width: 100%; padding-top: var(--space-2); border-top: var(--border-thin) solid var(--color-border-subtle); color: var(--color-text-tertiary); font-family: var(--font-mono); font-size: var(--text-2xs); line-height: var(--leading-snug); }
.example-ui .scene-action { display: inline-flex; align-items: center; justify-content: center; min-height: var(--space-8); padding-inline: var(--space-3); border: var(--border-thin) solid var(--color-border-strong); border-radius: var(--radius-xs); background: var(--color-surface-raised); color: var(--color-text); font-size: var(--text-xs); font-weight: 550; white-space: nowrap; }
.example-ui .scene-action-danger { border-color: var(--color-danger); color: var(--color-danger); }
.example-ui .scene-tag { display: inline-block; padding: 0 var(--space-2); border: var(--border-thin) solid var(--color-border-strong); color: var(--color-text-secondary); font-size: var(--text-2xs); line-height: 1.6; white-space: nowrap; }
.example-ui .scene-tag-success { border-color: var(--color-success); color: var(--color-success); }
.example-ui { min-height: 15rem; }

/* resolved values */
:root {
  --border-thin: 1px;
  --font-mono: "Geist Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --leading-snug: 1.35;
  --radius-xs: 2px;
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-8: 2rem;
  --text-2xs: 0.6875rem;
  --text-sm: 0.875rem;
  --text-xs: 0.75rem;
  --tracking-heading: -0.025em;
  --tracking-label: 0.06em;
}
```

## Weak vs stronger
- Weak: A dashboard places unrelated account controls, billing status, and recent activity inside one bordered card because they fit in the same column.
- Stronger: Billing controls occupy one clearly labeled region, while recent activity is a separate section with its own heading and interaction scope.

## Reporting rules
- Report only what the interface shows as observable evidence; phrase psychological or motivational effects as possible consequences.
- Returning no finding is a valid result when evidence is insufficient.
