Greenville Triumph × Greenville Liberty
Proposal Deck Design System

The visual language behind every Triumph and Liberty partnership deck.

A living guide for the proposal template at Proposal Creator/template/proposal.html. Three themes, one grammar, zero guesswork.

Explore the System
01 Foundations 02 Typography 03 Components 04 Motion 05 Pre-Ship
Scroll

Three themes, one canvas. Triumph green, Liberty blue, or both.

Every accent, gradient, and overlay resolves from the active theme token. Flip the switch in the nav — the entire page re-themes: hero glow, table hover, totals gradient, everything. If a color on this page stays put when you switch themes, it's a bug.

Active Theme Palette triumph
--accent
#97D700
--accent-dim
#72B431
--accent-2
#004C97
--accent-2-dim
#002855
--navy-deep
#0A1628
--navy
#0F1C33
--surface
#162847
--surface-2
#1C3256
data-theme="triumph"

Triumph (Default)

Green + deep navy. The home kit. Use for Triumph-focused proposals and internal system.

data-theme="liberty"

Liberty

Rich blue + yellow. Liberty leads with blue; yellow is the accent, used sparingly. Use when the proposal leads with Greenville Liberty.

data-theme="combined"

Combined

Triumph green + Liberty blue. Both properties, each given equal weight. Use when the deck sells Triumph and Liberty as a bundle.

Inter for body, JetBrains Mono for money.

Display sizes scale fluidly via clamp() — no media-query ladder. Monospace numerics carry every stat and price so columns line up without tabular hacks.

Fluid Type Scale Inter 300–900 / JetBrains Mono 400–700
Heroclamp(2.4, +3.8vw, 4.65)
900 · -0.025em
Anchor the moment.
Section Titleclamp(1.9, +2.2vw, 3.15)
900 · -0.018em
A system built for elite decks.
Subhead1.35rem
700 · 1.3 lh
Clear hierarchy, zero ambiguity.
Body1rem
400 · 1.65 lh
Body copy runs in --text-dim so display headlines carry the visual weight. Line-height is a deliberate 1.65 — enough air to breathe on long proposal pages.
Mono Value1.1rem
Tabular nums
$100,510 · +22% · 4,500 seats
Eyebrow0.72rem
700 · 0.32em tracking
Partnership Proposal

Every block in the proposal template, documented live.

Eight components carry the full weight of every deck. Each renders live, at real scale, with real Triumph imagery and realistic copy. Change the theme and watch them all re-tint in the same gesture.

Stat Band.stats · used in Why Now & Venue
88%
Fans want more women's soccer access
+22%
Soccer fandom growth 2019–2022
4,500
GE Vernova Park match capacity
2.37M
Swamp Rabbit Trail visits (2024)
Phase Header.phase-header · big outlined mono number
01

West Side Opens — Founding Supporter Inventory

1,676 new seats, four premium tiers, and a tunnel-club experience built around the supporters' section. Use this block to signal a new chapter in a deck.

Photo Strip.photo-strip · 3-up imagery
GE Vernova Park at night South Premium North West Patio
Pillar Row.pillar · index · body · value
PILLAR 01

Matchday Presenting Partner

Season-long presenting rights across every home match — the most visible role in the Triumph calendar.

  • LED signage at every home match
  • Starting XI entitlement with in-game activation
  • Match-day social and post-match score updates
$25,000
PILLAR 02

Premium Hospitality Host

Own one club per match. Branded entry, dedicated servers, private field-level experiences for clients and employees.

  • Branded tunnel-club signage at every home match
  • Pre-match dining for 32 guests with F&B included
  • Naming rights on one matchday per season
$35,000
Investment Table.invest-table · mono values right-aligned
Partnership PillarInvestment
Matchday Presenting Partner$25,000
Premium Hospitality Host$35,000
Share the Magic Initiative$35,000
Employee Engagement$10,510
Phase One — per year$105,510
Market Callouts.callouts · alternating left accent
+22%
Soccer fandom growth 2019–2022 — outpacing every other major sport
#2
Favorite sport to watch among Americans 18–24
$2B+
Active USL capital in stadium-anchored development
50
Professional clubs across 200+ U.S. markets
Asset Grid.assets-grid · labeled deliverables
Designation
Official Founding Partner of Greenville Triumph SC
Presenting Rights
Season-long across every home match and digital channel
Launch Moments
Head coach, roster, schedule-release announcements
Content Series
Building the Club — behind-the-scenes players and staff
Community
Enhanced Share the Magic initiative at full-season scale
Executive Access
Team, staff, practices, private events for partner clients
Totals Block.totals-wrap · gradient grand total
Phase 1 — 2026
$105,510
Phase 1 — 2027
$105,510
Phase 2
$180,000
Total Multi-Year Partnership
$391,020

Built for Triumph.

Use one full-bleed image break between component-heavy sections. It resets the eye, anchors the page in a real place, and gives the next section room to land.

4,500
Match capacity (6,000 phase two)
200+
Annual events at the venue
12K
Year-round event capacity
2.37M
Swamp Rabbit Trail visits (2024)

Movement serves content. Content never serves movement.

Every animation in the template is short, damped, and triggered by intent — a scroll crossing a threshold, a hover, a click. No autoplay, no loops, no parallax. When in doubt, turn it down.

Reveal on Scroll

Section titles fade in with a 10px rise when they enter the viewport. IntersectionObserver threshold 0.12, duration 550ms.

transform: translateY(10px) · 0.55s

Nav Hide / Show

On downward scroll past 120px the nav slides up. On any upward scroll it returns. No scroll-jack, no debouncing theater.

translateY(-100%) · 0.3s

Bullet Width Tick

Pillar bullets grow from 10px to 16px on hover — a whisper of feedback, not a flex.

width: 10 → 16 · 0.2s

Scroll Hint Bob

Hero scroll hint bobs 8px every 2.4s. Runs once the page is idle. Disappears the moment the user scrolls.

@keyframes bob · ease-in-out

From the supporters' section.

Two full-bleed breaks is the maximum for a single deck. More than that and the rhythm becomes noise. Pair them with the most emotionally resonant imagery in the project folder.

Zero tolerance for these. One hit anywhere is a bug.

Run every check below before saying a deck is done. The recursive greps must all return zero. The live URL must return 401 (login page). Anything less and it ships broken.

The word on the forbidden list, anywhere.Never written on badges, subtitles, footers, robots.txt — never. Recursive grep must return zero.
forbidden
No three-letter club abbreviations in client copy.Always write "Greenville Liberty" and "Greenville Triumph SC" in full. Abbreviations read as internal shorthand and break the polish.
naming
No $ placeholders left in the file.Run tools/fix_placeholders.py after every Write. Verify with grep — must return 0.
build
No raw \\uXXXX escapes.Unicode should render as actual characters. The fixer decodes the common ones; grep for \\u0 — must be 0.
build
Deploy with --branch main.Without it, wrangler ships a preview and the custom domain keeps serving stale content. The global hook blocks this; don't bypass it.
deploy
Live URL returns 401 (login page).200 means auth middleware didn't deploy. Verify with curl before declaring done.
verify
Cross-field numbers match.Hero totals, pillar values, investment table, grand total — the numbers in the deck agree. If they don't, the whole deck is suspect.
content

Ship proposals that look like the partnership.

This is the grammar. Every new client deck starts from the copy-and-edit template, swaps imagery and copy, runs the placeholder fixer, and deploys. The design never slips, because the design isn't negotiable — it's the system.

Back to Top