BrandToPrompt

Giphy Design System: Neon-Driven Dark Mode UI

Visit Site

Explore Giphy's design system - neon colors, dark mode UI, typography, and grid specs. Build vibrant interfaces inspired by Giphy's visual language.

5 min read883 words

Brand Identity

Color Palette

Primary
Secondary

Typography

Primary Font
__Interface_97f6a1
Secondary Font
Interface

Design Style

Style
playful yet functional with neon accents over dark backgrounds
Visual Density
compact grid-based with tight spacing
Border Style
mixed: 4px small elements, 24px cards, 5px buttons

Full Analysis

Giphy Design System Deep Dive

(Reverse-engineered from giphy.com, extracted December 13, 2025)


1. Brand Overview

Giphy isn’t subtle. It’s a brand built for loud, quick, visual communication. The site exists to deliver reaction GIFs, memes, and short loops at speed. The design reflects that: high contrast, bright accents, and a dark canvas that lets moving images explode off the page.

Everything feels geared toward content first. The UI is minimal—background elements recede into near-black (#121212, #000000) so the GIF grid is the star. This is classic "content as interface" thinking: the UI is scaffolding, not decoration.

The personality? Playful but not childish. The colors are neon club lights—cyan, purple, pink, green, aqua—used in small, precise doses. They sit on dark grey and charcoal backgrounds instead of white, giving them extra punch. This isn’t Instagram pastel; it’s nightlife neon.

Typography is straightforward. A single sans-serif "Interface" family, custom-loaded, used at multiple weights but with tight line heights. It’s functional, not ornamental. Headlines are bold, body copy stays light, captions shrink to 12–13px with long line heights. That makes text secondary to the visual content but still legible.

You can tell they optimize for speed: limited shadows, few borders, consistent small-radius corners. Buttons are flat with hover opacity shifts instead of elaborate gradients or animations. Even the breakpoints suggest a mobile-first mindset—480px, 768px, 1023px, 1348px. No sprawling desktop-only layouts here.

If I had to put their design philosophy in one sentence: "Content is the party, UI just sets the lights."


2. Color System

2.1 Primary Colors

The semantic primary color is pure white (#ffffff). That’s not the action color—it’s the default text/UI color on dark backgrounds. The action colors come from the neon palette: cyan (#0cf), indigo (#6157ff), green (#0f9), pink (#e646b6), yellow (#fff35c), aqua (#00e6cc), purple (#93f).

Primary neon psychology: these hues signal energy, speed, and digital culture. Compare to competitors—Tenor uses lighter blues and whites, Instagram leans into warm gradients. Giphy’s colors scream "look at me" but only in small doses.

2.2 Complete Palette

Color NameHexRoleUsage
Primary White#ffffffSemantic primaryBody text, icons on dark backgrounds
Neutral Grey#a6a6a6Secondary textMetadata, timestamps
Black#000000BackgroundPure black backgrounds, overlays
Darkest Grey#121212BackgroundPage background, containers
Cyan-300oklch(86.5% .127 207.078)AccentLight cyan UI elements
Cyan-400oklch(78.9% .154 211.53)AccentHover states, highlights
Reddit Red#fc6669Brand integrationSocial icon
Giphy Dark Grey#2e2e2eNeutralSecondary container background
Twitter Cyan#00ccffLink colorDefault link text
Gray-300oklch(87.2% .01 258.338)NeutralBackground for light elements
Yellow-400oklch(85.2% .199 91.936)AccentWarnings, highlights
Giphy Lightest Grey#d8d8d8NeutralDividers, subtle backgrounds
Error Red#ff6666ErrorValidation failures
Tumblr Blue#529eccBrand integrationSocial icon
Gray-400oklch(70.7% .022 261.325)NeutralDisabled states
Giphy Green#00ff99AccentSuccess states
Giphy Pink#e646b6AccentPromotional highlights
Giphy Darkest Grey#212121BackgroundCard backgrounds
Red-500oklch(63.7% .237 25.331)AccentAlerts
Instagram Pink#c23c8dBrand integrationSocial icon
Giphy Aqua#00e6ccAccentSecondary highlights
Giphy Indigo#6157ffAccentPrimary buttons
Giphy Charcoal#4a4a4aNeutralUI panels
Giphy Dark Charcoal#3e3e3eNeutralModal backgrounds
Gif Overlay#00000006OverlaySemi-transparent overlay on GIFs
Giphy Purple#9933ffAccentHighlights
Blue-500oklch(62.3% .214 259.815)AccentLinks, buttons
Facebook Blue#3894fcBrand integrationSocial icon
Dim Color#0000000cOverlayDimmed background state
Gray-200oklch(92.8% .006 264.531)NeutralLight background
Black Token#000000NeutralText/icons on light backgrounds
Pinterest Pink#e54cb5Brand integrationSocial icon
Giphy White Smoke#ecececNeutralInput backgrounds
Input Placeholder#757575NeutralPlaceholder text
Giphy Yellow#fff35cAccentHighlights
Giphy Light Charcoal#5c5c5cNeutralSecondary text

2.3 Color Relationships

Dark mode is default. High-contrast neon-on-black passes WCAG easily for large text, sometimes borderline for small text (cyan #0cf on black is ~4.3:1). White (#ffffff) on #121212 is excellent contrast (~14:1).

Accent colors rarely touch each other—no cyan-on-purple combos. They’re isolated to avoid color noise.

2.4 Usage Guide

  • Neon colors on black/dark grey only.
  • White for text, icons, and inactive states.
  • Grey (#a6a6a6) for metadata—never for interactive elements.
  • Error red (#f66) only for validation states, not for emphasis.
  • Avoid stacking multiple neon accents—pick one per element.

3. Typography

3.1 Font Families

Primary: "__Interface_97f6a1", fallback "__Interface_Fallback_97f6a1". No Google/Adobe fonts detected—this is a custom-embedded family. Secondary: "Interface" (system fallback).

3.2 Type Scale

ElementFontSizeWeightLine Height
Heading-1__Interface_97f6a124px (1.50rem)7001.33
Heading-1__Interface_97f6a117px (1.06rem)7001.29
Heading-1__Interface_97f6a116px (1.00rem)4001.38
Link__Interface_97f6a116px (1.00rem)4001.38
Heading-1__Interface_97f6a116px (1.00rem)7001.38
Link__Interface_97f6a116px (1.00rem)7001.38
Link__Interface_97f6a114px (0.88rem)4001.57
CaptionInterface13px (0.81rem)4001.50
LinkInterface13px (0.81rem)4001.50
Caption__Interface_97f6a112px (0.75rem)7001.83
ButtonInterface11.7px (0.73rem)7001.54

3.3 Hierarchy

Hierarchy is subtle. The jump from 24px to 17px is small for headings—this keeps text from overpowering GIFs. Bold weights (700) signal importance, while body/link text often stays at 400 for neutrality. Captions drop to 12–13px but maintain high line height for readability in tight spaces.


4. Spacing & Layout

4.1 Spacing Scale

Base scale type: 8px grid, with deviations (4.68px, 13px, 14px, etc.).

ValueRemCountUsage
2px0.13rem1Icon gaps
4px0.25rem20Tight padding
4.68px0.29rem4Button padding
5px0.31rem1Component padding
8px0.50rem10Small gaps
10px0.63rem10Compact container padding
13px0.81rem2Link spacing
14px0.88rem40Card/content padding
15px0.94rem1Special case spacing
52px3.25rem5Section padding

4.2 Layout

Breakpoints:

  • 480px — mobile
  • 768px — small tablet
  • 1023px — tablet/desktop crossover
  • 1348px — large desktop

Likely a fluid grid with fixed gutters, scaling at breakpoints.


5. Visual Elements

Border Radius

ValueCountUsage
0px 4px 4px 0px1Right-rounded only (e.g., input append)
4px24Small elements, buttons
5px4Buttons
6px6Cards
20px1Large buttons
24px25Cards, modals
30px 30px 0px 0px1Top-rounded only

Shadows

  • rgba(0,0,0,0.3) 0px 0px 20px 0px — soft glow
  • rgba(0,0,0,0.33) 0px 2px 14px 0px — subtle lift

Minimal use—content already has motion; no need for heavy depth.

Borders: none detected for components; depth is via background contrast.


6. Components

6.1 Buttons

Variant 1 (Dark Grey)
Default:

  • Background: #4a4a4a
  • Text: #ffffff
  • Padding: 4.68px 9.36px
  • Radius: 5px
  • Border: none
  • Font: Interface, 11.7px, 700

Hover:

  • Opacity: 0.4
  • Background: var(--giphy-indigo)
  • Text: #585858

Variant 2 (Indigo)
Default:

  • Background: #6157ff
  • Text: #ffffff
  • Same padding/radius as above

Hover: same as Variant 1

No active/focus styles detected—probably handled globally.

  1. Cyan (#00ccff), underline by default, hover to white (#ffffff).
  2. Grey (#a6a6a6), no underline, hover to white.
  3. White (#ffffff), no underline, hover unchanged.

6.3 Forms

No text inputs in sample—likely styled with 4–6px radius and light grey backgrounds. Placeholder text: #757575.

6.4 Cards

Likely 24px radius, dark grey background (#212121), minimal shadows.


7. Design Tokens

:root {
  /* Colors */
  --color-primary: #ffffff;
  --color-neutral-grey: #a6a6a6;
  --color-black: #000000;
  --color-darkest-grey: #121212;
  --color-cyan-300: oklch(86.5% .127 207.078);
  --color-cyan-400: oklch(78.9% .154 211.53);
  --color-reddit: #fc6669;
  --color-giphy-dark-grey: #2e2e2e;
  --color-twitter: #00ccff;
  --color-gray-300: oklch(87.2% .01 258.338);
  --color-yellow-400: oklch(85.2% .199 91.936);
  --color-giphy-lightest-grey: #d8d8d8;
  --color-error: #ff6666;
  --color-tumblr: #529ecc;
  --color-gray-400: oklch(70.7% .022 261.325);
  --color-giphy-green: #00ff99;
  --color-giphy-pink: #e646b6;
  --color-giphy-darkest-grey: #212121;
  --color-red-500: oklch(63.7% .237 25.331);
  --color-instagram: #c23c8d;
  --color-giphy-aqua: #00e6cc;
  --color-giphy-indigo: #6157ff;
  --color-giphy-charcoal: #4a4a4a;
  --color-giphy-dark-charcoal: #3e3e3e;
  --color-gif-overlay: #00000006;
  --color-giphy-purple: #9933ff;
  --color-blue-500: oklch(62.3% .214 259.815);
  --color-facebook: #3894fc;
  --color-dim: #0000000c;
  --color-gray-200: oklch(92.8% .006 264.531);
  --color-pinterest: #e54cb5;
  --color-giphy-white-smoke: #ececec;
  --color-input-placeholder: #757575;
  --color-giphy-yellow: #fff35c;
  --color-giphy-light-charcoal: #5c5c5c;

  /* Typography */
  --font-interface: "__Interface_97f6a1", "__Interface_Fallback_97f6a1";
  --font-interface-secondary: "Interface";

  /* Spacing */
  --space-2: 2px;
  --space-4: 4px;
  --space-4-68: 4.68px;
  --space-5: 5px;
  --space-8: 8px;
  --space-10: 10px;
  --space-13: 13px;
  --space-14: 14px;
  --space-15: 15px;
  --space-52: 52px;

  /* Radius */
  --radius-0-4-4-0: 0px 4px 4px 0px;
  --radius-4: 4px;
  --radius-5: 5px;
  --radius-6: 6px;
  --radius-20: 20px;
  --radius-24: 24px;
  --radius-30-30-0-0: 30px 30px 0px 0px;

  /* Shadows */
  --shadow-20px: rgba(0,0,0,0.3) 0px 0px 20px 0px;
  --shadow-14px: rgba(0,0,0,0.33) 0px 2px 14px 0px;
}

8. AI Coding Assistant Prompt

# Giphy Design System Specification

You are a Giphy design expert. Build UIs matching their visual language exactly.

## Brand Context
Giphy’s design is dark-first, with neon accents over near-black backgrounds. UI is minimal—content is the focus. Colors are high-contrast, typography is functional sans-serif, spacing follows a tight 8px grid.

## Color Palette
- Primary White: #ffffff — text/icons on dark backgrounds
- Neutral Grey: #a6a6a6 — metadata, secondary text
- Black: #000000 — pure black backgrounds
- Darkest Grey: #121212 — page backgrounds
- Cyan-300: oklch(86.5% .127 207.078) — light cyan accents
- Cyan-400: oklch(78.9% .154 211.53) — hover highlights
- Reddit Red: #fc6669 — social icon
- Giphy Dark Grey: #2e2e2e — container backgrounds
- Twitter Cyan: #00ccff — link color
- Gray-300: oklch(87.2% .01 258.338) — light element background
- Yellow-400: oklch(85.2% .199 91.936) — warnings/highlights
- Giphy Lightest Grey: #d8d8d8 — dividers
- Error Red: #ff6666 — validation errors
- Tumblr Blue: #529ecc — social icon
- Gray-400: oklch(70.7% .022 261.325) — disabled states
- Giphy Green: #00ff99 — success states
- Giphy Pink: #e646b6 — promotional highlights
- Giphy Darkest Grey: #212121 — card backgrounds
- Red-500: oklch(63.7% .237 25.331) — alerts
- Instagram Pink: #c23c8d — social icon
- Giphy Aqua: #00e6cc — secondary highlights
- Giphy Indigo: #6157ff — primary buttons
- Giphy Charcoal: #4a4a4a — button background
- Giphy Dark Charcoal: #3e3e3e — modal backgrounds
- Gif Overlay: #00000006 — overlay on GIFs
- Giphy Purple: #9933ff — highlights
- Blue-500: oklch(62.3% .214 259.815) — links/buttons
- Facebook Blue: #3894fc — social icon
- Dim Color: #0000000c — dimmed background
- Gray-200: oklch(92.8% .006 264.531) — light background
- Pinterest Pink: #e54cb5 — social icon
- Giphy White Smoke: #ececec — input backgrounds
- Input Placeholder: #757575 — placeholder text
- Giphy Yellow: #fff35c — highlights
- Giphy Light Charcoal: #5c5c5c — secondary text

## Typography
Primary Font: "__Interface_97f6a1", "__Interface_Fallback_97f6a1"
Secondary Font: "Interface"

| Level | Size | Weight | Line Height | Use |
|-------|------|--------|-------------|-----|
| H1 | 24px | 700 | 1.33 | Page titles |
| H1-sm | 17px | 700 | 1.29 | Section headings |
| H1-light | 16px | 400 | 1.38 | Secondary headings |
| Link-md | 16px | 400 | 1.38 | Body links |
| Link-bold | 16px | 700 | 1.38 | Important links |
| Link-sm | 14px | 400 | 1.57 | Inline links |
| Caption-md | 13px | 400 | 1.50 | Metadata |
| Caption-bold | 12px | 700 | 1.83 | Labels |
| Button | 11.7px | 700 | 1.54 | Buttons

## Spacing & Grid
Base: 8px grid
Scale: 2px, 4px, 4.68px, 5px, 8px, 10px, 13px, 14px, 15px, 52px

## Border Radius
- sm: 4px — small elements
- btn: 5px — buttons
- md: 6px — cards
- lg: 20px — large buttons
- xl: 24px — modals/cards
- special: 0px 4px 4px 0px — input append
- special2: 30px 30px 0px 0px — top-rounded

## Shadows & Depth
- shadow-lg: rgba(0,0,0,0.3) 0px 0px 20px 0px — soft glow
- shadow-md: rgba(0,0,0,0.33) 0px 2px 14px 0px — subtle lift

## Component Specifications

### Primary Button
Default:
```css
background: #6157ff;
color: #ffffff;
padding: 4.68px 9.36px;
border-radius: 5px;
font-weight: 700;
font-size: 11.7px;
border: none;
```
Hover:
```css
opacity: 0.4;
background: var(--color-giphy-indigo);
color: #585858;
```

### Secondary Button
Default:
```css
background: #4a4a4a;
color: #ffffff;
padding: 4.68px 9.36px;
border-radius: 5px;
font-weight: 700;
font-size: 11.7px;
border: none;
```
Hover: same as primary hover

### Navigation Links
- Cyan (#00ccff), underline; hover to white (#ffffff)
- Grey (#a6a6a6), no underline; hover to white
- White (#ffffff), no underline; hover unchanged

### Input Fields
- Background: #ececec
- Radius: 4–6px
- Placeholder: #757575

### Cards
- Background: #212121
- Radius: 24px
- Shadow: none or shadow-md

## Layout & Responsive Rules
Breakpoints:
- Mobile: <480px
- Tablet: 768px
- Desktop: >1023px
- Large Desktop: >1348px

## Interaction Rules
- Transitions: 150ms ease for hover/focus
- Focus indicators: outline with primary white
- Loading states: fade opacity

## DO List
- Use only colors from palette
- Maintain 8px grid
- Keep buttons flat—no gradients
- Limit neon accents to one per element
- Use "__Interface" font for headings and body

## DON'T List
- Mix rounded and sharp corners
- Use colors outside palette
- Apply shadows heavily
- Combine multiple neon colors in one element

## Code Examples

Primary Button (Tailwind):
```html
<button class="bg-[#6157ff] text-white px-[9.36px] py-[4.68px] rounded-[5px] font-bold text-[11.7px] hover:opacity-40 hover:bg-[#6157ff] hover:text-[#585858]">
  Click Me
</button>
```

Card:
```html
<div class="bg-[#212121] rounded-[24px] p-[14px] shadow-md">
  Content
</div>
```

Input:
```html
<input class="bg-[#ececec] rounded-[4px] p-[8px] text-[16px] placeholder-[#757575]" placeholder="Search...">
```

9. Summary

TL;DR — Giphy’s design is dark-first, neon-accented, content-centric. Minimal UI, tight grid, custom sans-serif, and small-radius corners make the GIFs pop.

Brand Keywords — neon-minimalist, content-first, dark-mode-native, playful-functional