---
version: alpha
name: CatchyChat
description: "Light interface measured from catchychat.vercel.app: Bricolage Grotesque type with Inter, vivid orange accents, tonal surfaces and 8px corners."
colors:
  background: "#E7EAEF"
  surface: "#E7EAEF"
  on-surface: "#181D25"
  on-background: "#181D25"
  on-surface-strong: "#0F172B"
  on-surface-variant: "#45556C"
  on-surface-muted: "#67717E"
  surface-container-low: "#EDEFF2"
  surface-container: "#F1F5F9"
  surface-container-high: "#FFFFFF"
  overlay: "#F8FAFC80"
  overlay-strong: "#F1F5F9B3"
  outline: "#E2E8F0"
  outline-variant: "#E2E8F0CC"
  primary: "#FF7033"
  on-primary: "#FFFFFF"
  secondary: "#155DFC"
  tertiary: "#DD2476"
typography:
  headline-display:
    fontFamily: Bricolage Grotesque
    fontSize: 48px
    fontWeight: 900
    lineHeight: 1.08
    letterSpacing: -0.015em
  headline-lg:
    fontFamily: Bricolage Grotesque
    fontSize: 40px
    fontWeight: 900
    lineHeight: 1.25
    letterSpacing: -0.015em
  headline-md:
    fontFamily: Bricolage Grotesque
    fontSize: 36px
    fontWeight: 900
    lineHeight: 1.25
    letterSpacing: -0.015em
  headline-sm:
    fontFamily: Inter
    fontSize: 20px
    fontWeight: 700
    lineHeight: 1.4
    letterSpacing: -0.015em
  body-md:
    fontFamily: Inter
    fontSize: 14px
    fontWeight: 400
    lineHeight: 1.43
    letterSpacing: -0.011em
  body-lg:
    fontFamily: Inter
    fontSize: 18px
    fontWeight: 700
    lineHeight: 1.56
    letterSpacing: -0.015em
  body-sm:
    fontFamily: Inter
    fontSize: 12px
    fontWeight: 400
    lineHeight: 1.63
    letterSpacing: -0.013em
  label-lg:
    fontFamily: Inter
    fontSize: 16px
    fontWeight: 400
    lineHeight: 1.6
    letterSpacing: -0.01em
  label-md:
    fontFamily: Inter
    fontSize: 14px
    fontWeight: 700
    lineHeight: 1.43
    letterSpacing: -0.015em
  label-sm:
    fontFamily: Inter
    fontSize: 13.5px
    fontWeight: 700
    lineHeight: 1.25
    letterSpacing: -0.015em
  code:
    fontFamily: JetBrains Mono
    fontSize: 12px
    fontWeight: 500
    lineHeight: 1.33
    letterSpacing: -0.013em
  headline-display-mobile:
    fontFamily: Bricolage Grotesque
    fontSize: 30px
    fontWeight: 900
    lineHeight: 1.08
    letterSpacing: -0.015em
  headline-lg-mobile:
    fontFamily: Bricolage Grotesque
    fontSize: 24px
    fontWeight: 900
    lineHeight: 1.25
    letterSpacing: -0.015em
rounded:
  xs: 6px
  sm: 8px
  md: 12px
  lg: 16px
  xl: 24px
spacing:
  xs: 4px
  sm: 8px
  md: 16px
  lg: 32px
  xl: 40px
  gutter: 8px
  section: 96px
  margin: 32px
components:
  button-primary:
    backgroundColor: "{colors.primary}"
    textColor: "{colors.on-primary}"
    typography: "{typography.body-sm}"
    rounded: "{rounded.sm}"
    padding: 0px 12px
    height: 28px
  button-secondary:
    textColor: "{colors.on-primary}"
    typography: "{typography.label-md}"
    rounded: "{rounded.sm}"
    padding: 8px 16px
    height: 40px
  button-outline:
    backgroundColor: "{colors.surface-container-high}"
    textColor: "{colors.on-surface}"
    typography: "{typography.body-sm}"
    rounded: "{rounded.xs}"
    padding: 0px
    height: 28px
  button-ghost:
    textColor: "{colors.on-surface}"
    typography: "{typography.body-sm}"
    rounded: "{rounded.xs}"
    padding: 0px
  input-field:
    textColor: "{colors.on-surface}"
    typography: "{typography.body-md}"
    rounded: 0px
    padding: 0px 36px 0px 12px
  card:
    backgroundColor: "{colors.surface-container-high}"
    textColor: "{colors.on-surface}"
    typography: "{typography.label-lg}"
    rounded: "{rounded.lg}"
    padding: 16px
  link:
    textColor: "{colors.on-surface-variant}"
