---
version: alpha
name: Zohran Mamdani for New York City
description: "Dark interface measured from zohranfornyc.com: Union Gothic type with ibm-plex-serif, indigo accents, flat surfaces and pill-shaped controls."
colors:
  background: "#2619D1"
  surface: "#2619D1"
  on-surface: "#FFFFFF"
  on-background: "#FFFFFF"
  on-surface-variant: "#DFDDF8"
  on-surface-muted: "#000000"
  overlay: "#FFFFFFD9"
  outline: "#E81900"
  primary: "#2619D1"
  on-primary: "#FFFFFF"
  inverse-surface: "#FCFBFA"
  secondary: "#1D4DC7"
  error: "#E81900"
  warning: "#FFAB00"
typography:
  headline-display:
    fontFamily: Union Gothic
    fontSize: 67px
    fontWeight: 700
    lineHeight: 0.95
    letterSpacing: -0.02em
  headline-lg:
    fontFamily: ibm-plex-serif
    fontSize: 40px
    fontWeight: 700
    lineHeight: 1.1
  headline-md:
    fontFamily: Union Gothic
    fontSize: 25px
    fontWeight: 700
  body-md:
    fontFamily: ibm-plex-serif
    fontSize: 20px
    fontWeight: 400
    lineHeight: 1.5
  body-sm:
    fontFamily: ibm-plex-serif
    fontSize: 13px
    fontWeight: 400
    lineHeight: 1.5
  caption:
    fontFamily: ibm-plex-serif
    fontSize: 12px
    fontWeight: 400
    lineHeight: 1.45
  headline-display-mobile:
    fontFamily: Union Gothic
    fontSize: 42px
    fontWeight: 700
    lineHeight: 0.95
    letterSpacing: -0.02em
rounded:
  full: 9999px
spacing:
  sm: 8px
  md: 12px
  lg: 21px
  xl: 35.2px
  gutter: 8px
  section: 168px
components:
  button-primary:
    backgroundColor: "{colors.inverse-surface}"
    textColor: "{colors.background}"
    rounded: 0px
    padding: 15px 21px
    height: 52px
  button-primary-hover:
    backgroundColor: "{colors.warning}"
  button-secondary:
    backgroundColor: "{colors.outline}"
    textColor: "{colors.on-surface}"
    typography: "{typography.headline-md}"
    rounded: 0px
    padding: 11.25px 25px
    height: 59px
  button-secondary-hover:
    backgroundColor: "{colors.background}"
  button-ghost:
    textColor: "{colors.on-surface}"
    typography: "{typography.body-md}"
    padding: 0px
  input-field:
    backgroundColor: "{colors.inverse-surface}"
    textColor: "{colors.on-surface-muted}"
    rounded: 0px
    padding: 12px
  link:
    textColor: "{colors.secondary}"
---

# Zohran Mamdani for New York City Design System

## Overview

