DESIGN.md · Analysis

LTH Logistics

shiphangquocte.com · 10 Jul 2026 · 47 colors · Plus Jakarta Sans, Be Vietnam Pro, system-ui, sans-serif, Be Vietnam Pro, system-ui, sans-serif

LTH Logistics

A Vietnamese cross-border logistics and purchasing platform specializing in China-Vietnam freight forwarding and Taobao/1688 procurement. The design system emphasizes trust, clarity, and efficiency through a professional yet approachable aesthetic.

Colors

surface#fafaf7
surface-dim#f0f0ed
surface-bright#ffffff
surface-container-lowest#f5f5f2
surface-container-low#efefec
surface-container#e8e8e5
surface-container-high#e0e0dd
surface-container-highest#d8d8d5
on-surface#0a1f44
on-surface-variant#5e6c8c
inverse-surface#0e1730
inverse-on-surface#f5f7ff
outline#8995b5
outline-variant#c4cde0
surface-tint#1e40af
primary#e63946
on-primary#ffffff
primary-container#ffd8dc
on-primary-container#5e0a14
inverse-primary#ff7e85
secondary#ffd166
on-secondary#0a1f44
secondary-container#ffe8a3
on-secondary-container#3d2f00
tertiary#1e40af
on-tertiary#ffffff
tertiary-container#d6e4ff
on-tertiary-container#001159
error#e63946
on-error#ffffff
error-container#ffd8dc
on-error-container#5e0a14
primary-fixed#ffd8dc
primary-fixed-dim#ff7e85
on-primary-fixed#3d0a11
on-primary-fixed-variant#8b1d28
secondary-fixed#ffe8a3
secondary-fixed-dim#ffd166
on-secondary-fixed#2d2400
on-secondary-fixed-variant#6b5900
tertiary-fixed#d6e4ff
tertiary-fixed-dim#7aa9ff
on-tertiary-fixed#000d3d
on-tertiary-fixed-variant#0d2a7a
background#fafaf7
on-background#0a1f44
surface-variant#e8e8e5

Typography

display
fontFamily: Plus Jakarta Sans, Be Vietnam Pro, system-ui, sans-serif · fontSize: 56px · fontWeight: 700 · lineHeight: 64px · letterSpacing: -0.03em
headline-lg
fontFamily: Plus Jakarta Sans, Be Vietnam Pro, system-ui, sans-serif · fontSize: 40px · fontWeight: 700 · lineHeight: 48px · letterSpacing: -0.02em
headline-md
fontFamily: Plus Jakarta Sans, Be Vietnam Pro, system-ui, sans-serif · fontSize: 28px · fontWeight: 600 · lineHeight: 36px · letterSpacing: -0.01em
title-lg
fontFamily: Plus Jakarta Sans, Be Vietnam Pro, system-ui, sans-serif · fontSize: 20px · fontWeight: 600 · lineHeight: 28px
body-lg
fontFamily: Be Vietnam Pro, system-ui, sans-serif · fontSize: 18px · fontWeight: 400 · lineHeight: 28px
body-md
fontFamily: Be Vietnam Pro, system-ui, sans-serif · fontSize: 16px · fontWeight: 400 · lineHeight: 24px
label-md
fontFamily: Plus Jakarta Sans, Be Vietnam Pro, system-ui, sans-serif · fontSize: 14px · fontWeight: 600 · lineHeight: 20px · letterSpacing: 0.01em
label-sm
fontFamily: Be Vietnam Pro, system-ui, sans-serif · fontSize: 12px · fontWeight: 500 · lineHeight: 16px

Design guidance

Overview