---

# CatchyChat Design System

## Overview

CatchyChat describes itself as: “Catchy Chat is the premier platform for free chat rooms and anonymous online chat with strangers. Talk to people online instantly without registration.” The interface is light, built on **Cool Mist (#E7EAEF)** with **Cool Charcoal (#181D25)** text, and **Vivid Orange (#FF7033)** as the main accent.

Type is set in **Bricolage Grotesque** and **Inter**, with **JetBrains Mono** for code. Headlines run large with tight negative tracking; body text is 14px. Depth comes from soft drop shadows. Corners are mostly 8px.

Measured from [catchychat.vercel.app](https://catchychat.vercel.app/) on November 7, 2026 at 1440×900 and 390×844 from 394 rendered elements. Values are computed styles from the live page, not the original source files.

## Colors

The palette has 16 roles, plus gradient stops #FF7033, #E64A19, #FF6952, #FF9800.

- **Cool Mist (#E7EAEF):** Page background, seen 11 times. Token `background`.
- **Cool Charcoal (#181D25):** Primary text and headings, seen 49 times. Token `on-surface`, CSS `--nc-text`.
- **Deep Blue (#0F172B):** Headings and emphasis, seen 48 times. Token `on-surface-strong`.
- **Dark Blue (#45556C):** Secondary text, seen 17 times. Token `on-surface-variant`.
- **Blue (#67717E):** Muted text and metadata, seen 20 times. Token `on-surface-muted`.
- **Mist (#EDEFF2):** Raised areas one step from the page, seen 1 time. Token `surface-container-low`.
- **Cool Snow (#F1F5F9):** Cards and panels, seen 1 time. Token `surface-container`.
- **White (#FFFFFF):** Hover and pressed fills, seen 4 times. Token `surface-container-high`, CSS `--sidebar-primary-foreground`.
- **Snow 50% (#F8FAFC80):** Translucent fill for cards and controls, seen 1 time. Token `overlay`.
- **Cool Snow 70% (#F1F5F9B3):** Stronger translucent fill, seen 1 time. Token `overlay-strong`.
- **Cool Mist (#E2E8F0):** Borders and dividers, seen 6 times. Token `outline`.
- **Cool Mist 80% (#E2E8F0CC):** Secondary dividers, seen 5 times. Token `outline-variant`.
- **Vivid Orange (#FF7033):** Primary buttons and calls to action, seen 38 times. Token `primary`.
- **White (#FFFFFF):** Text and icons on primary. Token `on-primary`.
- **Vivid Blue (#155DFC):** Accent in text, fills and borders, seen 2 times. Token `secondary`.
- **Pink (#DD2476):** Accent, seen 4 times. Token `tertiary`.

## Typography

**Bricolage Grotesque**, **Inter** and **JetBrains Mono** (monospace) share the interface. Fallback stack: `Bricolage Grotesque, Bricolage Grotesque Fallback, sans-serif`. Other loaded fonts: Plus Jakarta Sans.

- **headline-display:** Bricolage Grotesque 48px at weight 900, line height 1.08, tracking -0.015em (30px on mobile). Page title (h1).
- **headline-lg:** Bricolage Grotesque 40px at weight 900, line height 1.25, tracking -0.015em (24px on mobile). Section headings (h2).
- **headline-md:** Bricolage Grotesque 36px at weight 900, line height 1.25, tracking -0.015em. Sub-section headings.
- **headline-sm:** Inter 20px at weight 700, line height 1.4, tracking -0.015em. Card and feature titles.
- **body-md:** Inter 14px at weight 400, line height 1.43, tracking -0.011em. Body text.
- **body-lg:** Inter 18px at weight 700, line height 1.56, tracking -0.015em. Lead paragraphs.
- **body-sm:** Inter 12px at weight 400, line height 1.63, tracking -0.013em. Secondary and small text.
- **label-lg:** Inter 16px at weight 400, line height 1.6, tracking -0.01em. Large buttons and tabs.
- **label-md:** Inter 14px at weight 700, line height 1.43, tracking -0.015em. Buttons, navigation and labels.
- **label-sm:** Inter 13.5px at weight 700, line height 1.25, tracking -0.015em. Small labels and badges.
- **code:** JetBrains Mono 12px at weight 500, line height 1.33, tracking -0.013em. Code and technical values.

## Layout

Spacing is mostly on a 4px grid (72% of measured values), with some off-grid steps. Match the measured scale rather than rounding everything.

- **Scale:** xs 4px, sm 8px, md 16px, lg 32px, xl 40px.
- **Sections:** 96px vertical padding between major sections.
- **Gaps:** 8px is the most common gap in flex and grid layouts.
- **Page margin:** 32px on each side of full-width sections.
- **Breakpoints:** 600px, 640px, 767px, 768px.

## Elevation & Depth

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

- `rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.1) 0px 2px 4px -2px`
- `rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(0, 0, 0, 0.1) 0px 1px 2px -1px`
- `rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px`

Hairline rings and inset highlights also appear: `rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgb(255, 255, 255) 0px 0px 0px 0px, rgb(24, 29, 37) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px`.

## Shapes

Most elements use 8px corners. Measured radii, most used first:

- **sm (8px):** 40 elements.
- **xs (6px):** 24 elements.
- **md (12px):** 24 elements.
- **lg (16px):** 8 elements.
- **xl (24px):** 4 elements.

## Components

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

- **button-primary (“Sign Up”):** #FF7033 fill, #FFFFFF text, 12px/700, 8px radius, padding 0px 12px, shadow `rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px`.
- **button-secondary (“Start Chatting Now”):** transparent fill, #FFFFFF text, 14px/700, 8px radius, padding 8px 16px, shadow `rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.1) 0px 2px 4px -2px`.
- **button-outline (“Male”):** #FFFFFF fill, #181D25 text, 12px/700, 6px radius, padding 0px.
- **button-ghost (“Male”):** transparent fill, #181D25 text, 12px/700, 6px radius, padding 0px.
- **input-field:** transparent fill, #181D25 text, 14px/400, padding 0px 36px 0px 12px, shadow `rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgb(24, 29, 37) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px`.
- **card:** #FFFFFF fill, #181D25 text, 16px/400, 16px radius, padding 16px, border 1px solid #DCE0E5, shadow `rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.25) 0px 25px 50px -12px`.
- **link:** transparent fill, #45556C text, padding 0px.

## Do's and Don'ts

- Do use #E7EAEF for the page and lift surfaces in small steps: #EDEFF2, #F1F5F9, #FFFFFF.
- Do keep text in 4 levels: #181D25, #0F172B, #45556C, #67717E.
- Do reserve #FF7033 for primary actions and key highlights.
- Do set headlines in Bricolage Grotesque with tight tracking (-0.015em).
- Do reuse the measured spacing steps (8px, 16px, 32px).
- Do use 8px corners on most elements; larger surfaces also use 6px, 12px and 16px.
- Don't use #67717E for body text; it reaches 4.11:1 on #E7EAEF. Keep it for large text or metadata.
- Don't introduce new font families beyond Bricolage Grotesque, Inter and JetBrains Mono.
- Don't use #FF7033 for large backgrounds or body text.
- Don't make interface transitions slower than 0.3s.

## Motion

Interface transitions are quick: 0.15s, 0.2s, 0.3s. Longer ambient animations run 3s, 1s, 1.6s.

- **Easing:** `cubic-bezier(0.4, 0, 0.2, 1)`, `linear`, `ease`.
- **Reduced motion:** the page responds to `prefers-reduced-motion`.

Generated by [Sitepeel](https://sitepeel.dev/design-md/catchychat.vercel.app/), the free DESIGN.md generator (engine 2026.10.29+b828a475ee10).