Zohran Mamdani for New York City describes itself as: “Mayor Zohran Mamdani is bringing a new era to the city, building a place where everyone can afford to live and afford to dream.” The interface is dark, built on **Indigo (#2619D1)** with **White (#FFFFFF)** text, and **Indigo (#2619D1)** as the main accent.

Type is set in **Union Gothic** and **ibm-plex-serif**. Headlines run large with tight negative tracking; body text is 20px. Depth comes from soft drop shadows. Controls are pill-shaped.

Measured from [zohranfornyc.com](https://zohranfornyc.com/) on October 23, 2026 at 1440×900 and 390×844 from 87 rendered elements. Values are computed styles from the live page, not the original source files.

## Colors

The palette has 12 roles, plus gradient stops #E81900.

- **Indigo (#2619D1):** Page background, seen 2 times. Token `background`.
- **White (#FFFFFF):** Primary text and headings, seen 7 times. Token `on-surface`.
- **Pale Indigo (#DFDDF8):** Secondary text, seen 2 times. Token `on-surface-variant`.
- **Near Black (#000000):** Muted text and metadata, seen 4 times. Token `on-surface-muted`.
- **White 85% (#FFFFFFD9):** Translucent fill for cards and controls, seen 1 time. Token `overlay`.
- **Vivid Red (#E81900):** Borders and dividers, seen 2 times. Token `outline`.
- **Indigo (#2619D1):** Brand color on large areas, seen 18 times. Token `primary`.
- **White (#FFFFFF):** Text and icons on primary. Token `on-primary`.
- **Snow (#FCFBFA):** High-contrast fills, seen 12 times. Token `inverse-surface`.
- **Blue (#1D4DC7):** Most used accent color, seen 21 times. Token `secondary`.
- **Vivid Red (#E81900):** Errors and destructive states, seen 7 times. Token `error`.
- **Vivid Amber (#FFAB00):** Warnings and highlights, seen 5 times. Token `warning`.

## Typography

**Union Gothic** and **ibm-plex-serif** share the interface. Fallback stack: `Union Gothic, sans-serif`. Other loaded fonts: coffee-service, Zohran, Font Awesome 6 Pro.

- **headline-display:** Union Gothic 67px at weight 700, line height 0.95, tracking -0.02em, uppercase (42px on mobile). Page title (h1).
- **headline-lg:** ibm-plex-serif 40px at weight 700, line height 1.1. Section headings (h2).
- **headline-md:** Union Gothic 25px at weight 700, uppercase. Sub-section headings.
- **body-md:** ibm-plex-serif 20px at weight 400, line height 1.5. Body text.
- **body-sm:** ibm-plex-serif 13px at weight 400, line height 1.5. Secondary and small text.
- **caption:** ibm-plex-serif 12px at weight 400, line height 1.45. Captions and fine print.

## Layout

Spacing does not follow a strict grid: 44% of measured values are multiples of 4px, so match the measured steps rather than rounding to a grid.

- **Scale:** sm 8px, md 12px, lg 21px, xl 35.2px.
- **Sections:** 168px vertical padding between major sections.
- **Gaps:** 8px is the most common gap in flex and grid layouts.
- **Breakpoints:** 375px, 414px, 498px, 600px, 601px, 768px, 1024px, 1280px, 1440px, 1680px, 1920px.

## Elevation & Depth

Raised elements use soft drop shadows. The most used recipes:

- `rgba(19, 17, 12, 0.25) 0px 3.375px 6.75px -3.375px`
- `rgba(19, 17, 12, 0.25) 0px 4.6875px 9.375px -4.6875px`
- `rgba(19, 17, 12, 0.25) 0px 3px 6px -3px`

## Shapes

Interactive controls are pill-shaped. Measured radii, most used first:

- **full (9999px):** 4 elements.

## Components

Measured from the rendered page. Token values reference the tokens above.

- **button-primary (“$10”):** #FCFBFA fill, #2619D1 text, 18px/700, padding 15px 21px, shadow `rgba(19, 17, 12, 0.25) 0px 3.375px 6.75px -3.375px`.
- **button-primary-hover:** background #FFAB00, text #2619D1 on hover.
- **button-secondary (“DONATE”):** #E81900 fill, #FFFFFF text, 25px/700, padding 11.25px 25px, border 3px solid #E81900, shadow `rgba(19, 17, 12, 0.25) 0px 4.6875px 9.375px -4.6875px`.
- **button-secondary-hover:** background #2619D1, text #FFFFFF on hover.
- **button-ghost (“Close”):** transparent fill, #FFFFFF text, 20px/400, 50% radius, padding 0px.
- **input-field (“First name”):** #FCFBFA fill, #000000 text, 18px/400, padding 12px, border 1px solid #FCFBFA.
- **link:** transparent fill, #1D4DC7 text, padding 0px.

## Do's and Don'ts

- Do use #2619D1 for the page.
- Do keep text in 3 levels: #FFFFFF, #DFDDF8, #000000.
- Do use #2619D1 as the brand accent: header, logo and key highlights.
- Do set headlines in Union Gothic with tight tracking (-0.02em).
- Do reuse the measured spacing steps (8px, 12px, 21px).
- Do make buttons and chips fully rounded (9999px).
- Don't use #000000 for body text; it reaches 2.1:1 on #2619D1. Keep it for large text or metadata.
- Don't introduce new font families beyond Union Gothic and ibm-plex-serif.
- Don't use #2619D1 for large backgrounds or body text.
- Don't make interface transitions slower than 0.25s.

## Motion

Interface transitions are quick: 0.15s, 0.2s, 0.25s.

- **Easing:** `ease-in-out`.
- **Reduced motion:** the page responds to `prefers-reduced-motion`.

Generated by [Sitepeel](https://sitepeel.dev/design-md/zohranfornyc.com/), the free DESIGN.md generator.
