Skip to content
Back to skills

About Page

ASecurity

Generate a runnable SaaS About page with professional visual quality. No Mobbin or external service required at runtime. **Visual System**: see `shared/visual-style.md` — defines the default design tokens (colors, typography, spacing, components) for Light and Dark themes. About-specific component tokens (team grid, stats row, timeline, values layout) are in `references/`. Business, Colorful, and Editorial use their own style files — see *Style precedence* in the master `SKILL.md`. ---

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

Works with

  • api

Security analysis

A100/100

Pro scans all 9 files and shows the line behind each finding

Scanned October 19, 2026

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

Installs into .claude/skills of the current project.

Are you the author of About Page?

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

Security grade badge for About Page
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/senlindesign-about-page/badge)](https://www.skillsdirectory.com/skills/senlindesign-about-page)

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
# About Page Skill

Generate a runnable SaaS About page with professional visual quality. No Mobbin or external service required at runtime.

**Visual System**: see `shared/visual-style.md` — defines the default design tokens (colors, typography, spacing, components) for Light and Dark themes. About-specific component tokens (team grid, stats row, timeline, values layout) are in `references/`. Business, Colorful, and Editorial use their own style files — see *Style precedence* in the master `SKILL.md`.

---

## When to Use This Skill

Use this Skill when the user asks you to create an About page, company story page, team page, or "who we are" page for a SaaS/software product. This includes:
- "Make an About page for [product]"
- "Create a company story page"
- "Build a 'meet the team' page"
- "Design the About Us page for [tool/platform]"

Do NOT use this Skill for:
- Landing pages (use Landing Page Skill)
- Pricing pages (use Pricing Page Skill)
- Contact pages (use Contact Page Skill)
- Careers / job listing pages (dedicated career page, not About)
- In-app settings or profile pages

---

## Workflow

### Step 1: Understand the Task

Gather these inputs from the user's request. Do not ask questions in this step — the master skill decides whether to ask (its Step 1). For each input the user does not give, use the default below; facts that are missing become labeled placeholders.

**Required** (must be clear from request or ask):
- Product name and one-line description
- Primary intent: company story / team showcase / mission statement

**Use defaults if not provided**:
- Team members → sample team cards (fictional names, roles, illustrated avatars) tagged `data-sample`, unless the user said to leave the team out
- Company stats → omit the stats section entirely if no real numbers provided
- Company story → use clearly templated placeholder text
- Values → generate 3-4 generic value titles with placeholder descriptions
- Milestones → omit the timeline section if none provided
- Brand color → **default is the active style's own accent** (Minimal: no brand color, `--accent` = `--text`; Editorial: teal `#20808D`). Only override if user explicitly provides one — see the active style file's Brand Customization section (Minimal: `visual-style.md` §10.1)
- Display font → **default is the active style's display font** (Minimal: DM Sans). Only override if user provides a specific font name — see the active style file's Brand Customization section (Minimal: `visual-style.md` §10.2)
- Technology stack → single HTML file with inline CSS
- Theme → Light (default for most), Dark (for developer tools)

**Brief context** (when called from the master skill):

When the master skill passes a project brief (audience, goal, barriers, evidence), use it in archetype selection (Step 2) and section composition (Step 3):
- Primary intent (hiring, investor relations, customer trust, brand identity) → archetype and CTA focus
- Team as differentiator (small expert team vs. large organization) → Team-First vs. Company Story
- Mission or values as differentiator → Mission-Driven archetype
- Available content (team photos, real stats, milestones, founding story) → which sections are possible

### Step 2: Select Archetype

Read `references/archetypes.md` and classify the product:

| Signal | Archetype | Default Theme | Core Characteristic |
|--------|-----------|---------------|---------------------|
| Established product, history to tell, medium-large team | A. Company Story | Light | Mission hero → story → team (leadership) → stats → values → CTA |
| Small startup/studio, team IS the brand identity | B. Team-First | Light or Dark | Brief hero → full team grid (dominant) → brief values → CTA |
| Strong ideological position, social mission, trust-driven | C. Mission-Driven | Light or Dark | Belief statement hero → values (dominant) → stats → team (secondary) → CTA |

The archetype determines: section composition, section emphasis (which section dominates), CTA tone, and whether timeline/investors sections appear.

**Brief-informed selection**: When a project brief is available, apply these rules. When a rule matches, it takes priority over the signal table above:
- Brief indicates the team itself is the selling point (agency, studio, consultancy) → B. Team-First
- Brief indicates strong ideological position or social mission → C. Mission-Driven
- Brief indicates established company with history and milestones → A. Company Story
- Brief mentions hiring as a page goal → emphasize team section and add careers CTA

### Step 3: Compose Sections

Based on the archetype's section list from `references/section-composition.md`, decide which sections to include. Read the relevant `references/*.md` files for each selected section.

**Minimum sections** (always needed):
1. Navigation
2. Hero (text-only, mission statement heading, no CTA button)
3. Team (grid layout — leadership-only or full team depending on archetype)
4. CTA (careers-focused)
5. Footer

**Add based on archetype and content**:
- Story / Origin → Archetype A (required), C (optional), B (skip or brief)
- Stats → A and C (required when user provides numbers), B (optional — small teams have fewer impressive numbers)
- Values → all archetypes include it; C makes it dominant, B keeps it brief
- Timeline → A and C only, when user provides 5+ milestones
- Investor / Partner logos → A and C only, when user provides logos (reuse social-proof logo wall pattern)
- Stats → real numbers from the brief (team size, customers, revenue, founding year); if the brief doesn't mention them, sample content (master `SKILL.md` Design Rules → *Sample content*) with round illustrative numbers; if the user said there are none, leave it out
- Timeline → only if brief provides 5+ dated milestones. Skip entirely rather than inventing company history
- Investor/Partner logos → only if brief provides real investor or partner names

**Remove if**:
- User provides no content for that section (stats without numbers, timeline without milestones)
- Section would require fabricating company-specific content
- Brief provides no team member information → sample content (master `SKILL.md` Design Rules → *Sample content*): fictional names and roles with illustrated avatars, tagged `data-sample`
- Brief provides no company history → skip timeline and origin story sections, focus on values and team

**Do NOT add**:
- Product screenshots in the hero (About hero is text-only — 0/11 observed heroes had product screenshots)
- Office photo gallery (fabrication risk, "content as decoration" principle)
- Map embed (complex, rarely adds value for SaaS)

Check `references/section-composition.md` for ordering rules, spacing, and background color rules.

### Step 4: Generate Page Spec

Before writing code, produce a brief spec:

```
Page Spec:
- Product: [name] — [one-line description]
- Archetype: [A/B/C] — [name]
- Theme: Light / Dark
- Sections (in order): [list]
- Team: [leadership only (6-12) / full team (all)] — [real names or placeholders]
- Stats: [4 numbers from user / omitted]
- Values: [3-5 values — real or placeholder]
- Timeline: [included with X milestones / omitted]
- CTA target: careers / contact / mission invitation
- Brand color: none (default) / [color] — --accent set to [value]
- Display font: default (DM Sans) / [font name] — tracking: [-0.02em / -0.01em]
- Not in scope: [real form submission, routing, career applications, etc.]
```

### Step 5: Build the Page

**First**: Read the active style file in full — `shared/visual-style.md` (Minimal, the default), or `shared/visual-style-business.md` / `shared/visual-style-colorful.md` / `shared/visual-style-editorial.md` when the master skill selected another style. Every CSS value must come from its tokens.

Then implement the page following the spec. For each section:

1. Read the corresponding `references/*.md` knowledge file for the section type
2. Select the pattern that matches the archetype and content
3. Implement strictly following design system tokens:

> **The token blocks below are Minimal defaults.** With another style active, apply *Style precedence* from the master `SKILL.md`: visual values (fonts, weights, colors, radius, shadow, spacing rhythm, button and card styling) come from the active style file; layout, structure, and content rules here still apply.

**Design System Tokens (must follow)**:

```
Fonts:     var(--font-display) default DM Sans + var(--font-mono) default DM Mono + system sans (body)
Weights:   500 (display/nav/button) + 400 (mono/body) — no other weights
Colors:    Light: #FFF / #F5F5F5 / #E9E9E9 / #141414
           Dark:  #0A0A0A / #141414 / #1F1F1F / #EDEDED
           Text hierarchy via opacity (1 / 0.5 / 0.4 / 0.3 / 0.15), NOT different grays
Accent:    var(--accent) default = var(--text) + var(--accent-text) default = var(--text-inverse)
Spacing:   Section rhythm 180px, hero top 128px, title-to-content 58px
Radius:    Buttons 2px, feature cards 8px, content cards 16px
Shadows:   ZERO — depth via background color steps only
Transitions: transform 0.2s ease-in-out (hover), opacity 0.3s linear
Motion:      scroll entrance 0.8s, card stagger 100ms, counter 2000ms (see shared/interaction-patterns.md)
Grid:      max-width 1080px, gutter 24px, side padding 32px
Nav:       height 68px (var(--nav-h)), fixed positioning needs body padding-top
```

**About-specific tokens**:

```
Hero:
  padding-top: 128px                      (hero top — spacing system)
  heading max-width: 720px                (page-specific: wider than subtitle 540px, narrower than grid 1080px)
  heading: clamp(32px, 4vw, 47px)         (section heading — type scale; About hero uses section scale, not Landing hero scale)
  body: 18px / opacity 0.5 / max-width 540px  (subtitle measure)
  NO CTA button in hero (10/11 observed)
  NO product screenshots (0/11 observed)

Team grid:
  grid: repeat(3, 1fr) / gap 32px 24px   (3-col default; 4-col for 15+ people)
  photo: 96px × 96px / border-radius 50% / object-fit cover
  photo placeholder: var(--surface-1) bg / border-radius 50%
  name: 16px / display / 500
  title: 14px / display / 500 / opacity 0.5
  photo-to-name gap: 16px
  card: text-align center

Stats row:
  layout: flex / justify-content space-between / text-align center
  number: clamp(36px, 5vw, 56px) / display / 500 / -0.02em tracking
  label: 14px / display / 500 / opacity 0.5 / margin-top 8px
  show only stats the user gives, up to 4 (e.g., team size, year founded, customers, geography); no stats from the user → no stats section
  optional: var(--surface-1) full-width band

Values:
  default layout: numbered list (01, 02, 03 in mono/0.4)
  number column: 48px (page-specific)
  title: 20px / display / 500
  description: 16px / body / 400 / opacity 0.5
  3–5 values
  NO colored icons, NO icon backgrounds

Timeline (when included):
  center line: 2px width / var(--surface-2) / absolute positioned
  nodes: 8px × 8px / border-radius 50% / border 2px solid var(--surface-2) / bg var(--bg)
  alternating grid: 1fr 1fr / gap 24px
  year label: 12px / mono / 400 / 0.72px tracking / uppercase / opacity 0.4
  entry title: 20px / display / 500
  entry description: 16px / body / 400 / opacity 0.5
  entry spacing: 58px padding-bottom
  narrow: collapse to single column, line shifts to left edge at 20px

CTA section:
  heading: "Join the team" / "We're hiring" / "Work with us" (NOT "Start free trial")
  button: "See open positions" / "View careers" / "Get in touch" (careers or contact, NOT product conversion)
  0/6 observed About CTAs linked to product signup
```

4. Check against `references/anti-patterns.md` — verify each design choice traces back to observation evidence, not AI defaults

**Implementation principles**:
- Semantic HTML (one h1 in the hero, sections, nav, footer)
- Mobile-responsive (flexbox/grid, breakpoint at 767px (`@media (max-width: 767px)`))
- Single HTML file with inline `<style>` — include Google Fonts link for DM Sans + DM Mono
- Placeholder images: use `var(--surface-1)` background with circle shape for team photos, not broken image links or AI-generated faces
- Interactive states: hover `transform: translateY(-1px)` on buttons, `opacity` transition on links
- Nav buttons must use explicit overrides if placed inside `.nav-links` (see `shared/navigation.md` CSS specificity section)
- **No fabricated content**: team names, company stats, founding stories, and milestones must come from user input or be clearly marked as placeholders

**Content handling**:
- Use the user's real content when provided (team names, stats, story, values)
- Generate example content when not provided, clearly noting it's placeholder
- Team: names the user gave, otherwise fictional sample names and roles tagged `data-sample` — never real people's names
- Stats: omit the section if the user said there are no numbers; otherwise unsourced numbers are tagged sample content
- Story: use templated framing like "Founded in [year], [Company] was born from..."
- Values: generic titles are acceptable as starting points (e.g., "Innovation", "Quality") but mark as placeholder

### Step 6: Verify

After generating the page, run through `shared/quality-checklist.md`. Focus on these critical items:

> Visual checks below (color, shadow, radius, typography, spacing values) are written for Minimal. With another style active, check them against the active style file instead. Visual rules in `references/anti-patterns.md` follow the same precedence; content and structure rules apply in every style.

1. **Color**: Zero hue-tinted grays? Chromatic color <10%? CTA uses `var(--accent)`? Brand color (if any) only on allowed elements?
2. **Shadows**: Zero box-shadow anywhere? Team cards, value cards — no shadows?
3. **Typography**: Three font families? Weight 500 dominant? Labels in mono/uppercase?
4. **Spacing**: Section gap ≥ 180px? Hero top 128px? Title-to-content 58px?
5. **Radius**: Buttons 2px? No pill-shaped buttons (999px)?
6. **Responsive**: Team grid wraps? Stats row becomes 2×2? Timeline collapses to single column?
7. **Animation**: `prefers-reduced-motion` guard present? Counter 2000ms? Stagger 100ms (team/values), 150ms (timeline) per `shared/interaction-patterns.md`? No animation on nav/footer?

**About-specific checks**:
7. **Hero is text-only?** No product screenshots, no illustrations, no CTA button
8. **CTA links to careers or contact?** NOT to product signup / free trial
9. **All team photos real or placeholder?** No stock photos, no AI-generated faces. Placeholders use `var(--surface-1)` + `border-radius: 50%`
10. **All stats user-provided or section omitted?** No fabricated metrics
11. **Story content user-provided or clearly templated?** No fabricated founding narratives
12. **Value cards have colored icon backgrounds?** If yes, remove them — all values use same styling
13. **Stat numbers use `color: var(--text)` at full opacity?** NOT `var(--accent)` — numbers are too large for chromatic color
14. **Nav present and functioning?** Missing nav = error
15. **At most 1-2 sections on `var(--surface-1)` background?** No alternating backgrounds

If issues are found, fix them before delivering.

### Step 7: Deliver

Provide:
1. The page file(s) with instructions to open/run
2. A brief note on key design decisions (2-3 sentences)
3. What's in scope (visual presentation) vs. not implemented (real career applications, form submission, team management)

---

## Knowledge Files

| File | Content | When to Load |
|------|---------|-------------|
| `shared/visual-style.md` | **Design system**: default tokens, Light/Dark themes, component styles, brand customization rules | Step 5 (always — read FIRST) |
| `references/archetypes.md` | 3 About page archetypes (A Company Story / B Team-First / C Mission-Driven), selection guide, section combinations | Step 2 (always) |
| `references/about-hero.md` | About-specific hero patterns: text-only, mission statement heading, no CTA, heading scale differences from Landing hero | Step 5 (always) |
| `references/team-section.md` | **Core**: team grid layout, circle photos, person card tokens, 3/4-col variants, content depth variants, multi-tier structure | Step 5 (always) |
| `references/values-section.md` | Values/principles display: numbered list default, 4 layout variants, 3-5 values, no icons | Step 5 (always) |
| `references/stats-section.md` | Company stats: horizontal row, large number typography, up to 4 user-provided stats, optional surface-1 band | Step 5 (when stats section included) |
| `references/timeline-section.md` | Timeline/milestones: vertical alternating default, center line + node CSS, narrow screen collapse, horizontal variant note | Step 5 (when timeline section included) |
| `references/section-composition.md` | Section ordering per archetype, background alternation rules, CTA guidance, nav/footer notes | Step 3 (always) |
| `references/anti-patterns.md` | 10 anti-patterns, brand color reconciliation, 15-item verification checklist | Step 5 (always) |
| `shared/navigation.md` | Nav layout, CSS specificity trap for nav buttons | Step 5 (always) |
| `shared/footer.md` | Footer layout and content | Step 5 (always) |
| `shared/quality-checklist.md` | verification checklist | Step 6 (always) |
| `shared/interaction-patterns.md` | Motion tokens: scroll reveal, stagger, counter, hover lift recipes | Step 5 (always) |

---

## Constraints

- This Skill does NOT require Mobbin, external APIs, or internet access
- V1 scope: page skeleton + layout + components + visual quality
- NOT in V1: real career applications, form submission, team management, content management, complex animations
- Output: runnable frontend code (HTML/CSS, or matching the user's project stack)
- All design knowledge is pre-distilled in the references/ directory
- Visual style defaults to the shared design system tokens; user-provided brand specs override only `--accent` / `--accent-text` and `--font-display`
- Team member content is user-provided or tagged sample content — never real people's names or photos
- Company stats are user-provided or tagged sample content; omitted when the user says there are none
- Company story is user-provided or tagged sample content — never presented as the company's real history

Files in this skill

  • SKILL.md18 KB
  • references/about-hero.md6.8 KB
  • references/anti-patterns.md15.3 KB
  • references/archetypes.md6.5 KB
  • references/section-composition.md7.4 KB
  • references/stats-section.md6.4 KB
  • references/team-section.md8.5 KB
  • references/timeline-section.md9 KB
  • references/values-section.md9 KB

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.