Skip to content
Back to skills

Ascent Frontend Design

ASecurity

Create distinctive, on-brand frontend interfaces for Ascent Training. Use this skill when building landing pages, marketing sites, app UI, React components, or any visual artifact for Ascent. Combines the mountain/guide brand identity with topographic map aesthetics and emerald/charcoal color system. Generates production-grade code that is immediately recognizable as Ascent.

  • 27 stars
  • 0 votes
  • 2 copies
  • 51 views
  • Added June 14, 2026
designgoreactnextjsapifrontendperformance

Works with

  • cursor
  • cli
  • api

Security analysis

A100/100

Scanned June 14, 2026

npx -y skills add JeremyKalmus/parade --skill ascent-frontend-design --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ascent Frontend Design?

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

Security grade badge for Ascent Frontend Design
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jeremykalmus-ascent-frontend-design/badge)](https://www.skillsdirectory.com/skills/jeremykalmus-ascent-frontend-design)

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
---
name: ascent-frontend-design
description: Create distinctive, on-brand frontend interfaces for Ascent Training. Use this skill when building landing pages, marketing sites, app UI, React components, or any visual artifact for Ascent. Combines the mountain/guide brand identity with topographic map aesthetics and emerald/charcoal color system. Generates production-grade code that is immediately recognizable as Ascent.
---

# Ascent Frontend Design Skill

This skill guides creation of distinctive, on-brand frontend interfaces for Ascent Training that are immediately recognizable and avoid generic "AI slop" aesthetics.

## Brand Context

**Ascent Training** is an intelligently guided training platform for endurance athletes. The core metaphor is **"You Climb. We Guide."** — athletes do the work and earn their achievements, while Ascent provides expert direction and support.

**Visual Identity**: Premium, focused, outdoor-inspired. Think: the feeling of early morning on a mountain trail, topographic maps in a high-end outdoor shop, the precision of Apple combined with the soul of Patagonia.

**NOT**: Generic fitness app, startup purple gradients, clinical dashboards, or motivational poster aesthetics.

---

## Signature Visual Elements

### 1. Topographic Map Backgrounds

**THE defining visual element of Ascent.** Use custom Mapbox topographic styling as hero backgrounds, section dividers, and atmospheric elements.

**Mapbox Style URL**: `mapbox://styles/jeremy-kalmus/cmj0mlugz007h01r87296hs3n`

**Implementation patterns**:

```css
/* Full-bleed hero background */
.hero-map-background {
  background-image: url('mapbox-static-api-url');
  background-size: cover;
  background-position: center;
  position: relative;
}

/* Gradient overlay for text legibility */
.hero-map-background::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(10, 10, 10, 0.7) 0%,
    rgba(10, 10, 10, 0.4) 50%,
    rgba(10, 10, 10, 0.9) 100%
  );
}

/* Subtle contour line pattern for sections */
.section-with-terrain {
  background: 
    url('/patterns/contour-lines.svg') repeat,
    linear-gradient(180deg, #171717 0%, #0a0a0a 100%);
  background-blend-mode: soft-light;
}
```

**When to use**:
- Landing page hero (full viewport)
- Section backgrounds (subtle, with overlay)
- Card accents (cropped detail views)
- Email headers and social media graphics

**Key principle**: The map should feel like looking at actual terrain, not a decorative pattern. Show real topography with elevation, ridgelines, and valleys visible.

### 2. Emerald + Charcoal Color System

**Primary Palette**:
```css
:root {
  /* Backgrounds - Charcoal scale */
  --bg-primary: #0a0a0a;      /* neutral-950 - deepest */
  --bg-secondary: #171717;    /* neutral-900 - cards */
  --bg-tertiary: #262626;     /* neutral-800 - elevated */
  --bg-interactive: #404040;  /* neutral-700 - inputs */

  /* Accent - Emerald scale */
  --accent-primary: #10b981;  /* emerald-500 - main */
  --accent-light: #34d399;    /* emerald-400 - hover */
  --accent-dark: #059669;     /* emerald-600 - pressed */
  --accent-subtle: #064e3b;   /* emerald-900 - backgrounds */
  --accent-glow: rgba(16, 185, 129, 0.2); /* glows, focus rings */

  /* Text */
  --text-primary: #fafafa;    /* neutral-50 */
  --text-secondary: #e5e5e5;  /* neutral-200 */
  --text-tertiary: #a3a3a3;   /* neutral-400 */
  --text-muted: #737373;      /* neutral-500 */

  /* Secondary accent */
  --accent-warm: #f59e0b;     /* amber-500 - warmth, energy */
}
```

**Color meaning**:
- **Emerald**: Growth, vitality, forward progress, nature, health
- **Charcoal**: Focus, sophistication, premium, nighttime training sessions
- **Amber**: Warmth, sunrise/sunset on peaks, energy, secondary emphasis

**NEVER use**: Purple gradients, bright blue CTAs, pure white backgrounds, or any "startup gradient" combinations.

### 3. Typography

**Font Stack** (Athletic Premium):
```css
:root {
  --font-display: 'Outfit', system-ui, sans-serif;        /* Geometric, confident, athletic */
  --font-body: 'Inter', system-ui, sans-serif;            /* Clean, highly legible, modern */
  --font-mono: 'JetBrains Mono', 'Fira Code', monospace;  /* Metrics and data */
}
```

**Typography rules**:
- Headlines: Bold (700-800), confident, generous letter-spacing (-0.02em) using Outfit
- Body: Clean, highly legible (400-600), comfortable reading using Inter
- Data/metrics: Monospace, lighter weight, emerald accent using JetBrains Mono
- Size contrast: Use dramatic scale jumps (3x+), not timid 1.5x

**Rationale**: Outfit brings athletic confidence and geometric precision. Inter is the industry standard for body text—highly legible and professional without feeling generic.

**Avoid**: Roboto, Open Sans, Lato, or overly playful fonts.

### 4. Motion & Animation

**Philosophy**: Purposeful motion that reinforces the "ascent" metaphor. Elements rise, reveal, and settle — never bounce or wiggle.

```css
/* Core timing */
:root {
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --duration-fast: 150ms;
  --duration-normal: 300ms;
  --duration-slow: 500ms;
}

/* Hero load-in: staggered rise */
.hero-content > * {
  opacity: 0;
  transform: translateY(20px);
  animation: rise-in 0.6s var(--ease-out) forwards;
}
.hero-content > *:nth-child(1) { animation-delay: 0.1s; }
.hero-content > *:nth-child(2) { animation-delay: 0.2s; }
.hero-content > *:nth-child(3) { animation-delay: 0.3s; }

@keyframes rise-in {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Emerald glow pulse for key elements */
@keyframes glow-pulse {
  0%, 100% { box-shadow: 0 0 20px var(--accent-glow); }
  50% { box-shadow: 0 0 40px var(--accent-glow); }
}

/* Subtle parallax on scroll */
.parallax-slow { transform: translateY(calc(var(--scroll) * 0.1)); }
.parallax-medium { transform: translateY(calc(var(--scroll) * 0.2)); }
```

**Motion vocabulary**:
- **Rise**: Elements enter from below (climbing metaphor)
- **Reveal**: Content fades in with subtle movement
- **Glow**: Emerald accent pulses to draw attention
- **Settle**: Elements ease into final position (reaching summit)

**Avoid**: Bounce, wiggle, spin, or any playful/childish motion.

### 5. Spatial Composition

**Layout principles**:
- **Generous whitespace**: Premium feel, breathing room
- **Asymmetric balance**: Not rigid grids, but intentional imbalance
- **Vertical rhythm**: Strong vertical flow (the ascent)
- **Full-bleed moments**: Map backgrounds, hero sections that fill viewport
- **Contained content**: Max-width 1200px for text, let visuals break out

```css
/* Content container */
.content-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 clamp(1rem, 5vw, 4rem);
}

/* Full-bleed break */
.full-bleed {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
}

/* Vertical spacing scale */
.section { padding: clamp(4rem, 10vh, 8rem) 0; }
.section-tight { padding: clamp(2rem, 5vh, 4rem) 0; }
```

---

## Component Patterns

### Primary Button (CTA)

```css
.btn-primary {
  background: var(--accent-primary);
  color: var(--bg-primary);
  font-weight: 600;
  padding: 1rem 2rem;
  border-radius: 12px;
  border: none;
  font-size: 1rem;
  cursor: pointer;
  transition: all var(--duration-normal) var(--ease-out);
  box-shadow: 0 0 20px var(--accent-glow);
}

.btn-primary:hover {
  background: var(--accent-light);
  transform: translateY(-2px);
  box-shadow: 0 0 30px var(--accent-glow);
}

.btn-primary:active {
  background: var(--accent-dark);
  transform: translateY(0);
}
```

### Card Component

```css
.card {
  background: var(--bg-secondary);
  border: 1px solid #262626;
  border-radius: 16px;
  padding: 1.5rem;
  transition: all var(--duration-normal) var(--ease-out);
}

.card:hover {
  border-color: var(--accent-primary);
  transform: translateY(-4px);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
}

/* Card with emerald accent bar */
.card-accent {
  border-left: 4px solid var(--accent-primary);
}
```

### Metric Display

```css
.metric {
  font-family: var(--font-mono);
}

.metric-value {
  font-size: 3rem;
  font-weight: 300;
  color: var(--accent-primary);
  line-height: 1;
}

.metric-label {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-tertiary);
  margin-top: 0.5rem;
}
```

---

## Landing Page Structure

For the Ascent landing page specifically:

### Hero Section
- Full-viewport topographic map background
- Gradient overlay for text legibility
- Bold headline: "You Climb. We Guide."
- Subhead: One sentence value prop
- Single CTA: "Start Your Ascent" or "Join the Beta"
- Staggered rise animation on load

### Problem/Solution Section
- Dark background (#0a0a0a)
- Split layout: problem (left) vs solution (right)
- Use amber accent for problem, emerald for solution
- Subtle contour line pattern in background

### How It Works
- Three steps with mountain metaphor
- Basecamp → Ascent → Summit visual
- Icons or illustrations that feel outdoor/trail-inspired
- NOT generic icons or illustrations

### Features
- Card grid with emerald accent bars
- Each card: Icon + Title + Brief description
- Hover reveals more detail
- Consider subtle map detail as card background

### Social Proof
- Testimonials from real athletes (when available)
- Simple quotes, not elaborate carousel
- Athlete photo + name + discipline

### CTA Section
- Return to topographic map background
- Simple, bold call to action
- Email capture for waitlist

### Footer
- Minimal, dark
- Essential links only
- Small Ascent wordmark

---

## What Makes Ascent Frontend Distinctive

1. **Topographic maps** — No other training app uses this. It's immediately recognizable.

2. **Emerald + Charcoal** — Not the purple/blue of most SaaS, not the orange/black of fitness apps.

3. **Mountain/outdoor aesthetic** — Premium outdoor brand feel, not generic tech startup.

4. **Vertical motion** — Everything rises, reinforcing the "ascent" metaphor.

5. **Premium restraint** — Apple-like polish with outdoor soul. Not cluttered, not clinical.

---

## Anti-Patterns (NEVER Do These)

❌ Purple gradients on white backgrounds
❌ Inter, Roboto, or system fonts
❌ Generic hero images of runners
❌ Bright blue CTAs
❌ Bouncy/playful animations
❌ Stock photography of athletes
❌ Gradient buttons with multiple colors
❌ Busy patterns or textures
❌ Cookie-cutter SaaS layouts
❌ "Get Started Free" in blue button

---

## Implementation Notes

### For React/Next.js
- Use Tailwind CSS with custom config matching color system
- Import Bricolage Grotesque and Source Sans 3 from Google Fonts
- Use Framer Motion for animations
- Mapbox GL JS for interactive map elements

### For Static HTML
- CSS custom properties for theming
- CSS animations (no JS required for core effects)
- Static Mapbox images for performance

### For Artifacts/Prototypes
- Can use inline styles matching color system
- Include Google Fonts link in head
- Use placeholder for map images, describe the topographic effect

---

## Quick Reference

**Brand tagline**: "You Climb. We Guide."
**Primary color**: #10b981 (emerald-500)
**Background**: #0a0a0a (charcoal/neutral-950)
**Font display**: Bricolage Grotesque
**Font body**: Source Sans 3
**Signature element**: Topographic map backgrounds
**Motion**: Rise, reveal, glow — never bounce
**Vibe**: Patagonia meets Apple meets midnight training sessions

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.