BrandToPrompt

Xiaohongshu Design System: Bold Mobile-First UI

Visit Site

Explore Xiaohongshu's design system - bold red, system fonts, responsive grid. Learn to craft mobile-first UIs with its visual language.

6 min read1,117 words

Brand Identity

Color Palette

Primary
Secondary

Typography

Primary Font
system-ui

Design Style

Style
playful and friendly with bold primary red, rounded shapes, and soft shadows
Visual Density
compact grid-based with 8px base spacing
Border Style
mixed: 4px small corners, 999px pill buttons, 50% circles

Full Analysis

Xiaohongshu Brand Design System Deep Dive


1. Brand Overview

Xiaohongshu (Little Red Book) is a social commerce platform that positions itself at the intersection of lifestyle inspiration and shopping. The vibe is energetic yet approachable. This is not a sterile tech product—it’s emotional, community-driven, and aspirational. The design language reflects that: bold primary color, soft rounded corners, and typography that’s readable but not overly formal.

The audience is style-conscious, social media–native, and mobile-first. The site feels like it’s designed for quick scanning and tapping, not long-form reading. You see this in the typography: no massive display typefaces, just a consistent system-ui stack that works across devices and OSes. That choice screams practicality. They’re not chasing a bespoke font aesthetic—they’re optimizing for speed and reliability.

