website poc
This commit is contained in:
229
docs/THEME.md
Normal file
229
docs/THEME.md
Normal file
@@ -0,0 +1,229 @@
|
||||
# GridPilot Theme — “Smooth Performance Dark”
|
||||
*A modern, ultra-polished, buttery-smooth interface that feels engineered, premium, and joyful — without losing the seriousness of sim racing.*
|
||||
|
||||
---
|
||||
|
||||
# 1. Design Philosophy
|
||||
|
||||
GridPilot should feel like:
|
||||
- **a precision instrument**, not a toy
|
||||
- **a premium dashboard**, not a corporate SaaS page
|
||||
- **smooth and responsive**, not flashy
|
||||
- **crafted**, not overdesigned
|
||||
- **racing-inspired**, not gamer-edgy
|
||||
|
||||
It combines:
|
||||
- the readability & seriousness of motorsport tools
|
||||
- with the soft, fluid, polished feel of a high-end app
|
||||
|
||||
Think:
|
||||
**"iRacing x Apple UI x Motorsport telemetry aesthetics"**.
|
||||
|
||||
---
|
||||
|
||||
# 2. Visual Style
|
||||
|
||||
### Core Aesthetic:
|
||||
- dark, matte background
|
||||
- soft gradients (subtle, not neon)
|
||||
- elegant glows only where needed
|
||||
- crisp typography
|
||||
- generous spacing
|
||||
- smooth UI hierarchy transitions
|
||||
- layer depth through blur + shadow stacking (but tasteful)
|
||||
|
||||
### Color Palette:
|
||||
- **Deep Graphite:** `#0E0F11` (main background)
|
||||
- **Iron Gray:** `#181B1F` (cards & panels)
|
||||
- **Charcoal Outline:** `#22262A` (borders)
|
||||
- **Primary Blue:** `#198CFF` (accents, active states)
|
||||
- **Performance Green:** `#6FE37A` (success)
|
||||
- **Warning Amber:** `#FFC556` (markers)
|
||||
- **Subtle Neon Aqua:** `#43C9E6` (interactive glow effects)
|
||||
|
||||
Colors are **precise**, not noisy.
|
||||
|
||||
---
|
||||
|
||||
# 3. Animation Philosophy — “Buttery Smooth, Never Distracting”
|
||||
|
||||
Animations in GridPilot should:
|
||||
- feel like a **fast steering rack**: sharp + controlled
|
||||
- feel **premium**, not “flashy”
|
||||
- be **motivated**, not ornamental
|
||||
- communicate **state change** clearly
|
||||
|
||||
**Animation Style:**
|
||||
- low-spring, high-damping motion
|
||||
- small distances, high velocity
|
||||
- micro-easing, Apple-like rebound
|
||||
- intelligent inertia
|
||||
- zero stutter
|
||||
|
||||
**Target vibe:**
|
||||
> “Everything feels alive and responsive, like the UI wants to race with you.”
|
||||
|
||||
---
|
||||
|
||||
# 4. Where Animations Should Shine
|
||||
|
||||
### ✔ Hover Interactions
|
||||
Buttons + cards get:
|
||||
- subtle upscale (`1.0 → 1.03`)
|
||||
- color bloom
|
||||
- ambient glow (low opacity, soft spread)
|
||||
|
||||
### ✔ Page Transitions
|
||||
- fade + slide (30–50px)
|
||||
- layered parallax for content panels
|
||||
- 150–250ms total
|
||||
|
||||
Feels warm, inviting, non-static.
|
||||
|
||||
### ✔ Filters & Tabs
|
||||
- sliding underline indicator
|
||||
- smooth kinetic scrolling
|
||||
- minimal ripple or highlight
|
||||
|
||||
### ✔ Dialogs & Panels
|
||||
- spring pop (`scale 0.96 → 1`)
|
||||
- soft drop shadow expansion
|
||||
- background blur fade-in
|
||||
|
||||
### ✔ Table Row Expand / Collapse
|
||||
- height transition: 150ms
|
||||
- opacity fade-in: 120ms
|
||||
- chevron rotation: 180ms
|
||||
|
||||
Feels like unfolding technical data — perfect for racing nerds.
|
||||
|
||||
### ✔ Notifications
|
||||
- slide-in from top right
|
||||
- friction-based deceleration
|
||||
- micro-bounce at rest state
|
||||
|
||||
---
|
||||
|
||||
# 5. What NOT to animate
|
||||
|
||||
To avoid becoming “too modern = startup SaaS = untrustworthy”:
|
||||
|
||||
**No:**
|
||||
- giant hero animations
|
||||
- unnecessary motion in typography
|
||||
- floating shapes / illustration wobble
|
||||
- confetti / particle effects
|
||||
- autoplay video backgrounds
|
||||
- mobile-app style “over cute” transitions
|
||||
|
||||
GridPilot must feel:
|
||||
**professional → premium → but still understated.**
|
||||
|
||||
---
|
||||
|
||||
# 6. Component Design Rules
|
||||
|
||||
### Cards
|
||||
- slightly rounded (6–8px)
|
||||
- soft shadow (blur 20–28px)
|
||||
- subtle ambient noise texture (optional)
|
||||
- gentle hover glow
|
||||
|
||||
### Buttons
|
||||
- pill shape (but not too round)
|
||||
- glossy gradient *only when hovered*
|
||||
- laser-sharp outline on active state
|
||||
- fast press down animation (`75ms`)
|
||||
|
||||
### Tables
|
||||
- high-density, readable
|
||||
- animated sort indicators
|
||||
- fade-in rows on update
|
||||
- highlight row on hover
|
||||
|
||||
### Modals
|
||||
- glassy blurred background
|
||||
- smooth opening
|
||||
- soft drop-shadow bloom
|
||||
- quick responsive closing
|
||||
|
||||
---
|
||||
|
||||
# 7. Typography
|
||||
|
||||
A modern, premium sans-serif:
|
||||
- **Inter**
|
||||
- **Roboto Flex**
|
||||
- or **Plus Jakarta Sans**
|
||||
|
||||
Font weight:
|
||||
- light + regular for body
|
||||
- semibold for headings
|
||||
- numeric fields medium or monospaced (for racing aesthetics)
|
||||
|
||||
Typography motion:
|
||||
- heading fade-in
|
||||
- numeric counters animate upward subtly (60–120ms)
|
||||
|
||||
---
|
||||
|
||||
# 8. UX Tone
|
||||
|
||||
GridPilot should **feel**:
|
||||
|
||||
- confident
|
||||
- calm
|
||||
- minimal
|
||||
- smart
|
||||
- “built by people who actually race”
|
||||
- respectful of the user’s time
|
||||
- not corporate
|
||||
- not recruiter-slick
|
||||
- not childish gamer UI
|
||||
|
||||
But also:
|
||||
**pleasant, smooth, and delightful to interact with.**
|
||||
|
||||
---
|
||||
|
||||
# 9. Comparative Inspirations
|
||||
|
||||
### From iRacing UI:
|
||||
- dark palette
|
||||
- density
|
||||
- data-first layout
|
||||
- serious tone
|
||||
|
||||
### From VRS:
|
||||
- technical clarity
|
||||
- motorsport professionalism
|
||||
|
||||
### From Apple UI:
|
||||
- smooth transitions
|
||||
- subtle bounce
|
||||
- soft shadows
|
||||
- tasteful blur
|
||||
|
||||
### From SimHub / Racelab:
|
||||
- functional panels
|
||||
- high readability
|
||||
- non-intrusive visuals
|
||||
|
||||
GridPilot combines all these influences without looking like any of them directly.
|
||||
|
||||
---
|
||||
|
||||
# 10. Goal Summary
|
||||
|
||||
**GridPilot = the “luxury cockpit dashboard” of league racing platforms.**
|
||||
|
||||
- dark, technical look
|
||||
- premium smoothness
|
||||
- fast, precise interactions
|
||||
- functional layouts
|
||||
- no corporate noise
|
||||
- no SaaS gimmicks
|
||||
- no over-the-top neon gamer aesthetic
|
||||
|
||||
Just clean, fast, beautiful racing software
|
||||
that feels as nice to use as a fresh lap in a good rhythm.
|
||||
197
docs/VOICE.md
Normal file
197
docs/VOICE.md
Normal file
@@ -0,0 +1,197 @@
|
||||
# GridPilot — Voice & Tone Guide
|
||||
*A calm, clear, confident voice built for sim racers.*
|
||||
|
||||
---
|
||||
|
||||
## 1. Core Personality
|
||||
|
||||
GridPilot’s voice is:
|
||||
|
||||
### **Calm**
|
||||
Never loud, never chaotic, never dramatic.
|
||||
|
||||
### **Clear**
|
||||
Short sentences. Direct meaning. Zero fluff.
|
||||
|
||||
### **Competent**
|
||||
We sound like people who know racing and know what matters.
|
||||
|
||||
### **Friendly, not goofy**
|
||||
Approachable and human — without memes, slang, or cringe.
|
||||
|
||||
### **Non-corporate**
|
||||
We avoid startup jargon and “enterprise” tone completely.
|
||||
|
||||
---
|
||||
|
||||
## 2. How GridPilot Sounds
|
||||
|
||||
### **Direct**
|
||||
We make the point quickly. No fillers.
|
||||
|
||||
**Example:**
|
||||
“Standings updated.”
|
||||
|
||||
### **Minimal**
|
||||
We remove unnecessary words.
|
||||
Writing should feel clean — like the UI.
|
||||
|
||||
### **Honest**
|
||||
We never overpromise or exaggerate.
|
||||
GridPilot says what it does, nothing more.
|
||||
|
||||
### **Human**
|
||||
Natural phrasing, like talking to another racer.
|
||||
|
||||
---
|
||||
|
||||
## 3. What We Avoid
|
||||
|
||||
### ❌ Corporate language
|
||||
“scalable solution,” “empower,” “revolutionize,” “synergy”
|
||||
|
||||
### ❌ Startup hype
|
||||
“game-changing,” “disruptive,” “next-gen”
|
||||
|
||||
### ❌ Gamer slang
|
||||
“let’s gooo,” “pog,” “EZ clap,” emojis everywhere
|
||||
|
||||
### ❌ Sales pressure
|
||||
“Sign up now!!! Limited time only!!!”
|
||||
|
||||
### ❌ Over-explaining
|
||||
No long paragraphs to say something simple.
|
||||
|
||||
---
|
||||
|
||||
## 4. Tone by Context
|
||||
|
||||
### **Landing Page**
|
||||
- calm
|
||||
- confident
|
||||
- benefit-focused
|
||||
- no hype
|
||||
- welcoming
|
||||
|
||||
Example:
|
||||
“League racing should feel organized. GridPilot brings everything into one place.”
|
||||
|
||||
---
|
||||
|
||||
### **In-App UI**
|
||||
- crisp
|
||||
- tool-like
|
||||
- neutral
|
||||
- small sentences
|
||||
|
||||
Examples:
|
||||
“Race added.”
|
||||
“Results imported.”
|
||||
“Penalty applied.”
|
||||
|
||||
---
|
||||
|
||||
### **Notifications**
|
||||
- non-intrusive
|
||||
- soft
|
||||
- clear
|
||||
|
||||
Examples:
|
||||
“Your next race is tomorrow.”
|
||||
“Standings updated.”
|
||||
|
||||
---
|
||||
|
||||
### **Errors**
|
||||
- helpful
|
||||
- steady
|
||||
- no blame
|
||||
|
||||
Examples:
|
||||
“Something went wrong. Try again.”
|
||||
“Connection lost. Reconnecting…”
|
||||
|
||||
---
|
||||
|
||||
### **Emails**
|
||||
- friendly
|
||||
- simple
|
||||
- short
|
||||
|
||||
Example:
|
||||
“Your season starts next week. Here’s the schedule.”
|
||||
|
||||
---
|
||||
|
||||
## 5. Writing Style Rules
|
||||
|
||||
### **Short sentences**
|
||||
Easy to read. Easy to scan.
|
||||
|
||||
### **Simple verbs**
|
||||
Join, manage, view, race, update.
|
||||
|
||||
### **Active voice**
|
||||
“GridPilot updates your standings.”
|
||||
Not:
|
||||
“Your standings are being updated…”
|
||||
|
||||
### **No marketing padding**
|
||||
We never pretend to be bigger than we are.
|
||||
|
||||
### **Every sentence should have purpose**
|
||||
No filler words. No decorative language.
|
||||
|
||||
---
|
||||
|
||||
## 6. Phrases We Like
|
||||
|
||||
- “Everything in one place.”
|
||||
- “Your racing identity.”
|
||||
- “Clean standings.”
|
||||
- “No spreadsheets.”
|
||||
- “Race. We handle the rest.”
|
||||
- “Built for league racing.”
|
||||
- “Clear. Simple. Consistent.”
|
||||
|
||||
These reinforce clarity and confidence.
|
||||
|
||||
---
|
||||
|
||||
## 7. Phrases We Never Use
|
||||
|
||||
- “premium experience”
|
||||
- “unlock your potential”
|
||||
- “cutting-edge AI”
|
||||
- “transform the sim racing landscape”
|
||||
- “we’re disrupting the industry”
|
||||
- “epic,” “insane,” “crazy good,” etc.
|
||||
|
||||
Anything salesy, dramatic, childish, or corporate is banned.
|
||||
|
||||
---
|
||||
|
||||
## 8. Emotional Goals
|
||||
|
||||
GridPilot should make people feel:
|
||||
|
||||
### **In control**
|
||||
Information is clear and predictable.
|
||||
|
||||
### **Supported**
|
||||
Admin work is easier. Driver info is organized.
|
||||
|
||||
### **Respected**
|
||||
We never talk down to users.
|
||||
|
||||
### **Focused**
|
||||
The tone keeps attention on racing, not us.
|
||||
|
||||
### **Confident**
|
||||
The platform feels stable and trustworthy.
|
||||
|
||||
---
|
||||
|
||||
## 9. One-line Voice Summary
|
||||
|
||||
**GridPilot speaks like a calm, competent racer who explains things clearly — never loud, never corporate, never cringe.**
|
||||
@@ -1,217 +1,186 @@
|
||||
# GridPilot — Where iRacing League Racing Finally Comes Together
|
||||
*A modern platform that makes league racing clearer, cleaner, and actually meaningful — for drivers, admins, and teams.*
|
||||
# GridPilot — Where League Racing Finally Means Something
|
||||
*A platform that gives iRacing drivers, teams, and leagues a real competitive identity — not just another set of tools.*
|
||||
|
||||
---
|
||||
|
||||
## League racing deserves better.
|
||||
## League racing is incredible.
|
||||
What’s missing is everything around it.
|
||||
|
||||
If you’ve ever joined or run a league, you already know:
|
||||
If you've been in any league, you know the feeling:
|
||||
|
||||
- Discord chaos
|
||||
- scattered spreadsheets
|
||||
- unclear standings
|
||||
- missing results
|
||||
- manual points
|
||||
- confusing sign-ups
|
||||
- random DMs for protests
|
||||
- zero identity
|
||||
- results scattered across Discord
|
||||
- standings hidden in spreadsheets
|
||||
- no long-term stats
|
||||
- and nothing that ties the whole experience together
|
||||
- no consistent identity
|
||||
- no team history
|
||||
- no career progression
|
||||
- no structure that carries into the next season
|
||||
- and nothing that ties all your racing together
|
||||
|
||||
The racing is incredible.
|
||||
**Everything around it shouldn’t feel like work.**
|
||||
The races are great.
|
||||
**The ecosystem isn’t.**
|
||||
|
||||
GridPilot fixes the part iRacing leaves behind.
|
||||
GridPilot fixes the part that’s always been missing:
|
||||
**a real home for your league racing identity.**
|
||||
|
||||
---
|
||||
|
||||
# What GridPilot gives you
|
||||
# What GridPilot actually brings
|
||||
|
||||
## 📅 A real home for your league
|
||||
Every league gets:
|
||||
Not just tools.
|
||||
Not just QoL.
|
||||
GridPilot gives league racing something it never had before:
|
||||
|
||||
- full schedule
|
||||
- standings
|
||||
- results
|
||||
- roster
|
||||
- rules
|
||||
- branding
|
||||
- clean public league page
|
||||
- Discord / Twitch / YouTube links
|
||||
## ⭐ A persistent identity
|
||||
Your races, your seasons, your progress — finally in one place.
|
||||
|
||||
No complexity.
|
||||
No setup nightmares.
|
||||
Just a “this looks legit” league hub.
|
||||
|
||||
---
|
||||
|
||||
## 🏁 Automatic results & standings
|
||||
You race.
|
||||
We handle everything:
|
||||
|
||||
- positions
|
||||
- incidents
|
||||
- drop weeks
|
||||
- driver points
|
||||
- team points
|
||||
- season stats
|
||||
- updated standings within seconds
|
||||
|
||||
Admins never touch spreadsheets again.
|
||||
Drivers always know where they stand.
|
||||
|
||||
---
|
||||
|
||||
## 👥 Real team racing — constructors-style
|
||||
Not just tags next to names.
|
||||
A real team championship system:
|
||||
|
||||
- multiple drivers score points
|
||||
- lineups can change every week
|
||||
- contribution stats per driver
|
||||
- season-long team battles
|
||||
- proper constructors standings
|
||||
|
||||
Feels like real motorsport, not Discord roleplay.
|
||||
|
||||
---
|
||||
|
||||
## ⭐ GridPilot Rating — league racing finally has meaning
|
||||
iRating is great for matchmaking.
|
||||
But league racing is different:
|
||||
|
||||
- same rivals every week
|
||||
- real racecraft
|
||||
- real consistency
|
||||
- real reliability
|
||||
- real incident patterns
|
||||
- real teamwork
|
||||
|
||||
So GridPilot gives drivers a rating system built **specifically** for league competition.
|
||||
|
||||
### GridPilot Rating reflects:
|
||||
- finishing positions (normalized)
|
||||
- field strength
|
||||
- consistency
|
||||
- clean driving
|
||||
- incidents vs outcomes
|
||||
- reliability (attendance)
|
||||
- lifetime stats
|
||||
- season history
|
||||
- team contribution
|
||||
|
||||
This isn’t “who’s fastest in officials.”
|
||||
This is **who’s valuable in league racing**.
|
||||
|
||||
It gives league racing the one thing it never had:
|
||||
**long-term meaning**.
|
||||
|
||||
---
|
||||
|
||||
## 👤 Driver profiles that actually feel like a racing career
|
||||
Every driver gets:
|
||||
|
||||
- race history
|
||||
- season standings
|
||||
- personal rating
|
||||
- incident trends
|
||||
- pace consistency
|
||||
- team membership
|
||||
- multi-league stats
|
||||
- long-term progression
|
||||
- performance consistency
|
||||
- multi-league overview
|
||||
- your own rating
|
||||
|
||||
iRacing gives you physics.
|
||||
**GridPilot gives you identity.**
|
||||
**GridPilot gives you a career.**
|
||||
|
||||
---
|
||||
|
||||
## ⚖ Clean protests & quick penalties
|
||||
No more chaotic DMs or lost evidence.
|
||||
## ⭐ A rating built for league racing
|
||||
iRating doesn’t reflect league performance.
|
||||
GridPilot Rating does.
|
||||
|
||||
Drivers submit:
|
||||
- timestamps
|
||||
- involved drivers
|
||||
- description
|
||||
- optional replay clip
|
||||
It measures:
|
||||
- finishing results
|
||||
- field strength
|
||||
- clean driving
|
||||
- consistency
|
||||
- reliability (attendance)
|
||||
- team impact
|
||||
|
||||
Admins get:
|
||||
- a clean review panel
|
||||
- quick penalty tools (warnings, time penalties, points deduction, DQ)
|
||||
- standings update instantly
|
||||
|
||||
It keeps things fair without drama.
|
||||
This isn’t about matchmaking.
|
||||
This is about **who you are as a league racer**.
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Race management without headaches
|
||||
Admins get:
|
||||
## ⭐ Real team competition
|
||||
Not cosmetic tags.
|
||||
Not “one driver per car.”
|
||||
|
||||
- season builder
|
||||
- scoring presets
|
||||
- structured sign-ups
|
||||
- roster tools
|
||||
- penalty tools
|
||||
- league branding
|
||||
- automatic results
|
||||
- one-click “create sessions” helper
|
||||
GridPilot supports real constructors-style team racing:
|
||||
- multiple drivers score points
|
||||
- every contribution counts
|
||||
- team standings across seasons
|
||||
- team identity & history
|
||||
- rivalries that build over time
|
||||
|
||||
Everything around racing becomes **organized** instead of exhausting.
|
||||
For the first time, **teams actually matter**.
|
||||
|
||||
---
|
||||
|
||||
# Why people will sign up
|
||||
## ⭐ A unified place for leagues
|
||||
Leagues get a clean presence that builds prestige over time:
|
||||
|
||||
### Drivers want:
|
||||
- structure
|
||||
- identity
|
||||
- progression
|
||||
- clean standings
|
||||
- team pride
|
||||
- schedule
|
||||
- results
|
||||
- standings
|
||||
- rules
|
||||
- roster
|
||||
- branding
|
||||
|
||||
No more living across five tools and ten channels.
|
||||
|
||||
---
|
||||
|
||||
## ⭐ Results that actually stay
|
||||
Every race you run becomes part of:
|
||||
|
||||
- your profile
|
||||
- your team's profile
|
||||
- your rating
|
||||
- your season
|
||||
- your history
|
||||
|
||||
League racing is no longer “one season and forgotten.”
|
||||
It becomes a story.
|
||||
|
||||
---
|
||||
|
||||
# Why drivers will sign up
|
||||
|
||||
Drivers finally get:
|
||||
- long-term identity
|
||||
- a rating that reflects real competition
|
||||
- real team progression
|
||||
- stats that mean something
|
||||
- rivalries that persist
|
||||
- a racing home
|
||||
|
||||
### Admins want:
|
||||
- less admin work
|
||||
- automatic standings
|
||||
- headache-free seasons
|
||||
- reliable tools
|
||||
- fewer mistakes
|
||||
- professional league pages
|
||||
|
||||
### Teams want:
|
||||
- real constructors scoring
|
||||
- recruiting tools
|
||||
- contribution stats
|
||||
- long-term reputation
|
||||
|
||||
GridPilot gives all three what they've been missing.
|
||||
It’s the first time league racing feels connected instead of fragmented.
|
||||
|
||||
---
|
||||
|
||||
# Why we’re building this
|
||||
# Why teams will sign up
|
||||
|
||||
Because league racing is the most exciting part of sim racing —
|
||||
and the most poorly supported.
|
||||
Teams finally get:
|
||||
- constructors championships
|
||||
- contribution breakdowns
|
||||
- performance history
|
||||
- recruiting visibility
|
||||
- reputation across leagues and seasons
|
||||
|
||||
We’re keeping it simple:
|
||||
build the tools that actually help,
|
||||
ship fast,
|
||||
improve constantly,
|
||||
and let the community guide the rest.
|
||||
Teams become part of the world — not just a name next to a driver.
|
||||
|
||||
---
|
||||
|
||||
# Why admins will use it
|
||||
|
||||
Admin tooling exists, yes —
|
||||
but **only to serve the identity and competition layer**.
|
||||
|
||||
GridPilot handles:
|
||||
|
||||
- results
|
||||
- standings
|
||||
- points
|
||||
- penalties
|
||||
- registrations
|
||||
|
||||
So admins can focus on running the league —
|
||||
not running spreadsheets.
|
||||
|
||||
---
|
||||
|
||||
# Why we're building this
|
||||
|
||||
Because league racing deserves a place where everything connects:
|
||||
|
||||
- your races
|
||||
- your story
|
||||
- your stats
|
||||
- your team
|
||||
- your rivals
|
||||
- your seasons
|
||||
|
||||
All in one place, finally.
|
||||
|
||||
No hype.
|
||||
No nonsense.
|
||||
Just better league racing.
|
||||
No buzzwords.
|
||||
Just clarity and identity.
|
||||
|
||||
---
|
||||
|
||||
# Want early access?
|
||||
|
||||
GridPilot is opening early access to **everyone** who wants cleaner, more meaningful league racing.
|
||||
GridPilot is opening early access to **everyone** who wants their league racing to feel meaningful, structured, and connected.
|
||||
|
||||
Drop your email if you want:
|
||||
- early feature access
|
||||
- updates as things roll out
|
||||
- a direct influence on what we build next
|
||||
- zero spam, zero BS
|
||||
- early access
|
||||
- progress updates
|
||||
- a say in what comes next
|
||||
- zero spam
|
||||
|
||||
[ Email field ] [ Sign Up ]
|
||||
|
||||
Let’s make league racing better — together.
|
||||
Let’s make league racing meaningful — together.
|
||||
Reference in New Issue
Block a user