Skip to content
Back to skills

Social Proof

ASecurity

Generate a professional Social Proof section — testimonials, logo walls, stats, or ratings that establish credibility. Works standalone or as part of a full page. **Visual System**: `shared/visual-style.md` — default design tokens for Light/Dark themes. Business, Colorful, and Editorial use their own style files — see *Style precedence* in the master `SKILL.md`. **Section Knowledge**: `pages/landing-page/references/social-proof.md` — patterns, variants, and anti-patterns from 27 real product ...

  • 2 stars
  • 0 votes
  • 1 copy
  • 1 view
  • Added October 19, 2026
designrustgoapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 19, 2026

npx -y skills add senlindesign/proof --skill social-proof --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Social Proof?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Social Proof
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/senlindesign-social-proof/badge)](https://www.skillsdirectory.com/skills/senlindesign-social-proof)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
# Social Proof Section Skill

Generate a professional Social Proof section — testimonials, logo walls, stats, or ratings that establish credibility. Works standalone or as part of a full page.

**Visual System**: `shared/visual-style.md` — default design tokens for Light/Dark themes. Business, Colorful, and Editorial use their own style files — see *Style precedence* in the master `SKILL.md`.
**Section Knowledge**: `pages/landing-page/references/social-proof.md` — patterns, variants, and anti-patterns from 27 real product research.

---

## When to Use

- "Add a social proof section to my page"
- "Show customer testimonials"
- "Add a logo wall / trusted-by section"
- "Build a section with customer quotes and company logos"
- When a Page Skill needs Social Proof — it references this knowledge internally

Do NOT use for:
- Full case study pages (different content structure)
- Product review aggregation pages
- User-generated content feeds

---

## Workflow

### Step 1: Understand Inputs

**Required**:
- Product name
- Social proof assets available (logos, quotes, stats, ratings — at least one category)

**Defaults if not provided**:
- Theme --> Light
- Pattern --> Logo Wall (most common, lowest asset requirement)
- Brand color --> none (`--accent` = `--text`)
- Display font → the active style's display font (Minimal: DM Sans)

### Step 2: Select Pattern

Read `pages/landing-page/references/social-proof.md` and select:

| Pattern | Best When | Minimum Assets |
|---------|-----------|----------------|
| Logo Wall | Have 5+ recognizable client logos, need quick trust signal after Hero | 5 logos |
| Testimonial Cards | Have 3+ real customer quotes with names and titles | 3 quotes + attribution |
| Logo Wall + Testimonials | Have both logo assets and detailed quotes; need breadth and depth | 5 logos + 2-3 quotes |
| Enterprise Testimonial List | Clients are high-profile brands (Nike/Google tier); premium tone | 3+ quotes from major brands |
| Bento / Mosaic | Have mixed evidence types (quotes, metrics, logos) and want one dense block | 4-6 mixed tiles |

A logo wall of real customers shows only customers the user names. Take each logo from the sources in *Real logos only* (master `SKILL.md`): Simple Icons in one color suits a grayscale wall (`https://cdn.simpleicons.org/<slug>/<hex>`); a brand that no library has becomes a text wordmark. Never draw a logo and never show `[Company]` placeholder logos.

Stats / numbers are not a standalone pattern — they are a content type that slots into Bento / Mosaic or sits alongside a Logo Wall.

**Logo Wall sub-variants**:
- Single row (5-8 logos) — standard
- Double row (10-12 logos) — many clients
- Hero-embedded — logos at bottom of Hero section, not a separate section
- Scrolling marquee — many logos, limited horizontal space

**Testimonial sub-variants**:
- With avatars — circular photo + name + title (more personal)
- With quantified results — quotes containing specific numbers (most persuasive)
- With case study links — "View success story" CTA per card

### Step 3: Build

Read the active style file first (`shared/visual-style.md` for Minimal, the default). The tokens below are Minimal defaults — with another style active, take visual values from that style file per *Style precedence* in the master `SKILL.md`, and keep the layout and structure below:

**Logo Wall tokens**:
```
Section padding:        128px 32px (top/bottom, left/right)
Label:                  mono 12px / 400 / uppercase / +0.72px tracking / opacity 0.3
Label --> logos gap:     32px
Logo text placeholders: 16px / display font / weight 500 / opacity 0.45 (sample wordmarks vary their treatment — see below)
Logo horizontal gap:    58px
Logo vertical align:    center
```

**Testimonial Card tokens**:
```
Section padding:        180px 32px (system section rhythm — 128px is Logo Wall only)
Card padding:           32px
Card background:        var(--bg) on surface-1 section, or var(--surface-1) on bg section
Card border-radius:     16px
Card shadow:            none (zero box-shadow)
Card gap:               24px (between cards)
Grid:                   3-column on desktop, 1-column below 768px

Quote font:             display / 16px / weight 500 / line-height 1.6
Quote color:            var(--text), no decorative quotation marks
Attribution font:       mono / 12px / uppercase / +0.72px tracking / opacity 0.4
Avatar:                 40px circle (if used)
Name + title gap:       4px
```

**Section title tokens**:
```
Section title:          clamp(32px, 4vw, 47px) / weight 500 / tracking -0.02em / line-height 1.1
Subtitle:               18px / weight 400 / opacity 0.5 / max-width 540px
Title --> subtitle gap: 24px
Title --> content gap:  58px
```

**Structure by pattern**:

**Logo Wall** (top to bottom):
1. [Optional] Label — "TRUSTED BY TEAMS AT" / "POWERING" / "LOVED BY" in mono 12px uppercase, opacity 0.3
2. Logo row(s) — all logos monochrome, opacity 0.45 (the style's logo-wall step), horizontally centered, equal size, one row of 5 on desktop (`justify-content: space-between`, no wrap) and a 3 + 2 grid under 768px

**Testimonial Cards** (top to bottom):
1. [Optional] Section label — mono 12px uppercase, opacity 0.4
2. Section title — e.g. "What our customers say"
3. 3-column card grid, each card containing:
   - Quote text (no decorative quote marks)
   - Attribution: Name / Title, Company in mono 12px uppercase, opacity 0.4
   - [Optional] Avatar photo, 40px circle

**Logo Wall + Testimonials** (top to bottom):
1. Label + Logo row (Logo Wall pattern)
2. 58px gap
3. 2-3 Testimonial cards below

**Rules**:
- All logos must be monochrome — use text wordmarks at the style's logo-wall opacity (Minimal 0.45) if no SVG assets
- No box-shadow on any element
- Testimonial background and section background must differ by one step: card on `var(--bg)` if section is `var(--surface-1)`, or card on `var(--surface-1)` if section is `var(--bg)`
- Attribution always in mono font, never in display font
- Center-aligned by default for both Logo Wall and Testimonial Cards
- Section padding: 128px top/bottom for bare Logo Wall only; 180px for Testimonial Cards and all other patterns (matches system section rhythm)

#### Motion & Interaction

Reference: `shared/interaction-patterns.md`

- **Scroll reveal** on the `<section>`: translateY(32px), opacity 0 to 1, 0.8s cubic-bezier(0.16, 1, 0.3, 1) (§2)
- **Stagger**: testimonial cards and logo items enter with 80ms interval, translateY(16px), 0.5s duration. Use `data-stagger-child="small"` for logos (§3)
- Optional: **Marquee** for logo walls — 30s per full cycle, pure CSS, pauses on hover. Duplicate logo set for seamless loop (§6)
- All animations wrapped in `@media (prefers-reduced-motion: no-preference)`; marquee uses `@media (prefers-reduced-motion: reduce)` to disable

### Step 4: Verify

Visual values in this checklist assume Minimal. With another style active, check against the active style file instead.

- [ ] No fabricated testimonials or fake company names?
- [ ] Logo wordmarks at the style's logo-wall opacity (Minimal 0.45), one row of 5 on desktop, no orphan on a second line?
- [ ] Attribution uses mono font at 11px / uppercase / opacity 0.35?
- [ ] Quote text at 16px / weight 500 / line-height 1.6?
- [ ] Card padding is 32px with 16px border-radius?
- [ ] Zero box-shadow on cards and all other elements?
- [ ] Section vertical padding — 128px for a bare Logo Wall, 180px for every other pattern?
- [ ] Card background differs from section background by one surface step?
- [ ] Logos are monochrome and equal-sized?
- [ ] Works at 767px width (cards stack to single column)?
- [ ] All quotes include real attribution (name + title + company)?

### Step 5: Deliver

Provide the section code (HTML + CSS). Note which pattern was chosen and why.

---

## Constraints

- No Mobbin or external API dependency
- V1: visual presentation only — links and CTAs are visual, no real navigation
- All design knowledge is pre-distilled in the referenced files
- Follow `shared/visual-style.md` tokens exactly — do not invent values
- Testimonials the user didn't give are sample content (master `SKILL.md` Design Rules → *Sample content*): finished-looking quotes from fictional people, tagged `data-sample`, never presented as real
- Logo walls without user-given customers use invented companies (master `SKILL.md` *Sample content*) as **sample wordmarks**, tagged `data-sample` — never real customer logos
- **Sample wordmarks** — a row of names in one font at one weight reads as a placeholder strip. Real walls (Granola, incident.io, Linear customers) mix letterforms because every brand is different. Give each wordmark its own treatment using only the style's fonts: vary weight (400 / 500 / 600 where loaded), case (Title, lowercase, UPPERCASE with +0.08em tracking), family (display / body / mono), and optionally one leading geometric glyph from `● ◆ ▲ ✳ ◐ ■` at 0.9em. No two adjacent wordmarks share a treatment. Height and opacity stay uniform (the style's logo-wall opacity), so the row stays calm:
  ```html
  <div class="logo-row" data-section="logo-wall" data-layout="logo-row" data-bg="base" data-sample>
    <span class="wm" data-logo-source="wordmark" style="font-family:var(--font-display);font-weight:600">◆ Halberd</span>
    <span class="wm" data-logo-source="wordmark" style="font-family:var(--font-body);text-transform:lowercase">larkspur</span>
    <span class="wm" data-logo-source="wordmark" style="font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em">Quarry &amp; Co</span>
    <span class="wm" data-logo-source="wordmark" style="font-family:var(--font-display);font-style:italic">Fernhill</span>
    <span class="wm" data-logo-source="wordmark" style="font-family:var(--font-body);font-weight:500">✳ brightmoor</span>
  </div>
  ```
  ```css
  /* Exactly 5 wordmarks. One row on desktop, 3 + 2 on phones: never a lone 6th name, never sideways overflow. */
  .logo-row { display: grid; grid-template-columns: repeat(5, auto); justify-content: space-between; align-items: center; gap: 24px; }
  .logo-row .wm { font-size: 18px; white-space: nowrap; color: var(--text); opacity: 0.45; }   /* style §1 logo-wall step (Colorful 0.5) */
  @media (max-width: 767px) {
    .logo-row { grid-template-columns: repeat(3, minmax(0, 1fr)); justify-content: stretch; justify-items: center; row-gap: 20px; }
    .logo-row .wm { font-size: 15px; }
  }
  ```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.