Weibo Brand Design System Deep Dive
1. Brand Overview
Weibo’s design language is exactly what you’d expect from one of China’s biggest social platforms: confident, fast, and built for constant interaction. This is a UI for people who live inside it all day — influencers, casual scrollers, news junkies. The visual system is tuned for high-density content and rapid updates.
The vibe is orange-forward, leaning into #ff8200 as a visual anchor. Not subtle at all — this is about being seen, about action. That orange is everywhere: buttons, CTAs, accents. It’s the kind of color that says “click me now” without asking politely. Supporting tones are neutral greys in tight increments (#808080, #cccccc, #939393) plus stark black and white for text and surfaces. It’s a classic social-media blend: warm primary for engagement, cool neutrals to hold content without distraction.
Typography is pragmatic. They rely on system fonts (QuoteFallback stack: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans) and Arial in various contexts. No custom web fonts here — this keeps rendering snappy and consistent across devices. Sizes are compact, with a lot of 15–16px body text and smaller captions. Perfect for dense feeds.
Spacing uses an 8px grid, but with plenty of oddball values (15px, 13px, 9px) — probably legacy from older layouts or specific component tweaks. Corners are rounded in consistent small radii (4px, 8px, 15px, 36px for pill-ish buttons). Avatars and icons go full 50% for circles. Shadows are minimal — the dominant depth cue is border color rather than drop shadows.
Overall: Weibo’s design system is utilitarian and tuned for speed. It’s not trying to win a design award; it’s trying to keep billions of interactions flowing without visual friction. Orange drives action, grey keeps the balance, fonts are safe defaults, and the grid is tight enough to pack a lot in without chaos.
2. Color System
2.1 Primary Colors
The primary is rgb(255, 130, 0) (#ff8200). Saturated, warm, and unmistakable. It sits between safety orange and pumpkin — bright enough to pop against greys and white, but not so harsh as neon. Psychology: urgency with friendliness. Similar to Amazon’s orange, but slightly deeper. Competitors like Twitter go blue, Instagram goes gradient — Weibo’s orange is unique in the social space.
This orange is used for:
- Primary buttons
- Login CTAs
- Highlight elements in navigation
Hover states sometimes push it slightly hotter (#ff5900) for emphasis.
2.2 Complete Palette
| Color Name | Hex | Role | Usage |
|---|---|---|---|
| Neutral Grey | #808080 | Secondary text | Likes, metadata |
| Light Grey | #cccccc | Background neutral | Dividers, disabled states |
| Mid Grey | #939393 | Tertiary text | Links, logo text |
| White | #ffffff | Surface / text on orange | Button text, backgrounds |
| Primary Orange | #ff8200 | Primary action | CTAs, buttons |
| Black | #000000 | High-contrast text | Headers, icons |
| Accent Orange-Red | #eb7340 | Secondary accent | Icon links |
| Dark Grey | #606060 | UI controls | Button text, icons |
| Off-White | #f0f1f4 | Soft background | Container fill |
| Hover Orange | #ff5900 | Hover state for buttons | Primary hover |
| Place Blue | #4f7db2 | Location text/icons | Map, location tags |
| Tip Green Icon | #ffffff | Icon color on green bg | Tips |
| Gold Icon | #fec42d | Special icon bg | Badges |
| Warn BG | #daeeff | Warning background | Alerts |
| Orange-3 | #eb7350 | Secondary orange | Alternate accents |
| Red Special | #fe3c56 | Special icon bg | Alerts |
| Orange Special | #ff9406 | Special icon bg | Highlights |
| Blue Special | #52afff | Special icon bg | Highlights |
| Deep Red | #a40000 | Special icon bg | Highlights |
| Gray-10 | #dfe1e8 | Neutral UI element | Borders |
| Liked Color | #e14123 | Like icon | Engagement |
| Error BG | rgba(255,237,219,0.95) | Error background | Error states |
| Red Badge | #ff2026 | Notification badge | Alerts |
| Red-2 | red | Generic red | Error text |
| Config BG | #e5e6eb | Panel background | Config menus |
| Panel BG None | transparent | Top nav background | Navigation |
2.3 Color Relationships
Contrast: Primary orange against white gives excellent contrast (WCAG AAA for large text). Against black, even stronger. Against light grey (#cccccc), it’s acceptable for icons but borderline for small text.
Grey scale is closely spaced — #808080 vs #939393 is subtle. That can be risky for accessibility, especially for small text. Black and white are used for high-contrast elements to offset this.
Dark mode: No explicit dark mode tokens here — palette is tuned for light backgrounds. If dark mode is needed, orange will still pop, but greys would need re-mapping.
2.4 Usage Guide
- Works: Orange (
#ff8200) + white text for CTAs. Grey (#808080) for metadata on white backgrounds. Black text for headlines. - Avoid: Orange on grey backgrounds — low contrast. Grey-on-grey (
#cccccc+#939393) for anything important — fails accessibility. - Accent: Use
#eb7340for secondary emphasis — it’s softer than primary orange. - Functional: Red badge (
#ff2026) for notifications only. Place blue (#4f7db2) for location.
3. Typography
3.1 Font Families
Two main families:
- QuoteFallback stack:
system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans— used for headings, links, captions. - Arial (occasionally with Helvetica fallback) — used for buttons, captions, some headings.
No Google Fonts, no Adobe Fonts, no variable fonts. This makes load times fast and renders consistently.
3.2 Type Scale
| Element | Font | Size px/rem | Weight | Line Height |
|---|---|---|---|---|
| heading-1 | QuoteFallback | 22px / 1.38rem | 400 | 0.00 |
| heading-1 | QuoteFallback | 22px / 1.38rem | 500 | 1.18 |
| button | Arial | 20px / 1.25rem | 500 | 1.00 |
| heading-1 | Arial | 20px / 1.25rem | 500 | 1.00 |
| heading-1 | Arial | 19px / 1.19rem | 400 | 0.89 |
| link | QuoteFallback | 16px / 1.00rem | 400 | — |
| heading-1 | QuoteFallback | 16px / 1.00rem | 400 | — |
| heading-1 | QuoteFallback | 16px / 1.00rem | 700 | 1.00 |
| button | Arial | 16px / 1.00rem | 400 | 1.00 |
| heading-1 | Arial | 16px / 1.00rem | 400 | 1.00 |
| button | QuoteFallback | 16px / 1.00rem | 400 | — |
| heading-1 | QuoteFallback | 15px / 0.94rem | 500 | 1.60 |
| heading-1 | QuoteFallback | 15px / 0.94rem | 400 | 1.60 |
| link | QuoteFallback | 15px / 0.94rem | 700 | 1.40 |
| heading-1 | QuoteFallback | 15px / 0.94rem | 700 | 1.40 |
| link | QuoteFallback | 15px / 0.94rem | 400 | 1.60 |
| button | Arial | 14px / 0.88rem | 400 | — |
| caption | Arial | 14px / 0.88rem | 400 | — |
| caption | QuoteFallback | 14px / 0.88rem | 400 | 1.00 |
| button | Arial | 14px / 0.88rem | 500 | 1.00 |
| caption | Arial | 14px / 0.88rem | 500 | 1.00 |
| button | Arial | 13.33px / 0.83rem | 400 | — |
| link | QuoteFallback | 13px / 0.81rem | 400 | 1.23 |
| caption | QuoteFallback | 13px / 0.81rem | 400 | 1.23 |
| button | QuoteFallback | 12px / 0.75rem | 400 | 2.33 |
| caption | QuoteFallback | 12px / 0.75rem | 400 | 1.17 |
| button | Arial | 12px / 0.75rem | 400 | 1.00 |
| caption | Arial | 12px / 0.75rem | 400 | 1.00 |
| caption | QuoteFallback | 11px / 0.69rem | 400 | 1.64 |
| link | QuoteFallback | 10px / 0.63rem | 400 | 1.80 |
| caption | QuoteFallback | 10px / 0.63rem | 400 | 1.80 |
| caption | Arial | 10px / 0.63rem | 400 | 1.00 |
| button | Arial | 10px / 0.63rem | 400 | 1.00 |
3.3 Hierarchy
Hierarchy is achieved through small jumps in size and weight, not huge leaps. 22px headings are rare; most UI runs at 16px or below. This keeps feeds dense, but can hurt scannability. Bold weights at small sizes (700 at 15px) are used for emphasis in lists. Line heights are tight — sometimes literally 1.00 — which reinforces the compact feel.
4. Spacing & Layout
4.1 Spacing Scale
Base grid: 8px. Common values:
| px | rem | count |
|---|---|---|
| 1 | 0.06rem | 18 |
| 2 | 0.13rem | 4 |
| 3 | 0.19rem | 18 |
| 4 | 0.25rem | 23 |
| 5 | 0.31rem | 17 |
| 6 | 0.38rem | 10 |
| 7 | 0.44rem | 4 |
| 8 | 0.50rem | 36 |
| 9 | 0.56rem | 18 |
| 10 | 0.63rem | 19 |
| 12 | 0.75rem | 4 |
| 13 | 0.81rem | 5 |
| 14 | 0.88rem | 4 |
| 15 | 0.94rem | 75 |
| 16 | 1.00rem | 14 |
| 18 | 1.13rem | 1 |
| 20 | 1.25rem | 7 |
| 38 | 2.38rem | 1 |
| 40 | 2.50rem | 1 |
| 224 | 14.00rem | 1 |
4.2 Layout
No explicit breakpoints in data. Likely responsive through Vuetify’s grid system. Container widths are flexible; spacing tokens suggest tight vertical rhythm.
5. Visual Elements
Border Radius
Values:
- 0px — square
- 2px — subtle rounding (links, buttons)
- 3px, 4px — common for divs, cards, images
- 5px, 6px — rare
- 8px — frequent for cards, inputs, badges
- 15px — buttons
- 20px, 24px, 25px — occasional
- 36px — pill buttons
- 50% — avatars, icons, circular badges
Shadows
- rgba(0,0,0,0.1) 0px 2px 4px
- rgba(255,130,0,0.4) 0px 2px 10px
- rgb(255,255,255) 0px 0px 3px
- rgba(0,0,0,0.8) 0px 0px 7px
Minimal use — mainly flat design with occasional soft shadow.
Borders
Frequent 1px solid in light greys (#f2f2f2, #f0f1f4). Orange borders for active buttons.
6. Components
6.1 Buttons
Primary (woo-button-main woo-button-flat woo-button-primary):
- Default: bg
#ff8200, text#ffffff, padding9px 15px, radius0px, border none, fontArial 20px 500 - Hover: text color var(--gray-400)
- Focus: no explicit style
Wrap Button (woo-button-wrap):
- Transparent bg, white text, no padding, radius 0px, border 1px transparent
Box Flex Button:
- bg
#e5e6eb, text black-ish (#050505), radius 15px, font 13.33px
Side Option Button:
- bg
#f9f9f9, text#838383, radius 4px
Panel Button:
- bg
#ffffff, text#939393, border 1px solid#f2f2f2, radius 4px, transform translateX(-40px)
6.2 Links
No underline, colors vary:
- Black
#000000, grey#939393, orange#ff8200, white#ffffff, accent#eb7340 - Weight mostly 400, orange variant at 500
6.3 Forms
Text inputs: transparent bg, text #333333, no border, no radius. Very minimal.
6.4 Cards
Border-radius 4px or 8px, light grey borders, minimal shadows.
7. Design Tokens
:root {
/* Colors */
--color-primary: #ff8200;
--color-primary-hover: #ff5900;
--color-grey-1: #808080;
--color-grey-2: #cccccc;
--color-grey-3: #939393;
--color-grey-4: #606060;
--color-white: #ffffff;
--color-black: #000000;
--color-orange-secondary: #eb7340;
--color-offwhite: #f0f1f4;
--color-place-blue: #4f7db2;
--color-gold-icon: #fec42d;
--color-warn-bg: #daeeff;
--color-orange-3: #eb7350;
--color-red-special: #fe3c56;
--color-orange-special: #ff9406;
--color-blue-special: #52afff;
--color-deep-red: #a40000;
--color-gray-10: #dfe1e8;
--color-liked: #e14123;
--color-error-bg: rgba(255,237,219,0.95);
--color-red-badge: #ff2026;
--color-red-2: red;
--color-config-bg: #e5e6eb;
--color-nav-bg: transparent;
/* Typography */
--font-quote-fallback: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans;
--font-arial: Arial, Helvetica, sans-serif;
/* Spacing */
--space-1: 1px;
--space-2: 2px;
--space-3: 3px;
--space-4: 4px;
--space-5: 5px;
--space-6: 6px;
--space-7: 7px;
--space-8: 8px;
--space-9: 9px;
--space-10: 10px;
--space-12: 12px;
--space-13: 13px;
--space-14: 14px;
--space-15: 15px;
--space-16: 16px;
--space-18: 18px;
--space-20: 20px;
--space-38: 38px;
--space-40: 40px;
--space-224: 224px;
/* Radius */
--radius-none: 0px;
--radius-2: 2px;
--radius-3: 3px;
--radius-4: 4px;
--radius-5: 5px;
--radius-6: 6px;
--radius-8: 8px;
--radius-15: 15px;
--radius-20: 20px;
--radius-24: 24px;
--radius-25: 25px;
--radius-36: 36px;
--radius-full: 50%;
/* Shadows */
--shadow-soft: rgba(0, 0, 0, 0.1) 0px 2px 4px 0px;
--shadow-orange: rgba(255, 130, 0, 0.4) 0px 2px 10px 0px;
--shadow-white: rgb(255, 255, 255) 0px 0px 3px 0px;
--shadow-hard: rgba(0, 0, 0, 0.8) 0px 0px 7px 0px;
}8. AI Coding Assistant Prompt
# Weibo Design System Specification
You are a Weibo design expert. Build UIs matching their visual language exactly.
## Brand Context
Weibo’s design is built for high-density social interaction. Orange drives engagement, neutrals hold content without distraction. Typography is system-based for speed, spacing is tight, corners are small and consistent.
## Color Palette
- Primary Orange: #ff8200 — CTAs, primary buttons, login actions
- Primary Hover Orange: #ff5900 — Hover state for primary buttons
- Neutral Grey-1: #808080 — Secondary text, metadata
- Light Grey: #cccccc — Background neutral, dividers
- Mid Grey: #939393 — Tertiary text, logo text
- White: #ffffff — Surfaces, text on orange
- Black: #000000 — Headlines, icons
- Accent Orange-Red: #eb7340 — Icon links, secondary accents
- Dark Grey: #606060 — UI controls, icons
- Off-White: #f0f1f4 — Container backgrounds
- Place Blue: #4f7db2 — Location tags
- Gold Icon: #fec42d — Special icon backgrounds
- Warn Background: #daeeff — Alerts
- Orange-3: #eb7350 — Secondary orange accents
- Red Special: #fe3c56 — Alert icons
- Orange Special: #ff9406 — Highlight icons
- Blue Special: #52afff — Highlight icons
- Deep Red: #a40000 — Highlight icons
- Gray-10: #dfe1e8 — Borders, neutral UI
- Liked Color: #e14123 — Like icons
- Error BG: rgba(255,237,219,0.95) — Error states
- Red Badge: #ff2026 — Notifications
- Red-2: red — Error text
- Config BG: #e5e6eb — Panel background
- Nav BG Transparent: transparent — Top navigation
## Typography
Fonts:
- QuoteFallback: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans
- Arial, Helvetica
Sizes/Weights:
| Level | Font | Size | Weight | Line Height | Use |
|-------|------|------|--------|-------------|-----|
| H1-lg | QuoteFallback | 22px | 500 | 1.18 | Page titles |
| H1-md | Arial | 20px | 500 | 1.00 | Headlines |
| Body | QuoteFallback | 16px | 400 | — | Feed text |
| Body-bold | QuoteFallback | 15px | 700 | 1.40 | Emphasis text |
| Caption | Arial | 14px | 400 | — | Metadata |
| Small | QuoteFallback | 12px | 400 | 1.17 | Small UI labels |
| Tiny | QuoteFallback | 10px | 400 | 1.80 | Secondary info |
## Spacing & Grid
Base unit: 8px
Scale: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 20, 38, 40, 224
Use multiples for all padding/margins.
## Border Radius
- none: 0px — square edges
- sm: 2px — subtle rounding
- md: 4px — inputs, cards
- lg: 8px — badges, larger cards
- pill: 15px — buttons
- xl-pill: 36px — pill buttons
- full: 50% — avatars, circular icons
## Shadows & Depth
- Soft: rgba(0,0,0,0.1) 0px 2px 4px
- Accent: rgba(255,130,0,0.4) 0px 2px 10px
- Rarely used — prefer borders for depth.
## Component Specifications
### Primary Button
Default:
```css
.btn-primary {
background-color: #ff8200;
color: #ffffff;
padding: 9px 15px;
border-radius: 0px;
border: none;
font-family: Arial, sans-serif;
font-size: 20px;
font-weight: 500;
}
.btn-primary:hover {
background-color: #ff5900;
}
.btn-primary:disabled {
opacity: 0.5;
cursor: not-allowed;
}
```
### Secondary Button
```css
.btn-secondary {
background-color: #f9f9f9;
color: #838383;
border-radius: 4px;
font-size: 13px;
font-weight: 400;
}
```
### Navigation Links
```css
.nav-link {
color: #000000;
text-decoration: none;
}
```
### Input Fields
```css
.input-text {
background-color: transparent;
color: #333333;
border: none;
border-radius: 0px;
padding: 0px;
}
```
### Card
```css
.card {
background-color: #ffffff;
border-radius: 8px;
border: 1px solid #f2f2f2;
padding: 15px;
}
```
## Layout & Responsive Rules
- Use Vuetify grid
- All spacing multiples of 8px
- No breakpoints defined — follow Vuetify defaults
## Interaction Rules
- State changes: 150ms ease transitions
- Hover: color or background change only
- Focus: outline in high contrast color
## DO List
- Use only defined palette colors
- Keep spacing to multiples of 8px
- Maintain consistent border radius per component type
- Use system fonts — no custom web fonts
- Keep shadows minimal
## DON'T List
- Don't invent new colors
- Don't mix sharp and rounded corners
- Don't overuse shadows
- Don't break the tight vertical rhythm
## Code Examples
Primary Button:
```css
.btn-primary {
background: #ff8200;
color: #fff;
padding: 9px 15px;
border-radius: 0;
font: 500 20px Arial;
}
```
Card:
```css
.card {
background: #fff;
border: 1px solid #f2f2f2;
border-radius: 8px;
padding: 15px;
}
```
Input:
```css
.input {
background: transparent;
color: #333;
border: none;
padding: 0;
}
```9. Summary
TL;DR — Weibo’s design is built for speed and density. Orange grabs attention, greys hold the frame, fonts are system defaults. Spacing is tight, corners are small, shadows are rare.
Brand Keywords: orange-driven, dense-feed, utilitarian-modern, action-oriented, minimal-depth