Design Specification — Bangalore Startup Map — Startups in Bengaluru
| Field | Value |
| Site / Project | https://www.bangalorestartupmap.com/ |
| Analyzed on | 2026-10-31 |
| Analysis mode | Automated code extraction (no AI) |
Overview
This design system was extracted programmatically from the source page. It is built on a light canvas (#FAFAFA), ink text (#18181B), a vivid accent (#FF5A1F). All type is set in ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif. Detected font weights: 500, 600, 700. Detected style signatures: technical / mono accents.
Logo asset(s): https://www.bangalorestartupmap.com/logos/ather-energy.svg
Color System
Detected palette (by frequency)
| Hex | RGB | HSL | Count |
#000000 | 0, 0, 0 | 0° 0% 0% | 19 |
#FF5A1F | 255, 90, 31 | 16° 100% 56% | 6 |
#FFFFFF | 255, 255, 255 | 0° 0% 100% | 3 |
#9CA3AF | 156, 163, 175 | 218° 11% 65% | 2 |
#3B82F6 | 59, 130, 246 | 217° 91% 60% | 2 |
#E5E7EB | 229, 231, 235 | 220° 13% 91% | 1 |
#FFF5F0 | 255, 245, 240 | 20° 100% 97% | 1 |
#FAFAFA | 250, 250, 250 | 0° 0% 98% | 1 |
#E7E7E9 | 231, 231, 233 | 240° 4% 91% | 1 |
#18181B | 24, 24, 27 | 240° 6% 10% | 1 |
#71717A | 113, 113, 122 | 240° 4% 46% | 1 |
Assigned roles
Roles are taken from the page's own semantic CSS custom properties when present, otherwise inferred from usage frequency + luminance/saturation.
| Token | Hex | RGB | HSL |
--color-background | #FAFAFA | 250, 250, 250 | 0° 0% 98% |
--color-surface | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-text-primary | #18181B | 24, 24, 27 | 240° 6% 10% |
--color-border | #E7E7E9 | 231, 231, 233 | 240° 4% 91% |
--color-accent | #FF5A1F | 255, 90, 31 | 16° 100% 56% |
--color-primary | #FF5A1F | 255, 90, 31 | 16° 100% 56% |
--color-secondary | #000000 | 0, 0, 0 | 0° 0% 0% |
--color-text-secondary | #9CA3AF | 156, 163, 175 | 218° 11% 65% |
--color-on-primary | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-on-secondary | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-on-accent | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
Surface ramp (derived from detected light neutrals)
| Token | Hex |
--color-surface-container-lowest | #FFFFFF |
--color-surface-container-low | #FAFAFA |
--color-surface-container | #E7E7E9 |
--color-surface-container-high | #E5E7EB |
Typography
Primary typeface: ui-sans-serif — stack: ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif
Font stacks (most used first)
ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif
ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace
inherit
Derived type scale
| Token | Size |
| title-lg | 20px |
| body-lg | 18px |
| body-md | 16px |
| label-md | 14px |
| label-sm | 12px |
Font sizes (by frequency)
| Size | Count |
| .875rem | 2 |
| 1em | 1 |
| 10.5px | 1 |
| 10px | 1 |
| 11.5px | 1 |
| 11px | 1 |
| 13px | 1 |
| 9.5px | 1 |
| 1.125rem | 1 |
| 1.25rem | 1 |
| .75rem | 1 |
| 1rem | 1 |
Weights in use: 500, 600, 700
Line heights (by frequency)
| Value | Count |
| 1.75rem | 2 |
| 1.25rem | 2 |
| 1rem | 2 |
| 1.5 | 1 |
| 0 | 1 |
| 1 | 1 |
| 1.375 | 1 |
| 1.5rem | 1 |
Letter spacing (by frequency)
| Value | Count |
| -.025em | 1 |
| .025em | 1 |
Spacing
Derived spacing scale
| Token | Value |
| unit | 4px |
| xs | 2px |
| sm | 8px |
| md | 16px |
Raw values (by frequency)
| Value | Count |
| .5rem | 2 |
| .75rem | 2 |
| 1rem | 2 |
| .25rem | 1 |
| .375rem | 1 |
| .875rem | 1 |
| .125rem | 1 |
| 1.25rem | 1 |
| .625rem | 1 |
| 1.5rem | 1 |
Borders & Radius
Derived radius tokens
| Token | Value |
| sm | 2px |
| md | 8px |
| lg | 16px |
| pill | 9999px |
Raw values (resolved, by frequency)
| Radius | Count |
1rem | 2 |
.25rem | 1 |
9999px | 1 |
.5rem | 1 |
.125rem | 1 |
Shadows
Derived elevation
| Token | Value |
| sm | 0 0 0 0 rgba(255,90,31,.45) |
| md | 0 0 0 0 rgba(255,90,31,0) |
| lg | 0 0 0 6px rgba(255,90,31,0) |
All detected shadows
0 0 0 0 rgba(255,90,31,.45)
0 0 0 13px rgba(255,90,31,0)
0 0 0 0 rgba(255,90,31,0)
0 0 0 6px rgba(255,90,31,0)
Layout
Container max-width: 1400px
Grid columns (largest detected grid): 2
Breakpoints
Animation & Motion
Easing curves
cubic-bezier(.4,0,.6,1)
cubic-bezier(.4,0,.2,1)
cubic-bezier(0,0,.2,1)
Keyframes
@keyframes pulse { 50%{opacity:.5} }
@keyframes boost-pulse { 0%{box-shadow:0 0 0 0 rgba(255,90,31,.45)}70%{box-shadow:0 0 0 13px rgba(255,90,31,0)}to{box-shadow:0 0 0 0 rgba(255,90,31,0)} }
@keyframes hiring-pulse { 0%,to{box-shadow:0 0 0 0 rgba(255,90,31,.45)}50%{box-shadow:0 0 0 6px rgba(255,90,31,0)} }
Animations
pulse 2s cubic-bezier(.4,0,.6,1) infinite
hiring-pulse 2s cubic-bezier(.4,0,.6,1) infinite
none
Components
Extracted from the page's own interactive elements (classes → resolved CSS values).
button-primary — sample text: “Submit”
| Property | Value |
| rounded | 9999px |
| fontSize | 14px |
| fontWeight | 500 |
| textColor | #FFFFFF |
| padding | 6px 14px |
| transition | all 150ms cubic-bezier(0.4, 0, 0.2, 1) |
button-secondary — sample text: “map”
| Property | Value |
| rounded | 9999px |
| textColor | #FFFFFF |
| padding | 4px 12px |
| transition | all 150ms cubic-bezier(0.4, 0, 0.2, 1) |
badge
| Property | Value |
| rounded | 9999px |
| fontSize | 14px |
| fontWeight | 500 |
| textColor | #FFFFFF |
| padding | 6px 14px |
| transition | all 150ms cubic-bezier(0.4, 0, 0.2, 1) |
> Page contains canvas/WebGL elements — consider ambient effects layers.
Source Design Tokens (CSS custom properties)
:root {
--bg: #fafafa;
--card: #fff;
--border: #e7e7e9;
--text: #18181b;
--muted: #71717a;
--accent: #ff5a1f;
}
Do's and Don'ts
Do
- Do reserve the accent
#FF5A1F for interactive highlights and key moments — it is used sparingly on the source page.
- Do keep the canvas at
#FAFAFA; surfaces should stay within the detected neutral ramp.
- Do stick to the detected font weight(s): 500, 600, 700.
- Do align spacing to the 4px base unit derived from the page.
Don't
- Don't introduce colors outside the detected palette — every hue above was found in the source.
- Don't add gradients — the source page uses flat fills exclusively.
Design Tokens (copy-paste)
:root {
--color-background: #FAFAFA;
--color-surface: #FFFFFF;
--color-text-primary: #18181B;
--color-border: #E7E7E9;
--color-accent: #FF5A1F;
--color-primary: #FF5A1F;
--color-secondary: #000000;
--color-text-secondary: #9CA3AF;
--color-on-primary: #FFFFFF;
--color-on-secondary: #FFFFFF;
--color-on-accent: #FFFFFF;
--color-surface-container-lowest: #FFFFFF;
--color-surface-container-low: #FAFAFA;
--color-surface-container: #E7E7E9;
--color-surface-container-high: #E5E7EB;
--font-sans: ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
--font-size-title-lg: 20px;
--font-size-body-lg: 18px;
--font-size-body-md: 16px;
--font-size-label-md: 14px;
--font-size-label-sm: 12px;
--radius-sm: 2px;
--radius-md: 8px;
--radius-lg: 16px;
--radius-pill: 9999px;
--shadow-sm: 0 0 0 0 rgba(255,90,31,.45);
--shadow-md: 0 0 0 0 rgba(255,90,31,0);
--shadow-lg: 0 0 0 6px rgba(255,90,31,0);
--space-xs: 2px;
--space-sm: 8px;
--space-md: 16px;
--tracking-display: -.025em;
--tracking-label: .025em;
--container-max: 1400px;
}