Republic-Style Design System
Design DNA
Republic's design is built on one principle: financial-grade trust through visual restraint. Every pixel earns investor confidence. No decoration exists without purpose. The platform feels like a Bloomberg terminal dressed in Dieter Rams' philosophy.
The Republic Aesthetic
1. Color Palette (The Trust Stack)
Background: #ffffff (pure white, no off-whites)
Surface: #f9fafb (cards, containers)
Surface elevated: #ffffff + box-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04)
Border: #e5e7eb (light gray, 1px)
Border emphasis: #d1d5db (slightly darker, for active/hover)
Text primary: #111827 (near-black, high contrast)
Text secondary: #6b7280 (muted gray)
Text tertiary: #9ca3af (captions, timestamps)
Brand green: #10b981 (emerald-500, success, CTA, growth)
Brand green light: #ecfdf5 (emerald-50, subtle badge backgrounds)
Brand green border: #a7f3d0 (emerald-200, badge borders)
Danger: #ef4444 (red-500, sparingly)
Danger light: #fef2f2 (red-50, badge background)
Accent: #3b82f6 (blue-500, links only)
Rules:
- Maximum 2 accent colors per slide (green + one other)
- Never use gradients on backgrounds or cards
- Never use colored left borders on cards (AI slop pattern)
- Dark cards (#111827 or #1a1a1a) used sparingly: max 1 per slide for contrast
- No opacity tricks for backgrounds; use real color values
2. Typography
Primary font: Inter (the fintech standard)
Display/headline alternative: DM Sans 600-700 (acceptable substitute)
Monospace: JetBrains Mono or SF Mono (code blocks only)
Hero stat: 64-80px, weight 700, tracking -0.02em
Slide headline: 36-44px, weight 600, tracking -0.01em
Card title: 18-22px, weight 600
Body text: 15-16px, weight 400, line-height 1.6
Small label: 12-13px, weight 500, uppercase, tracking 0.05em
Caption: 13-14px, weight 400, color #9ca3af
Rules:
- Max 3 font size tiers per slide (hero, body, caption)
- Headlines never bold-italic or decorated
- No text shadows, no text-stroke, no gradient text
- Labels always uppercase with letter-spacing
- Line-height: 1.3 for headlines, 1.6 for body
3. Spacing System
Slide padding: 64px vertical, 80px horizontal
Section gap: 48px between major sections
Card padding: 24-32px
Card gap: 16-20px between cards
Element gap: 12-16px between items in a list
Icon-to-text: 12px
Rules:
- Consistent rhythm: pick one spacing unit (8px base) and stick to multiples
- Generous whitespace beats cramming content
- Never let content touch container edges (min 24px padding)
4. Cards & Containers
Standard card:
background: #ffffff;
border: 1px solid #e5e7eb;
border-radius: 12px;
padding: 24px 28px;
/* No shadow by default */
Elevated card (important content):
background: #ffffff;
border: 1px solid #e5e7eb;
border-radius: 12px;
padding: 28px 32px;
box-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
Accent card (CTA or key metric):
background: #ecfdf5;
border: 1px solid #a7f3d0;
border-radius: 12px;
padding: 28px 32px;
Dark card (sparingly, max 1 per slide):
background: #111827;
color: #f9fafb;
border: none;
border-radius: 12px;
padding: 32px;
Rules:
- border-radius: 12px universally (never 0, never 20px+)
- No colored left borders on cards
- No gradient backgrounds on cards
- No double borders or border tricks
- Cards should feel like they could exist on republic.com
5. Data Presentation
Stat display (Republic's signature):
<div class="stat">
<span class="stat-value">$2.4M</span>
<span class="stat-label">RAISED TO DATE</span>
</div>
- Value: 48-72px, weight 700, color #111827 or #10b981
- Label: 12px, uppercase, tracking 0.05em, color #9ca3af
- Always value above label, never inline
Progress bars:
.bar-track { height: 6px; background: #f3f4f6; border-radius: 3px; }
.bar-fill { height: 6px; background: #10b981; border-radius: 3px; }
- Thin (6-8px), not chunky
- Rounded ends
- No gradients or stripes in bars
Charts:
- Clean axes, minimal gridlines (#f3f4f6)
- Data points as small circles (6-8px), not large dots
- Area fills at 10-15% opacity of the line color
- Max 2 data series per chart
- Always include axis labels
6. Icons & Visual Elements
Icon style: Outlined/stroke, 1.5px stroke weight, 20-24px size
Icon color: #6b7280 (muted) or #111827 (emphasis)
Icon containers: 40x40px circle or rounded square, background #f3f4f6
Rules:
- No filled/solid icons (too heavy)
- No colored icon backgrounds (except green for success states)
- No emoji-style icons
- Prefer Heroicons outline or Lucide
- If using brand logos: real SVGs from SimpleIcons, never text-in-circles
7. Buttons & CTAs
/* Primary */
background: #10b981;
color: #ffffff;
border: none;
border-radius: 8px;
padding: 12px 24px;
font-size: 15px;
font-weight: 600;
/* Secondary */
background: #ffffff;
color: #111827;
border: 1px solid #e5e7eb;
border-radius: 8px;
padding: 12px 24px;
- No gradient buttons
- No pill-shaped buttons (border-radius: 9999px)
- No icon-only buttons without labels
- Max 1 primary CTA per slide
8. Badges & Tags
/* Standard badge */
background: #f3f4f6;
color: #6b7280;
border-radius: 6px;
padding: 4px 10px;
font-size: 12px;
font-weight: 500;
/* Success badge */
background: #ecfdf5;
color: #059669;
border: 1px solid #a7f3d0;
/* Danger badge */
background: #fef2f2;
color: #dc2626;
border: 1px solid #fecaca;
9. Backgrounds & Atmosphere
- Pure white (#ffffff) for slide backgrounds
- No gradient meshes, no noise textures, no ambient glows
- No radial gradient decorations (they look AI-generated)
- If depth is needed: use a single subtle shadow, not background effects
- No dot-grids or pattern overlays
10. Diagrams & Flow Charts
- Connectors: 1.5px solid lines, color #d1d5db
- Arrow heads: small, clean triangles (6px)
- Flow direction: left-to-right or top-to-bottom
- Node style: standard card style (white, 1px border, 12px radius)
- Connection points: small circles (6px) at node edges
- Use green (#10b981) only for the active/highlighted path
- Gray for secondary paths
Scoring Rubric (10 Dimensions)
When scoring a slide or deck, evaluate on these 10 axes (1-10 each):
1. Trust Signal (Does it feel like a financial platform?)
- 10: Could be a Republic deal page
- 5: Looks like a startup landing page
- 1: Looks like a hackathon project
2. Typography Discipline
- 10: 3 clear tiers, consistent sizing, proper tracking
- 5: Too many sizes, inconsistent weights
- 1: Random sizing, decorative fonts
3. Color Restraint
- 10: 2 colors max, used with surgical precision
- 5: 3-4 colors, some unnecessary
- 1: Rainbow, gradients everywhere
4. Whitespace & Breathing Room
- 10: Content breathes, nothing feels cramped
- 5: Adequate but could use more space
- 1: Wall of content, no margins
5. Card & Container Quality
- 10: Consistent radius, borders, padding. Republic-standard.
- 5: Mixed styles, some inconsistency
- 1: Random borders, colors, no system
6. Data Presentation
- 10: Numbers are heroes, clean stat displays, thin progress bars
- 5: Data exists but layout is average
- 1: Data buried in text, no visual treatment
7. Icon & Visual Coherence
- 10: Consistent stroke icons, proper sizing, real brand logos
- 5: Mixed icon styles
- 1: Emoji, filled icons, text-in-circles
8. Layout Composition
- 10: Clear visual anchor, asymmetric columns, purposeful grid
- 5: Functional but predictable
- 1: Everything centered or evenly spaced
9. Dark Element Usage
- 10: Dark cards used sparingly for maximum impact
- 5: Too many or too few dark elements
- 1: Dark elements feel random or overwhelming
10. AI-Slop Avoidance
- 10: No colored left-borders, no gradient cards, no emoji, no generic patterns
- 5: Some AI-slop patterns present
- 1: Looks like ChatGPT generated the CSS
Scoring formula:
- Average of 10 dimensions = raw score
- Penalty: -0.5 for each AI-slop pattern detected
- Bonus: +0.3 for each "this could be on Republic" element
Common Republic-Style Fixes
| Problem |
Republic Fix |
| Dark card with colored left border |
Remove border-left, use full dark bg or green accent border (all sides) |
| Gradient background on container |
Solid color: #f9fafb for light, #111827 for dark |
| Too many colors |
Reduce to #111827 + #10b981 + #ef4444 (if needed) |
| Large rounded corners (16-20px) |
Standardize to 12px |
| Thick borders (2px+) |
Reduce to 1px #e5e7eb |
| Chunky progress bars |
6px height, rounded, no stripes |
| Icon size inconsistency |
Standardize to 20px in 40px containers |
| Text-heavy sections |
Extract key stat as hero number, demote rest |
| Multiple CTAs per slide |
One primary CTA, rest are secondary/text links |
| Decorative background effects |
Remove entirely, pure white |
Workflow
- Audit: Read all slides/pages, catalog every design choice
- Score: Apply the 10-dimension rubric to each slide
- Prioritize: Rank fixes by visual impact (highest delta per change)
- Fix: Apply Republic-style corrections, starting with highest-impact
- Verify: Screenshot and re-score after fixes
- Iterate: Repeat until average score >= 9.0
1---2name: republic-design3description: Republic-style UX design reviewer and scorer for pitch decks, landing pages, and investor-facing materials. Applies Republic.com's design DNA (financial-grade trust, data-forward, restrained elegance) to score and improve any visual artifact. Use when user says "republic", "republic style", "score design", "polish deck", "investor-grade design", or wants to elevate visual quality to crowdfunding-platform standards.4---56# Republic-Style Design System78## Design DNA910Republic's design is built on one principle: **financial-grade trust through visual restraint**. Every pixel earns investor confidence. No decoration exists without purpose. The platform feels like a Bloomberg terminal dressed in Dieter Rams' philosophy.1112## The Republic Aesthetic1314### 1. Color Palette (The Trust Stack)1516```17Background: #ffffff (pure white, no off-whites)18Surface: #f9fafb (cards, containers)19Surface elevated: #ffffff + box-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04)20Border: #e5e7eb (light gray, 1px)21Border emphasis: #d1d5db (slightly darker, for active/hover)2223Text primary: #111827 (near-black, high contrast)24Text secondary: #6b7280 (muted gray)25Text tertiary: #9ca3af (captions, timestamps)2627Brand green: #10b981 (emerald-500, success, CTA, growth)28Brand green light: #ecfdf5 (emerald-50, subtle badge backgrounds)29Brand green border: #a7f3d0 (emerald-200, badge borders)3031Danger: #ef4444 (red-500, sparingly)32Danger light: #fef2f2 (red-50, badge background)3334Accent: #3b82f6 (blue-500, links only)35```3637**Rules:**38- Maximum 2 accent colors per slide (green + one other)39- Never use gradients on backgrounds or cards40- Never use colored left borders on cards (AI slop pattern)41- Dark cards (#111827 or #1a1a1a) used sparingly: max 1 per slide for contrast42- No opacity tricks for backgrounds; use real color values4344### 2. Typography4546**Primary font:** Inter (the fintech standard)47**Display/headline alternative:** DM Sans 600-700 (acceptable substitute)48**Monospace:** JetBrains Mono or SF Mono (code blocks only)4950```51Hero stat: 64-80px, weight 700, tracking -0.02em52Slide headline: 36-44px, weight 600, tracking -0.01em53Card title: 18-22px, weight 60054Body text: 15-16px, weight 400, line-height 1.655Small label: 12-13px, weight 500, uppercase, tracking 0.05em56Caption: 13-14px, weight 400, color #9ca3af57```5859**Rules:**60- Max 3 font size tiers per slide (hero, body, caption)61- Headlines never bold-italic or decorated62- No text shadows, no text-stroke, no gradient text63- Labels always uppercase with letter-spacing64- Line-height: 1.3 for headlines, 1.6 for body6566### 3. Spacing System6768```69Slide padding: 64px vertical, 80px horizontal70Section gap: 48px between major sections71Card padding: 24-32px72Card gap: 16-20px between cards73Element gap: 12-16px between items in a list74Icon-to-text: 12px75```7677**Rules:**78- Consistent rhythm: pick one spacing unit (8px base) and stick to multiples79- Generous whitespace beats cramming content80- Never let content touch container edges (min 24px padding)8182### 4. Cards & Containers8384**Standard card:**85```css86background: #ffffff;87border: 1px solid #e5e7eb;88border-radius: 12px;89padding: 24px 28px;90/* No shadow by default */91```9293**Elevated card (important content):**94```css95background: #ffffff;96border: 1px solid #e5e7eb;97border-radius: 12px;98padding: 28px 32px;99box-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);100```101102**Accent card (CTA or key metric):**103```css104background: #ecfdf5;105border: 1px solid #a7f3d0;106border-radius: 12px;107padding: 28px 32px;108```109110**Dark card (sparingly, max 1 per slide):**111```css112background: #111827;113color: #f9fafb;114border: none;115border-radius: 12px;116padding: 32px;117```118119**Rules:**120- border-radius: 12px universally (never 0, never 20px+)121- No colored left borders on cards122- No gradient backgrounds on cards123- No double borders or border tricks124- Cards should feel like they could exist on republic.com125126### 5. Data Presentation127128**Stat display (Republic's signature):**129```html130<div class="stat">131 <span class="stat-value">$2.4M</span>132 <span class="stat-label">RAISED TO DATE</span>133</div>134```135- Value: 48-72px, weight 700, color #111827 or #10b981136- Label: 12px, uppercase, tracking 0.05em, color #9ca3af137- Always value above label, never inline138139**Progress bars:**140```css141.bar-track { height: 6px; background: #f3f4f6; border-radius: 3px; }142.bar-fill { height: 6px; background: #10b981; border-radius: 3px; }143```144- Thin (6-8px), not chunky145- Rounded ends146- No gradients or stripes in bars147148**Charts:**149- Clean axes, minimal gridlines (#f3f4f6)150- Data points as small circles (6-8px), not large dots151- Area fills at 10-15% opacity of the line color152- Max 2 data series per chart153- Always include axis labels154155### 6. Icons & Visual Elements156157**Icon style:** Outlined/stroke, 1.5px stroke weight, 20-24px size158**Icon color:** #6b7280 (muted) or #111827 (emphasis)159**Icon containers:** 40x40px circle or rounded square, background #f3f4f6160161**Rules:**162- No filled/solid icons (too heavy)163- No colored icon backgrounds (except green for success states)164- No emoji-style icons165- Prefer Heroicons outline or Lucide166- If using brand logos: real SVGs from SimpleIcons, never text-in-circles167168### 7. Buttons & CTAs169170```css171/* Primary */172background: #10b981;173color: #ffffff;174border: none;175border-radius: 8px;176padding: 12px 24px;177font-size: 15px;178font-weight: 600;179180/* Secondary */181background: #ffffff;182color: #111827;183border: 1px solid #e5e7eb;184border-radius: 8px;185padding: 12px 24px;186```187188- No gradient buttons189- No pill-shaped buttons (border-radius: 9999px)190- No icon-only buttons without labels191- Max 1 primary CTA per slide192193### 8. Badges & Tags194195```css196/* Standard badge */197background: #f3f4f6;198color: #6b7280;199border-radius: 6px;200padding: 4px 10px;201font-size: 12px;202font-weight: 500;203204/* Success badge */205background: #ecfdf5;206color: #059669;207border: 1px solid #a7f3d0;208209/* Danger badge */210background: #fef2f2;211color: #dc2626;212border: 1px solid #fecaca;213```214215### 9. Backgrounds & Atmosphere216217- Pure white (#ffffff) for slide backgrounds218- No gradient meshes, no noise textures, no ambient glows219- No radial gradient decorations (they look AI-generated)220- If depth is needed: use a single subtle shadow, not background effects221- No dot-grids or pattern overlays222223### 10. Diagrams & Flow Charts224225- Connectors: 1.5px solid lines, color #d1d5db226- Arrow heads: small, clean triangles (6px)227- Flow direction: left-to-right or top-to-bottom228- Node style: standard card style (white, 1px border, 12px radius)229- Connection points: small circles (6px) at node edges230- Use green (#10b981) only for the active/highlighted path231- Gray for secondary paths232233---234235## Scoring Rubric (10 Dimensions)236237When scoring a slide or deck, evaluate on these 10 axes (1-10 each):238239### 1. Trust Signal (Does it feel like a financial platform?)240- 10: Could be a Republic deal page241- 5: Looks like a startup landing page242- 1: Looks like a hackathon project243244### 2. Typography Discipline245- 10: 3 clear tiers, consistent sizing, proper tracking246- 5: Too many sizes, inconsistent weights247- 1: Random sizing, decorative fonts248249### 3. Color Restraint250- 10: 2 colors max, used with surgical precision251- 5: 3-4 colors, some unnecessary252- 1: Rainbow, gradients everywhere253254### 4. Whitespace & Breathing Room255- 10: Content breathes, nothing feels cramped256- 5: Adequate but could use more space257- 1: Wall of content, no margins258259### 5. Card & Container Quality260- 10: Consistent radius, borders, padding. Republic-standard.261- 5: Mixed styles, some inconsistency262- 1: Random borders, colors, no system263264### 6. Data Presentation265- 10: Numbers are heroes, clean stat displays, thin progress bars266- 5: Data exists but layout is average267- 1: Data buried in text, no visual treatment268269### 7. Icon & Visual Coherence270- 10: Consistent stroke icons, proper sizing, real brand logos271- 5: Mixed icon styles272- 1: Emoji, filled icons, text-in-circles273274### 8. Layout Composition275- 10: Clear visual anchor, asymmetric columns, purposeful grid276- 5: Functional but predictable277- 1: Everything centered or evenly spaced278279### 9. Dark Element Usage280- 10: Dark cards used sparingly for maximum impact281- 5: Too many or too few dark elements282- 1: Dark elements feel random or overwhelming283284### 10. AI-Slop Avoidance285- 10: No colored left-borders, no gradient cards, no emoji, no generic patterns286- 5: Some AI-slop patterns present287- 1: Looks like ChatGPT generated the CSS288289**Scoring formula:**290- Average of 10 dimensions = raw score291- Penalty: -0.5 for each AI-slop pattern detected292- Bonus: +0.3 for each "this could be on Republic" element293294---295296## Common Republic-Style Fixes297298| Problem | Republic Fix |299|---------|-------------|300| Dark card with colored left border | Remove border-left, use full dark bg or green accent border (all sides) |301| Gradient background on container | Solid color: #f9fafb for light, #111827 for dark |302| Too many colors | Reduce to #111827 + #10b981 + #ef4444 (if needed) |303| Large rounded corners (16-20px) | Standardize to 12px |304| Thick borders (2px+) | Reduce to 1px #e5e7eb |305| Chunky progress bars | 6px height, rounded, no stripes |306| Icon size inconsistency | Standardize to 20px in 40px containers |307| Text-heavy sections | Extract key stat as hero number, demote rest |308| Multiple CTAs per slide | One primary CTA, rest are secondary/text links |309| Decorative background effects | Remove entirely, pure white |310311---312313## Workflow3143151. **Audit**: Read all slides/pages, catalog every design choice3162. **Score**: Apply the 10-dimension rubric to each slide3173. **Prioritize**: Rank fixes by visual impact (highest delta per change)3184. **Fix**: Apply Republic-style corrections, starting with highest-impact3195. **Verify**: Screenshot and re-score after fixes3206. **Iterate**: Repeat until average score >= 9.0