The primary red (#ff2e4d) is unmistakable. It’s emotionally loud and instantly recognizable. This color dominates CTAs, login buttons, and other high-importance actions. They don’t dilute it with gradients—flat fills are the norm. The rest of the palette is neutral and functional, allowing the red to do all the emotional heavy lifting.

Layout-wise, the site is responsive with a wide range of breakpoints (from 400px up to 1728px). This is clearly a mobile-first design system, but it scales up gracefully. Spacing is built on an 8px grid with some exceptions (2px, 4px, 6px), which keeps everything visually tidy.

Overall philosophy: clear hierarchy, fast-loading system fonts, functional neutrals, and one hero color that carries the brand. They’ve sacrificed ornamental elements for speed and clarity. The rounded shapes and soft shadows keep it from feeling too rigid. It’s a social app dressed in e-commerce efficiency.


2. Color System

2.1 Primary Colors

The main brand color is rgb(255, 46, 77) / #ff2e4d. This is a saturated red with a slight pink undertone. It’s aggressive in a good way—perfect for CTAs where you want immediate attention. Psychologically, red in this range signals excitement, urgency, and desire. For Xiaohongshu, it also aligns with the “red book” name and the cultural symbolism of red in China (luck, celebration).

Compared to competitors: Instagram leans into gradients and purples; Pinterest uses a slightly darker, more muted red (#e60023). Xiaohongshu’s red is brighter and lighter, which feels more playful and youthful.

2.2 Complete Palette

Color NameHexRoleUsage
Primary Red#ff2e4dPrimaryCTAs, primary buttons, key actions
Tinted Redrgba(255,36,66,0.06)Accent backgroundSubtle red-tinted surfaces
White#ffffffBackgroundPage background, cards, modals
Pure Blue (link)#0000eeLinkInline links, interactive text
Brand Link Blue#13386cLinkNavigation links
Neutral Black 25%rgba(0,0,0,0.25)Secondary text / iconsDisabled icons, secondary controls
Neutral Black 80%rgba(51,51,51,0.8)Secondary labelCaptions, muted text
Neutral Black 100%#333333Primary labelBody text
Neutral Black D9#000000D9Text colorHigh-contrast text
Neutral Black B2#000000B2Label colorSecondary labels
Neutral Black b3#000000b3Toast backgroundNotifications
Background Gray#f5f5f5BackgroundApp background surfaces
Border Gray#eeeeeeBorderDividers, input borders
Primary BG Disabledrgba(48,48,52,0.15)Disabled state bgDisabled buttons
Input BGrgba(0,0,0,0.03)Input backgroundSearch bars, text fields
Input Color Lightrgba(0,0,0,0.08)Input placeholder bgPlaceholder shading
Accent Blue#3d8af5AccentHighlight elements
Vertical Channel Yellow#fff9d5AccentHighlight sections
Modal Mask#00000080Overlay backgroundModal dimming

2.3 Color Relationships

The red on white has strong contrast—no WCAG issues for normal text. Red on tinted red surfaces is less contrasting but used sparingly for accent, so it’s fine. Link blues (#0000ee, #13386c) are standard web-safe shades, readable on white and light gray backgrounds.

Dark mode isn’t present in the extracted data—this is a light theme–only brand system. The palette is optimized for high brightness screens.

2.4 Usage Guide

  • Primary Red: Only use for primary actions. Overusing it for decoration will dilute its impact.
  • Neutral Blacks: Use #333 for main body text, rgba(51,51,51,0.8) for secondary labels, and lighter transparencies for placeholders.
  • Link Colors: Keep #0000ee for standard inline links; #13386c for navigation.
  • Backgrounds: White and #f5f5f5 are your base layers.
  • Avoid pairing tinted red backgrounds with pure red text—it can reduce readability.
  • Accent Blue (#3d8af5) and Vertical Channel Yellow (#fff9d5) are rare; use sparingly for emphasis.

3. Typography

3.1 Font Families

Every text style uses system-ui with a long fallback stack:

system-ui, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji,
-apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, system-ui, Helvetica Neue, Arial,
PingFang SC, PingFang TC, PingFang HK, Microsoft Yahei, Microsoft JhengHei

No Google Fonts, no Adobe Fonts. This is pure system performance play—fast rendering, no external font loading. It’s also culturally adaptable: PingFang for Chinese, Microsoft Yahei for Windows environments.

3.2 Type Scale

ElementFontSizeWeightLine Height
heading-1system-ui18px6001.20
heading-1system-ui16px6001.20
heading-1system-ui16px4001.38
heading-1system-ui16px5001.00
buttonsystem-ui16px6001.15
linksystem-ui16px4001.20
linksystem-ui14px4001.15
captionsystem-ui14px4001.15
captionsystem-ui14px5001.15
buttonsystem-ui14px5001.15
captionsystem-ui12px4001.20
linksystem-ui12px4001.20
linksystem-ui12px6001.15
captionsystem-ui12px6001.15

3.3 Hierarchy

Hierarchy is subtle. No huge jumps in size—max heading is 18px. This keeps everything compact and mobile-friendly. Weight changes and line height adjustments do most of the hierarchy work. Headings go heavier (500–600), captions lighter (400), buttons heavier (500–600). This is efficient: less risk of overflow, consistent rhythm.


4. Spacing & Layout

4.1 Spacing Scale

Base scale: 8px grid with smaller increments for fine control.

ValueRemCountUsage
2px0.13rem2Hairline gaps
4px0.25rem10Icon padding, tight gaps
6px0.38rem2Minor inset padding
8px0.50rem46Base gap, button vertical padding
9.5px0.59rem1Odd spacing case
12px0.75rem62Input padding, small component gaps
16px1.00rem12Section padding, button horizontal padding
20px1.25rem6Larger gaps
24px1.50rem2Card padding
32px2.00rem6Section spacing
42.5px2.66rem1Unique layout element
48px3.00rem1Large block spacing
72px4.50rem2Hero section gap

4.2 Layout

Breakpoints:

400px, 540px, 695px, 696px, 720px, 820px, 900px, 959px, 960px, 1024px, 1030px, 1101px, 1191px, 1192px, 1250px, 1400px, 1423px, 1424px, 1727px, 1728px.

This is a granular responsive system—likely tuned for specific device widths. Mobile-first, scaling up with additional layout adjustments at each step.


5. Visual Elements

Border Radius

Values range from subtle rounding to full pills:

RadiusCountUsage
4px1Small div corners
6px2Small div corners
10px1Medium rounding
12px7Cards, iframes
16px30Buttons, divs
20px41Images, spans
44px3Large pill buttons
100px8Large pills
999px10Fully pill shapes
50%7Perfect circles

Shadows

Two shadow styles:

  • rgba(0,0,0,0.08) 0px 4px 32px, rgba(0,0,0,0.04) 0px 1px 4px — High depth
  • rgba(0,0,0,0.04) 0px 2px 8px, rgba(0,0,0,0.02) 0px 1px 2px — Light depth

Shadows are soft, layered, no hard edges.

Borders

Mostly 1px solid rgba(0,0,0,0.08) for subtle dividers. Rare 2px and directional borders.


6. Components

6.1 Buttons

Primary CTA (submit)

  • Default: bg rgb(255,36,66), text white, radius 999px, no border, fw 600, fs 16px
  • Hover: text var(--color-primary-label), bg var(--fill1)
  • Active: bg var(--color-tertiary-label), text var(--color-primary-label)
  • Focus: outline 2px solid var(--link-accent)

Login (reds-button-new)

  • Default: bg #ff2e4d, text white, padding 0 24px, radius 100px, fw 600, fs 16px
  • Hover/Active/Focus: same as above

Secondary (btn-wrapper)

  • Default: bg white, text rgba(51,51,51,0.8), radius 44px, fs 14px, fw 400
  • Hover: text var(--color-primary-label)

Variants:

  • #13386c, fw 400, no underline
  • #0000ee, fw 400, no underline
  • rgba(51,51,51,0.6), fw 600, no underline

6.3 Forms

Text inputs:

  • BG transparent or rgba(0,0,0,0.03)
  • Text #333
  • Radius 0 or 999px
  • Focus: box-shadow: 0 0 0 1000px var(--elevation-high-background) inset

6.4 Cards

No explicit card component extracted, but shadows and radii suggest: bg white, radius 12–20px, 1px border rgba(0,0,0,0.08), shadow for elevation.


7. Design Tokens

:root {
  /* Colors */
  --bg-primary: #ff2e4d;
  --color-tinted-red: rgba(255,36,66,0.06);
  --bg: #ffffff;
  --color-primary-label: #333333;
  --bg0: #f5f5f5;
  --primary-bg-disabled: rgba(48,48,52,0.15);
  --background-color: white;
  --border-color: #eeeeee;
  --color-secondary-label: rgba(51,51,51,0.8);
  --modal-mask-color: #00000080;
  --text-color: #000000D9;
  --color-link: #13386c;
  --input-color: #00000008;
  --label-color: #000000B2;
  --toast-bg-color: #000000b3;
  --color-blue: #3d8af5;
  --color-vertical-channel: #fff9d5;

  /* Typography */
  --font-family-system: system-ui, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji,
    -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, system-ui, Helvetica Neue, Arial,
    PingFang SC, PingFang TC, PingFang HK, Microsoft Yahei, Microsoft JhengHei;

  /* Spacing */
  --space-2: 2px;
  --space-4: 4px;
  --space-6: 6px;
  --space-8: 8px;
  --space-9-5: 9.5px;
  --space-12: 12px;
  --space-16: 16px;
  --space-20: 20px;
  --space-24: 24px;
  --space-32: 32px;
  --space-42-5: 42.5px;
  --space-48: 48px;
  --space-72: 72px;

  /* Border Radius */
  --radius-4: 4px;
  --radius-6: 6px;
  --radius-10: 10px;
  --radius-12: 12px;
  --radius-16: 16px;
  --radius-20: 20px;
  --radius-44: 44px;
  --radius-100: 100px;
  --radius-999: 999px;
  --radius-50pct: 50%;

  /* Shadows */
  --shadow-high: rgba(0,0,0,0.08) 0px 4px 32px 0px, rgba(0,0,0,0.04) 0px 1px 4px 0px;
  --shadow-low: rgba(0,0,0,0.04) 0px 2px 8px 0px, rgba(0,0,0,0.02) 0px 1px 2px 0px;
}

8. AI Coding Assistant Prompt

# Xiaohongshu Design System Specification

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

## Brand Context
Xiaohongshu is a social commerce platform with a bold, playful primary red and functional neutrals. It’s mobile-first, uses system fonts for speed, and relies on rounded shapes and soft shadows to keep the interface friendly.

## Color Palette
- Primary Red: #ff2e4d — CTAs, primary buttons, key actions
- Tinted Red: rgba(255,36,66,0.06) — subtle red-tinted surfaces
- White: #ffffff — page background, cards, modals
- Link Blue: #0000ee — inline links
- Navigation Blue: #13386c — navigation links
- Neutral Black 25%: rgba(0,0,0,0.25) — disabled icons
- Neutral Black 80%: rgba(51,51,51,0.8) — secondary labels
- Neutral Black: #333333 — body text
- Neutral Black D9: #000000D9 — high-contrast text
- Label Black B2: #000000B2 — secondary labels
- Toast Black b3: #000000b3 — notification bg
- Background Gray: #f5f5f5 — surfaces
- Border Gray: #eeeeee — dividers
- Disabled BG: rgba(48,48,52,0.15) — disabled buttons
- Input BG: rgba(0,0,0,0.03) — input fields
- Input Color Light: rgba(0,0,0,0.08) — placeholder shading
- Accent Blue: #3d8af5 — highlights
- Vertical Channel Yellow: #fff9d5 — highlight sections
- Modal Mask: #00000080 — modal overlay

## Typography
Font family: system-ui, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, system-ui, Helvetica Neue, Arial, PingFang SC, PingFang TC, PingFang HK, Microsoft Yahei, Microsoft JhengHei

| Level     | Size  | Weight | Line Height | Use For            |
|-----------|-------|--------|-------------|--------------------|
| heading-1 | 18px  | 600    | 1.20        | Page titles        |
| heading-1 | 16px  | 600    | 1.20        | Section headings   |
| heading-1 | 16px  | 400    | 1.38        | Subheadings        |
| heading-1 | 16px  | 500    | 1.00        | Compact headings   |
| button    | 16px  | 600    | 1.15        | Primary buttons    |
| link      | 16px  | 400    | 1.20        | Navigation links   |
| link      | 14px  | 400    | 1.15        | Inline links       |
| caption   | 14px  | 400    | 1.15        | Secondary text     |
| caption   | 14px  | 500    | 1.15        | Emphasized captions|
| button    | 14px  | 500    | 1.15        | Secondary buttons  |
| caption   | 12px  | 400    | 1.20        | Fine print         |
| link      | 12px  | 400    | 1.20        | Small links        |
| link      | 12px  | 600    | 1.15        | Emphasized small links |
| caption   | 12px  | 600    | 1.15        | Strong fine print  |

## Spacing & Grid
Base: 8px grid
Scale: 2px, 4px, 6px, 8px, 9.5px, 12px, 16px, 20px, 24px, 32px, 42.5px, 48px, 72px
Map to components: button padding (8px vertical, 16px horizontal), card padding (24px), section gaps (32px–72px)

## Border Radius
- sm: 4px — small divs
- sm2: 6px — small divs
- md: 10px — medium rounding
- md2: 12px — cards, iframes
- lg: 16px — buttons, divs
- xl: 20px — images, spans
- pill-lg: 44px — large pill buttons
- pill-xl: 100px — large pills
- pill-full: 999px — pill shapes
- circle: 50% — avatars

## Shadows & Depth
- High: rgba(0,0,0,0.08) 0px 4px 32px, rgba(0,0,0,0.04) 0px 1px 4px
- Low: rgba(0,0,0,0.04) 0px 2px 8px, rgba(0,0,0,0.02) 0px 1px 2px

## Component Specifications

### Primary Button
Default: bg #ff2e4d, color #fff, padding 0, radius 999px, border none, fw 600, fs 16px  
Hover: color var(--color-primary-label), bg var(--fill1)  
Active: bg var(--color-tertiary-label), color var(--color-primary-label)  
Focus: outline 2px solid var(--link-accent)  

### Secondary Button
Default: bg #fff, color rgba(51,51,51,0.8), radius 44px, fs 14px, fw 400  
Hover: color var(--color-primary-label)

### Input Fields
Transparent or rgba(0,0,0,0.03), text #333, radius 0 or 999px, padding 0 84px 0 16px  
Focus: outline none, box-shadow 0 0 0 1000px var(--elevation-high-background) inset

### Cards
bg #fff, radius 12–20px, 1px solid rgba(0,0,0,0.08), shadow-high

## Layout & Responsive Rules
Breakpoints: 400px, 540px, 695px, 696px, 720px, 820px, 900px, 959px, 960px, 1024px, 1030px, 1101px, 1191px, 1192px, 1250px, 1400px, 1423px, 1424px, 1727px, 1728px

## Interaction Rules
Transitions: 150ms ease for hover/active/focus  
Focus indicators: 2px solid var(--link-accent)  

## DO List
- Use ONLY colors from the palette
- Maintain 8px grid—spacing must be multiples of 4px or 8px
- Use system-ui stack for all text
- Keep primary red for interactive elements only
- Apply correct radius values for component type
- Use soft shadows—no hard edges
- Optimize for mobile first

## DON'T List
- Don't invent new colors
- Don't mix sharp and rounded corners
- Don't apply primary red to non-interactive elements
- Don't use custom fonts
- Don't skip focus states
- Don't apply shadows with high opacity

## Code Examples

### Primary Button
```css
.btn-primary {
  background: #ff2e4d;
  color: #ffffff;
  padding: 0;
  border-radius: 999px;
  font-weight: 600;
  font-size: 16px;
  border: none;
  transition: background 150ms ease;
}
.btn-primary:hover {
  color: #333333;
  background: var(--fill1);
}
.btn-primary:focus {
  outline: 2px solid var(--link-accent);
}
.btn-primary:disabled {
  background: rgba(48,48,52,0.15);
  cursor: not-allowed;
}
```

### Card
```css
.card {
  background: #ffffff;
  border-radius: 12px;
  padding: 24px;
  border: 1px solid rgba(0,0,0,0.08);
  box-shadow: rgba(0,0,0,0.08) 0px 4px 32px, rgba(0,0,0,0.04) 0px 1px 4px;
}
```

### Input
```css
.input {
  background: rgba(0,0,0,0.03);
  color: #333333;
  border: none;
  border-radius: 999px;
  padding: 0 84px 0 16px;
}
.input:focus {
  outline: none;
  box-shadow: 0 0 0 1000px var(--elevation-high-background) inset;
}
```

9. Summary

TL;DR — Xiaohongshu’s system is built on a single bold red, functional neutrals, and a mobile-first grid. Rounded shapes and soft shadows keep it friendly, while system fonts keep it fast.

Brand Keywords

  • red-forward
  • mobile-practical
  • rounded-friendly
  • neutral-functional
  • speed-optimized