Tplinkcloud Design System Deep Dive
1. Brand Overview
Tplinkcloud is TP-Link’s consumer cloud service front-end. It’s not trying to be flashy. This is infrastructure UI — the kind you log into to manage devices, check statuses, or adjust settings. The brand vibe is utilitarian with a thin layer of friendliness. They’re clearly leaning on TP-Link’s existing industrial design language: clean lines, muted neutrals, and a single pop of color for interaction.
The entire site feels like it’s designed for people who want to get something done quickly. No gradients, no ornamental shadows. The palette is mostly grayscale with a few functional blues and one aggressive red (#ff4036) for high-priority actions. Typography is consistent — everything uses the same custom Myriad Pro Light Semi Extended variant. That uniformity screams “controlled brand environment” and helps keep interface copy feeling aligned, even when the sizes change.
The philosophy here is pragmatic minimalism. They’ve stripped away anything that could distract from core actions. If you’re building a UI for Tplinkcloud, you’re building inside a rigid grid of predictable spacing, consistent type, and colors that only show up when they mean something. This is aimed at network admins, tech-savvy home users, and anyone who needs their IoT devices connected and accessible 24/7. It’s not “fun tech,” it’s dependable tech.
What I like: They’ve kept the color system tight — no random brand blues sneaking into secondary actions. The typography is one-family-fits-all, which means no mental overhead switching between body and display styles. Odd choice: The primary button is red, not blue, which flips the typical enterprise UI pattern. That’s a deliberate choice — red reads as urgent, so you’re aware when you’re about to commit an action.
If you’re designing here, you need to respect the restraint. One wrong shade of grey and the whole thing starts feeling messy. One extra corner radius and you’ve broken the visual rhythm. This is a system that works because it’s boring — and boring here is good.
2. Color System
2.1 Primary Colors
The standout color in the system is rgb(255, 64, 54) → #ff4036. This is the primary button background. It’s hot, urgent, and impossible to miss against the neutral backdrop. TP-Link usually uses teal blues for its hardware branding, but here they’ve gone red for primary actions — probably to make sure the user is aware they’re doing something impactful (e.g., deleting, saving critical settings).
Secondary emphasis comes from a single vibrant blue: rgb(60, 185, 233) → #3cb9e9, used sparingly (possibly for links or highlights), and a deep blue rgb(0, 95, 204) → #005fcc for hover/focus states.
The rest of the palette is grayscale — from true white to near-black — to keep the UI clean and to make the accent colors stand out.
2.2 Complete Palette
| Color Name | Hex | Role | Usage |
|---|---|---|---|
| White | #ffffff | Background, text on primary buttons | Buttons, alert window buttons |
| Light Gray | #e6e6e6 | Neutral background | Dividers, table borders |
| Mid Gray | #a0a2a8 | Secondary text, borders | Links, subtle dividers |
| Gray | #999999 | Secondary text | LinkedIn link, muted UI text |
| Dark Gray | #323232 | Primary text | Top navigation links |
| Very Dark Gray | #161616 | Strong text emphasis | Top color, headings |
| Border Gray | #dadada | Dividers | Toplink borders |
| Light Neutral | #f2f2f2 | Background surfaces | Panels, cards |
| Mid Neutral | #b0b0b0 | Muted UI elements | Less frequent surfaces |
| Accent Blue | #3cb9e9 | Functional accent | Highlights, possibly secondary CTAs |
| Deep Blue | #005fcc | Interaction state | Hover/focus outlines |
| Error Red | #ff4036 | Primary action | Buttons, alerts |
| Placeholder Gray | #aaaaaa | Input text | Form placeholders |
| Divider Gray | #c8c8c8 | Borders | Div elements |
| Highlight Blue | #26ade4 | Borders | Div highlight border |
| Light Border | #eeeeee | Button border | Button outlines |
| Table Border | #e6e6e6 | Table dividers | Table component |
| Secondary Border | #bfbfbf | Button outlines | Secondary button border |
2.3 Color Relationships
The high-contrast pairing here is #ff4036 (red) with #ffffff (white) — excellent contrast, comfortably meeting WCAG AAA for text accessibility. The dark grays (#323232, #161616) over white also pass comfortably. They’ve avoided mid-gray text over light gray backgrounds, which often fails contrast — good call.
Accessibility is strong for primary actions, weaker for secondary link colors (#999999 on white is borderline — WCAG AA threshold). This is fine for non-critical text but worth noting if designing for older users.
No dark mode here. The palette is optimized for light backgrounds. If they ever add dark mode, they’ll need inversion for red and blue accents to maintain accessibility.
2.4 Usage Guide
- Use #ff4036 only for primary buttons and urgent CTAs.
- Use #3cb9e9 for secondary interactive highlights.
- Text should be #323232 or #161616 for body and headings.
- Avoid using #999999 for critical text — keep it for metadata and placeholders.
- Borders: stick to #dadada, #e6e6e6, or #c8c8c8 depending on hierarchy.
- Don’t introduce extra colors. This system survives because it’s tight.
3. Typography
3.1 Font Families
Everything is set in MYRIADPRO-LIGHTSEMIEXT, a custom Adobe font variant. No Google Fonts, no variable fonts. This is a controlled environment — you either have the font or you don’t. No fallback stack is specified in the data, which is risky for web delivery but consistent for brand control.
This font is light-weight but extended horizontally — giving headings a calm, stable presence without feeling cramped.
3.2 Type Scale
| Element | Font | Size | Weight | Line Height |
|---|---|---|---|---|
| Heading-1 | MYRIADPRO-LIGHTSEMIEXT | 36px (2.25rem) | 400 | - |
| Button | MYRIADPRO-LIGHTSEMIEXT | 24px (1.50rem) | 400 | - |
| Heading-1 | MYRIADPRO-LIGHTSEMIEXT | 24px (1.50rem) | 400 | - |
| Heading-1 | MYRIADPRO-LIGHTSEMIEXT | 21px (1.31rem) | 400 | - |
| Heading-1 | MYRIADPRO-LIGHTSEMIEXT | 18px (1.13rem) | 400 | - |
| Link | MYRIADPRO-LIGHTSEMIEXT | 16px (1.00rem) | 400 | - |
| Heading-1 | MYRIADPRO-LIGHTSEMIEXT | 15px (0.94rem) | 700 | - |
| Heading-1 | MYRIADPRO-LIGHTSEMIEXT | 15px (0.94rem) | 400 | - |
| Heading-1 | MYRIADPRO-LIGHTSEMIEXT | 14.4px (0.90rem) | 400 | 1.39 |
| Link | MYRIADPRO-LIGHTSEMIEXT | 14px (0.88rem) | 400 | - |
| Caption | MYRIADPRO-LIGHTSEMIEXT | 14px (0.88rem) | 400 | - |
| Caption | MYRIADPRO-LIGHTSEMIEXT | 12px (0.75rem) | 400 | - |
| Link | MYRIADPRO-LIGHTSEMIEXT | 12px (0.75rem) | 400 | - |
| Caption | MYRIADPRO-LIGHTSEMIEXT | 10px (0.63rem) | 700 | - |
| Link | MYRIADPRO-LIGHTSEMIEXT | 10px (0.63rem) | 400 | - |
| Button | MYRIADPRO-LIGHTSEMIEXT | 10px (0.63rem) | 400 | - |
| Caption | MYRIADPRO-LIGHTSEMIEXT | 10px (0.63rem) | 400 | - |
3.3 Hierarchy
Sizes drop in small increments — this keeps headings from shouting. The largest jump is from 36px to 24px, which clearly defines page titles vs section titles. The rest is subtle — link text is 16px or 14px, captions go down to 12px or 10px.
They’re not using bold to scream — even headings are often weight 400. Bold (700) shows up only in small sizes (15px, 10px) for emphasis labels. That’s flipped from most UIs, and it works here because the extended letterforms already give presence.
4. Spacing & Layout
4.1 Spacing Scale
Base grid: 8px. All common spacing values are multiples or near-multiples, except a few odd sizes.
| px | rem | Count | Notes |
|---|---|---|---|
| 1px | 0.06rem | 4 | Hairline adjustments |
| 3px | 0.19rem | 8 | Micro gaps |
| 5px | 0.31rem | 95 | Primary micro-spacing — huge usage |
| 8px | 0.50rem | 6 | Base grid unit |
| 18px | 1.13rem | 1 | Larger inset |
| 20px | 1.25rem | 1 | Section spacing |
| 22px | 1.38rem | 1 | Section spacing |
| 30px | 1.88rem | 2 | Large gaps |
| 35px | 2.19rem | 1 | Hero / large section gap |
4.2 Layout
No breakpoints defined in the data — likely a fluid layout with CSS media queries elsewhere. The spacing system is tight; 5px is the most used — suggests a denser interface without excessive white space.
5. Visual Elements
Border Radius: Three values: 2px, 4px, 6px — all on buttons. No large radii. This is a square-cornered system with slight rounding for touch targets. No pill shapes, no circles.
Shadows: None. This is flat design. Borders do the work.
Borders: Multiple 1px solids in various grays. Specific highlight border in #26ade4 (rgb(38,173,228)) for active states. Tables use 2px solid #e6e6e6 — heavier for structural separation.
6. Components
6.1 Buttons
Primary Button (classes: button clearoutline btn langbtn)
Default:
- Background: #ff4036
- Text: #ffffff
- Padding: 1px (tight — visual padding likely handled elsewhere)
- Border radius: 2px
- Border: 1px solid #eeeeee
- Font: MYRIADPRO-LIGHTSEMIEXT, 24px, weight 400
- No box shadow
- Outline: none
- Opacity: 1
Hover/Active/Focus: not defined in extracted data — may be handled inline.
6.2 Links
Four styles:
- Color: #161616, no underline, weight 400
- Color: #999999, no underline, weight 400
- Color: #323232, no underline, weight 400
- Color: #a0a2a8, no underline, weight 400
No hover states defined — possibly subtle color change or underline added.
6.3 Forms
Text Input
- Default: bg #fafafa, text #aaaaaa, border 1px solid #aaaaaa, radius 0px, padding 8px 8px 8px 10px
- Focus: bg #ffffff, border 1px solid #323232, no outline
No checkbox/radio/select styles in data.
7. Design Tokens (CSS Custom Properties)
:root {
/* Colors */
--color-white: #ffffff;
--color-gray-light: #e6e6e6;
--color-gray-mid: #a0a2a8;
--color-gray: #999999;
--color-gray-dark: #323232;
--color-gray-very-dark: #161616;
--color-border-gray: #dadada;
--color-neutral-light: #f2f2f2;
--color-neutral-mid: #b0b0b0;
--color-accent-blue: #3cb9e9;
--color-deep-blue: #005fcc;
--color-error-red: #ff4036;
--color-placeholder-gray: #aaaaaa;
--color-border-divider: #c8c8c8;
--color-highlight-blue: #26ade4;
--color-light-border: #eeeeee;
--color-table-border: #e6e6e6;
--color-secondary-border: #bfbfbf;
/* Typography */
--font-family-primary: "MYRIADPRO-LIGHTSEMIEXT";
--font-size-h1: 36px;
--font-size-button-lg: 24px;
--font-size-h2: 24px;
--font-size-h3: 21px;
--font-size-h4: 18px;
--font-size-link-lg: 16px;
--font-size-label-bold: 15px;
--font-size-label: 15px;
--font-size-subheading: 14.4px;
--font-size-link-md: 14px;
--font-size-caption-md: 14px;
--font-size-caption-sm: 12px;
--font-size-link-sm: 12px;
--font-size-caption-bold-xs: 10px;
--font-size-link-xs: 10px;
--font-size-button-sm: 10px;
--line-height-subheading: 1.39;
/* Spacing */
--space-1: 1px;
--space-3: 3px;
--space-5: 5px;
--space-8: 8px;
--space-18: 18px;
--space-20: 20px;
--space-22: 22px;
--space-30: 30px;
--space-35: 35px;
/* Border Radius */
--radius-sm: 2px;
--radius-md: 4px;
--radius-lg: 6px;
}8. AI Coding Assistant Prompt
# Tplinkcloud Design System Specification
You are a Tplinkcloud design expert. Build UIs matching their visual language exactly.
## Brand Context
Tplinkcloud is TP-Link’s cloud service interface — functional, minimal, and restrained. It uses a tight grayscale palette with a single urgent red for primary actions and a calm blue for secondary accents. Typography is uniform: Myriad Pro Light Semi Extended across all components.
## Colors
- White: #ffffff — Backgrounds, button text
- Light Gray: #e6e6e6 — Neutral surfaces, table borders
- Mid Gray: #a0a2a8 — Secondary text, dividers
- Gray: #999999 — Metadata, muted links
- Dark Gray: #323232 — Primary text
- Very Dark Gray: #161616 — Heading text, emphasis
- Border Gray: #dadada — Dividers
- Neutral Light: #f2f2f2 — Panels, cards
- Neutral Mid: #b0b0b0 — Secondary surfaces
- Accent Blue: #3cb9e9 — Highlights, secondary actions
- Deep Blue: #005fcc — Hover/focus outlines
- Error Red: #ff4036 — Primary buttons, alerts
- Placeholder Gray: #aaaaaa — Input placeholders
- Divider Gray: #c8c8c8 — Borders
- Highlight Blue: #26ade4 — Active borders
- Light Border: #eeeeee — Button outlines
- Table Border: #e6e6e6 — Table component dividers
- Secondary Border: #bfbfbf — Secondary button outlines
## Typography
Font family: "MYRIADPRO-LIGHTSEMIEXT"
| Level | Size | Weight | Line Height | Use For |
|-------|------|--------|-------------|---------|
| H1 | 36px | 400 | - | Page titles |
| Button Large | 24px | 400 | - | Main CTAs |
| H2 | 24px | 400 | - | Section headings |
| H3 | 21px | 400 | - | Subsections |
| H4 | 18px | 400 | - | Minor headings |
| Link Large | 16px | 400 | - | Navigation links |
| Label Bold | 15px | 700 | - | Emphasis labels |
| Label | 15px | 400 | - | Form labels |
| Subheading | 14.4px | 400 | 1.39 | Secondary headings |
| Link Medium | 14px | 400 | - | Inline links |
| Caption Medium | 14px | 400 | - | Descriptive text |
| Caption Small | 12px | 400 | - | Metadata |
| Link Small | 12px | 400 | - | Footer links |
| Caption Bold XS | 10px | 700 | - | Tiny emphasis |
| Link XS | 10px | 400 | - | Micro links |
| Button Small | 10px | 400 | - | Tag buttons |
| Caption XS | 10px | 400 | - | Tiny captions |
## Spacing & Grid
Base: 8px grid
Scale: 1px, 3px, 5px, 8px, 18px, 20px, 22px, 30px, 35px
Use 5px for tight component spacing, 8px for base padding, 20–35px for large section gaps.
## Border Radius
- sm: 2px — Small buttons
- md: 4px — Medium buttons
- lg: 6px — Larger buttons
## Shadows & Depth
Flat design—use borders for separation, no shadows.
## Components
### Primary Button
```css
.btn-primary {
background: #ff4036;
color: #ffffff;
padding: 1px;
border-radius: 2px;
font-family: "MYRIADPRO-LIGHTSEMIEXT";
font-size: 24px;
font-weight: 400;
border: 1px solid #eeeeee;
box-shadow: none;
outline: none;
opacity: 1;
}
```
### Link Styles
```css
.link-dark { color: #161616; text-decoration: none; }
.link-gray { color: #999999; text-decoration: none; }
.link-mid { color: #323232; text-decoration: none; }
.link-light { color: #a0a2a8; text-decoration: none; }
```
### Input Field
```css
.input-text {
background: #fafafa;
color: #aaaaaa;
border: 1px solid #aaaaaa;
border-radius: 0px;
padding: 8px 8px 8px 10px;
box-shadow: none;
outline: none;
}
.input-text:focus {
background: #ffffff;
border: 1px solid #323232;
}
```
## Layout & Responsive Rules
Max content width: not specified
Page padding: multiples of 8px
Grid gap: use 5px or 8px for dense layouts
## Interaction Rules
- Transition timing: 150ms ease for state changes
- Focus indicators: 1px solid #005fcc or #26ade4 depending on context
- No hover color data provided — maintain same background unless specified
## DO
- Use ONLY colors from the palette—no custom colors
- Maintain 8px grid—all spacing must be multiples of 8px (except micro 5px)
- Use MYRIADPRO-LIGHTSEMIEXT for all text
- Keep border radii small (2px, 4px, 6px)
- Use red (#ff4036) only for primary actions
## DON'T
- Add shadows
- Mix rounded and sharp corners
- Use bold weight for large headings
- Use mid-gray (#999999) for primary text
- Introduce gradients
## Code Examples
### Button
```css
.btn-primary {
background: #ff4036;
color: #ffffff;
padding: 1px;
border-radius: 2px;
font-size: 24px;
font-family: "MYRIADPRO-LIGHTSEMIEXT";
}
```
### Card
```css
.card {
background: #ffffff;
border: 1px solid #dadada;
border-radius: 4px;
padding: 8px;
}
```
### Input
```css
.input-text {
border: 1px solid #aaaaaa;
padding: 8px 8px 8px 10px;
background: #fafafa;
}
.input-text:focus {
border-color: #323232;
}
```9. Summary
TL;DR — Tplinkcloud’s design language is grayscale-first, with one urgent red and one calm blue for interaction. Typography is a single light-extended family across all sizes. The system is flat, with tiny corner radii and an 8px grid. It’s built for clarity and speed, not decoration.
Brand Keywords:
- utilitarian-minimalist
- controlled-palette
- flat-interface
- urgent-accent
- grid-disciplined