LTH Logistics is a Vietnamese cross-border e-commerce logistics platform that simplifies purchasing from Chinese marketplaces (Taobao, 1688, Tmall) and manages freight forwarding to Vietnam. The design system embodies "Professional Clarity"—a modern, efficiency-focused aesthetic that combines the trustworthiness of corporate logistics with the accessibility of consumer e-commerce. The UI prioritizes scanability and task completion: bold primary red (#E63946) anchors call-to-action buttons, while a cool neutral palette (navy #0A1F44, warm cream #FAFAF7) creates a stable, professional backdrop. The emotional response is one of confidence and control: users feel they are in capable hands, with clear pathways to accomplish their shipping and purchasing goals.

The brand voice is direct, reassuring, and locally resonant. Tone: professional but not stiff; helpful without being patronizing. Vocabulary emphasizes transparency ("cước phí minh bạch" — transparent fees), speed ("siêu tốc" — ultra-fast), and reliability ("uy tín" — trustworthy). Example sentence in brand voice: "Nhập sỉ số lượng lớn, LTH lo từ A–Z" (Bulk wholesale orders—LTH handles everything from start to finish).

Colors

The color system is anchored by a vibrant primary red (#E63946), used exclusively for high-priority CTAs, status indicators, and brand moments. This red is warm, energetic, and culturally resonant in Vietnamese contexts (associated with prosperity and action). Secondary yellow (#FFD166) provides a complementary accent for highlights, badges, and secondary information layers—it reads as approachable and optimistic without competing with primary red. Tertiary blue (#1E40AF) is reserved for links, informational elements, and trust-building contexts (e.g., security badges, verified status). The surface stack is built on a warm off-white (#FAFAF7) as the base, with white (#FFFFFF) for elevated cards and modals. Text hierarchy is maintained through on-surface (#0A1F44, a deep navy) for primary c

Typography

The type system uses a two-font pairing: Plus Jakarta Sans (geometric, modern, weights 600–800) for headlines and display text, and Be Vietnam Pro (humanist, warm, weights 400–600) for body and UI labels. This combination balances corporate authority with local approachability. Display (56px, 700 weight, -0.03em letter-spacing) is reserved for hero headlines and major section breaks; headline-lg (40px, 700 weight) anchors subsections; headline-md (28px, 600 weight) introduces card groups and feature blocks. Body-lg (18px, 400 weight, 28px line-height) is used for introductory paragraphs and descriptive copy; body-md (16px, 400 weight, 24px line-height) is the default for form labels, list items, and standard content. Label-md (14px, 600 weight, 20px line-height, 0.01em tracking) is applied

Layout

The layout system uses a 12-column grid with a max-width of 1280px, centered on the viewport with symmetric gutters of 24px on desktop (reducing to 16px on tablet, 12px on mobile). The spacing scale follows a modular 8px unit: xs (4px) for micro-adjustments, sm (12px) for compact grouping, md (24px) for standard section padding, lg (40px) for major section separation, and xl (64px) for hero-to-content transitions. Container padding is consistently md (24px) on cards and modals, with internal element spacing using sm (12px) for related items and md (24px) for logical groupings. The hero section spans full-width with a 40px lg spacing buffer above the fold content. Search bars and input fields are full-width within their containers, with a minimum height of 44px to meet touch-target guidelin

Elevation & Depth

Depth is conveyed through a restrained shadow system that avoids harsh drop-shadows, instead using soft, diffused shadows to suggest layering. Level 1 (Base/Surface): no shadow; background is {colors.surface} (#FAFAF7) with optional 1px border at {colors.outline-variant}. Level 2 (Standard Card/Input): box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15), creating a subtle lift with a 3px blur radius and 8px spread. Level 3 (Elevated Card/Modal on Hover): box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12), a larger spread (24px) and softer blur (8px) to suggest greater distance. Primary buttons add a branded sha

Shapes

The shape philosophy is "Approachable Geometry"—rounded corners are used consistently to soften the interface and reduce visual harshness, while maintaining enough angularity to feel modern and intentional. Buttons use {rounded.full} (9999px) for maximum friendliness and to emphasize their interactive nature; this full-pill shape is a signature of the brand and appears on all primary CTAs. Cards and modals use {rounded.xl} (22px), a generous radius that feels premium without being cartoonish. Input fields and search bars use {rounded.DEFAULT} (10px) or {rounded.lg} (14px) depending on context—

Components

Action Elements Buttons are the primary interaction mechanism and use a consistent 44px height to meet accessibility touch-target guidelines (minimum 44x44px). Primary buttons (button-primary) use {colors.primary} (#E63946) background with white text, {rounded.full} (9999px), and padding of 11px 24px. On hover (button-primary-hover), the background darkens to #D42A36 and the shadow expands from 0 3px 8px to 0 6px 16px with a 0.15s transition. On active/press (button-primary-active), the background further darkens to #C01F2B and the shadow compresses to 0 2px 4px, creating tactile feedback. Secondary buttons (button-secondary) use a white background with a 1px border at {colors.outline-variant}, maintaining the same height and rounded radius but with a more subtle hover state (backgroun

Do's and Don'ts

**Do**

  • Do use {colors.primary} (#E63946) exclusively for high-priority CTAs, error states, and brand moments—never dilute its impact by overusing it on secondary elements.
  • Do maintain a minimum 44px height for all interactive elements (buttons, inputs, list items) to meet WCAG touch-target guidelines and reduce mobile friction.
  • Do apply consistent 24px padding (md spacing) to card and modal interiors, with 12px (sm spacing) between related elements within a card to create visual hierarchy.
  • Do use Plus Jakarta Sans (600–700 weight) for all headlines and display text to signal authority and modernity; reserve Be Vietnam Pro for body copy and UI labels.
  • Do pair button hover states with a 0.15s–0.2s ease-out transition and a shadow expansion (e.g., 0 3px 8px → 0 6px 16px) to signal interactivity without jarring motion.
  • Do use {rounded.full} (9999px) on buttons and chips to create a visual language that clearly distinguishes interactive elements from static containers.
  • Do apply a 1px border at {colors.outline-variant} (#C4CDE0) to all cards and inputs to define edges without harsh lines, maintaining visual softness.

**Don't**

  • Don't use pure black (#000000) or pure white (#FFFFFF) as primary text or background—use {colors.on-surface} (#0A1F44) and {colors.surface} (#FAFAF7) to reduce eye strain and maintain brand warmth.
  • Don't apply shadows larger than 0 8px 24px rgba(0, 0, 0, 0.12) on standard cards; excessive shadow depth creates visual clutter and reduces perceived performance.
  • Don't mix rounded radii inconsistently—buttons should always use {rounded.full}, cards {rounded.xl}, inputs {rounded.DEFAULT} or {rounded.lg}—to maintain visual coherence.
  • Don't use secondary yellow (#FFD166) or tertiary blue (#1E40AF) on primary CTAs; these colors are reserved for supporting roles (badges, links, highlights) and will dilute brand recognition.
  • Don't set button text smaller than 14px (label-md) or larger than 16px (body-md)—this range ensures legibility on all devices without requiring zoom.
  • Don't apply focus rings or outlines without a 3px colored ring (e.g., rgba(230, 57, 70, 0.1) for primary red)—bare outlines are invisible on light backgrounds.
  • Don't use more than 2–3 font weights in a single view; stick to 400 (body), 600 (labels/headlines), and 700 (display) to avoid visual noise.