From harness-claude
Establishes typographic hierarchy using size, weight, color, spacing, case, and position to guide reading order. For page layouts, component libraries, flat design audits, and dashboards.
npx claudepluginhub intense-visions/harness-engineering --plugin harness-claudeThis skill uses the workspace's default tool permissions.
> Establishing reading order through type — size, weight, color, spacing, case, and position as hierarchy signals
Guides visual hierarchy in UIs using size, weight, color, spacing, position, and density. Defines levels, patterns for heroes/cards/forms, and practices like squint test.
Guides visual hierarchy in UI designs using size, color, contrast, position, isolation, texture, and motion to establish dominance and reading order. For page layouts, components, and reviews.
Guides web typography: font selection, pairing, scaling, spacing, responsive type, variable fonts, loading optimization, accessibility, and readability.
Share bugs, ideas, or general feedback.
Establishing reading order through type — size, weight, color, spacing, case, and position as hierarchy signals
Use the 6 hierarchy levers in order of strength. Each lever creates a different degree of visual separation. Stronger levers create more dramatic hierarchy:
| Lever | Strength | Mechanism | Example |
|---|---|---|---|
| Size | Strongest | Larger text draws the eye first | 48px heading vs 16px body |
| Weight | Strong | Bolder text creates density that attracts attention | 700 weight heading vs 400 body |
| Color | Strong | High-contrast text stands out from muted surroundings | #000000 heading vs #6b7280 body |
| Spacing | Moderate | Whitespace above an element signals a new section | 48px margin-top vs 16px |
| Case | Moderate | ALL CAPS or small-caps differentiates without size change | SECTION LABEL vs Body text |
| Position | Contextual | Top-left reads first in LTR; above reads before below | Page title at top of content area |
Decision procedure: Start with size as the primary differentiator. Add weight if size alone is insufficient. Use color for tertiary distinctions. Reserve case and spacing for labels and section breaks.
Establish exactly 3-4 active hierarchy levels per page. More than 4 levels force the reader to constantly recalibrate importance. Fewer than 3 levels make the page feel flat.
Standard 4-level system:
Compact 3-level system (for dashboards):
Apply the squint test. Zoom your design to 25% or blur your vision. You should still be able to identify:
Create hierarchy with a single font family. You do not need multiple typefaces to establish hierarchy. A single variable font with weight and size variation is sufficient:
Page title: 32px, weight 300, color #1a1a1a, letter-spacing -0.5px
Section head: 24px, weight 600, color #1a1a1a
Subsection: 16px, weight 600, color #374151
Body: 16px, weight 400, color #374151
Caption: 14px, weight 400, color #6b7280
This 5-style system uses 3 levers (size, weight, color) to create 5 distinguishable levels from one font family.
Separate semantic heading levels from visual hierarchy. HTML heading levels (h1-h6) represent document structure. Visual hierarchy levels represent visual prominence. These can diverge:
h2 might be styled at visual level 3 (smaller, since sidebars are secondary)h1 might be styled at display size (larger than any standard heading level)<h2 class="text-lg font-medium"> not <h4> to make it smallerUse whitespace to reinforce hierarchy. The space above a heading signals its importance:
Vercel Documentation Hierarchy Vercel achieves crystal-clear hierarchy using only the Geist font family:
Stripe API Documentation Hierarchy Stripe's docs demonstrate role-based hierarchy separation:
Apple Marketing Pages Apple's product pages demonstrate extreme hierarchy for scanning:
Weight is the second-strongest hierarchy lever, but it has nuances:
Conventional approach (bold = important):
Inverted approach (light = primary):
Weight contrast minimum: For two levels to be weight-distinguishable, they need at least a 200-unit difference on a variable font weight axis (e.g., 400 vs 600, or 300 vs 500). A 100-unit difference (400 vs 500) is often imperceptible at body sizes.
Dashboards and admin panels present a unique hierarchy challenge: many content blocks compete simultaneously. Solutions:
Everything is bold. When headings, labels, navigation items, buttons, and emphasized text are all font-weight 600-700, the weight lever stops functioning. Bold becomes the default, not a signal. Audit your styles: if more than 30% of visible text is bold, you have lost weight as a hierarchy tool. Reserve bold for headings and primary actions only.
Too many hierarchy levels. A page with 6+ visually distinct text styles (display, h1, h2, h3, h4, body, small, caption, overline, label) forces the reader to decode a complex visual language. Collapse to 3-4 levels. If you need 6 heading levels in HTML for document structure, you do not need 6 visual styles — multiple heading levels can share the same visual treatment.
Size as the only differentiator. A hierarchy built exclusively on size (48, 36, 28, 24, 20, 16, 14) without weight or color variation creates a monotonous "zoom effect" where text just gets smaller. Each level should differ by at least 2 properties. A 24px regular gray heading is more distinct from 16px regular gray body than a 24px regular black heading is from 16px regular black body.
Heading levels that match visual hierarchy exactly. Using h1 for the biggest text, h2 for the next biggest, all the way down is correct by coincidence, not by principle. A modal dialog's title might be an h2 visually styled at 20px (smaller than the page h1 at 32px). Decouple semantic levels from visual levels using CSS classes.
Redesigning a Flat Dashboard Problem: A SaaS dashboard has all text at 14px, weight 400, color #333. Users report "I cannot find anything." Solution applied:
Creating a Blog Typography System Goal: Clear hierarchy for long-form content with minimal styles. System:
This is a knowledge skill. When activated, it provides typographic hierarchy principles to guide heading styles, text tokens, and content layout decisions. Use these principles when defining heading component props, text utility classes, or design token hierarchies. Cross-reference with design-type-scale for size relationships and design-visual-hierarchy for non-typographic hierarchy signals.