// design system · hướng a — terminal / automation

Design System — vominhhuy.com

Tài liệu tham chiếu trực quan cho website cá nhân của Võ Minh Huy. Mọi token, motif và component dưới đây được render bằng đúng CSS production trong css/design-system.css. Đọc trang này trước khi code để giữ nhất quán: tông tối/sang, duotone lime (dữ liệu/hệ thống) + ember (hành động/mệnh Hỏa), chữ Be Vietnam Pro + IBM Plex Mono.

01

Màu sắc

Nền than đen, 2 accent: lime cho dữ liệu, ember cho hành động.
// surfaces & text
Background
--bg
#0A0B0D
Panel / Card
--bg-1
#101216
Input / sunk
--bg-2
#16191E
Raised
--bg-3
#1D2128
Text
--text
#EEF0F3
Muted
--muted
#9AA1AB
Faint
--faint
#636A74
Lines
--line / --line-2
rgba(255··· .09 / .05)
// accent · lime (dữ liệu / hệ thống)
Lime
--acc
#C2F24D
Lime dim
--acc-dim
rgba(194,242,77,.12)
Lime line
--acc-line
rgba(194,242,77,.32)
// accent · ember (hành động / mệnh Hỏa)
Ember
--fire
#FF6A3D
Amber
--fire-2
#FFB13D
Fire gradient
--fire-grad
120deg amber→ember
Fire ink
--fire-ink
#1C0E05 (chữ trên nút)

Quy tắc: LIME = terminal, workflow, label mono, link, dấu ✓ — mọi thứ "dữ liệu/hệ thống". EMBER (gradient) = chỉ dùng cho nút hành động chính và ánh sáng nền ấm. Nền đen giữ nguyên. Ngũ hành: Mộc/xanh sinh Hỏa/đỏ.

02

Typography

Be Vietnam Pro (sans, hỗ trợ tiếng Việt) + IBM Plex Mono (label kỹ thuật).
Display / H1800 · clamp(40–68px)
letter-spacing −.03em
Tăng trưởng bằng Automation.
Heading / H2700 · 26–42px
letter-spacing −.02em
Cách biến marketing thành hệ thống
Subhead / H3600 · 18–21px
Marketing Automation
Body400 · 16–18px
line-height 1.6–1.78
color --text / --muted
Be Vietnam Pro là bộ chữ thiết kế riêng cho tiếng Việt — hình học hiện đại, dấu thanh chuẩn và sạch. Dùng cho mọi đoạn văn, mô tả và nội dung dài.
Mono / LabelIBM Plex Mono 500
12px · letter-spacing .12–.16em
uppercase · prefix //
// automation_status: active
Caption--faint · 12–13px
Ảnh: chân dung landscape 21:9 · thay sau

Import: family=Be+Vietnam+Pro:wght@300;400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600

03

Spacing & Radii

Bo góc và nhịp khoảng cách thống nhất.
TokenGiá trịDùng cho
radius · button9–11pxNút, input, chip nhỏ
radius · card12–20pxCard, panel, modal
radius · pill100pxBadge, tag, nút tròn
containermin(1180px, 100% − 48px)Bề rộng nội dung, căn giữa
section padding64–100px (dọc)Khoảng cách giữa các khối
card padding22–30pxĐệm trong card
grid gap1px (hairline) · 14–24pxLưới liền mạch / lưới rời
nav height64pxHeader sticky
hit target≥ 38–44pxNút bấm tối thiểu
// radii preview
9px
14px
20px
pill
04

Lưới nền & Glow

Hai motif nền đặc trưng tạo chiều sâu "kỹ thuật".
grid · 64px · --line-2

Lưới mờ phủ toàn trang, mask radial ở đỉnh. Chỉ trang trí — không cản nội dung.

radial glow · --fire-dim

Quầng sáng ember sau hero & khối CTA. Bán kính ~340–460px, đặt qua ::before.

05

Eyebrow / Label

Nhãn mono mở đầu mọi section — chữ ký của hệ thống.
// chuyên_môn 12 năm · automation error 404 Khóa học · 6 buổi

Eyebrow luôn IBM Plex Mono, uppercase, letter-spacing .12–.16em, thường prefix // và dùng snake_case tiếng Việt cho chất "code".

06

Terminal card

Motif chủ đạo: biến chuyên môn trừu tượng thành thứ "chạy được".
huy@growth ~ marketing-engine
$ ./run growth-audit
→ phân tích phễu... ok
▸ organic_traffic +312%
$

Dùng cho: hero (index), callout trong bài viết, trạng thái rỗng (404 / search). Thanh 3 chấm #2c3138, body mono, con trỏ lime nhấp nháy 1.1s.

07

Buttons

Primary luôn là gradient ember. Ghost cho hành động phụ.

Primary --fire-grad + chữ --fire-ink, hover nâng −2px + glow ember. Ghost viền --line, hover viền lime. Nút mono cho khu vực "kỹ thuật" (nav, terminal).

08

Badges / Pills

Trạng thái, nhãn loại, tag.
MỚI đang mở đăng ký −25% #automation BÁN CHẠY
09

Cards

Bề mặt --bg-1, viền hairline, hover nâng + viền lime.
05

Marketing Automation

Tự động hoá vận hành: email, nurturing, chấm điểm lead, báo cáo.

Website Development

Web tốc độ cao, chuẩn SEO, gắn liền mục tiêu chuyển đổi.

Pattern lưới: dùng gap:1px; background:--line cho lưới liền mạch (hairline divider), hoặc gap:14–24px cho card rời. Hover: translateY(-3px) + border-color:--acc-line.

10

Form & Input

Nền chìm --bg-2, focus viền lime.
11

Accordion

Curriculum & FAQ. Toggle max-height .3s.
01Nền tảng & định hướng website

Bấm để mở/đóng. Curriculum cho phép mở nhiều mục; FAQ chỉ mở một mục (single-open).

State qua class .open + max-height transition. Mũi tên xoay 180°, đổi sang lime khi mở.

12

Image placeholder

Chỗ chờ ảnh thật — class .ph với data-label.

Mọi ảnh chưa có dùng <div class="ph" data-label="mô tả"> — nền sọc chéo + nhãn mô tả nội dung cần đặt. Thay bằng <img> khi có asset thật.

13

Animation

Tinh tế, có mục đích — luôn tôn trọng prefers-reduced-motion.
Hiệu ứngThông sốDùng ở
reveal on scrollopacity 0→1 + translateY 16–18px · .6sMọi section (IntersectionObserver)
count-upcubic-out · ~1.4sSố liệu thống kê
hover lifttranslateY(-2/-3px) · .15–.2sNút, card
cursor blinksteps(1) · 1.1sTerminal
pulse (live dot)opacity · 1.6–2s loopChấm trạng thái
accordionmax-height · .3s easeCurriculum, FAQ
node runchấm lime chạy dọc · 3s loopWorkflow (index)

Không dùng scrollIntoView (gây lỗi) — dùng scrollTo({behavior:'smooth'}). Mọi animation trang trí dừng khi prefers-reduced-motion: reduce.

14

Tone & Voice

Cách viết chữ trên giao diện.

• Xưng "mình / Huy", gọi người đọc là "bạn" — gần gũi, chuyên gia nhưng không xa cách.

• Câu ngắn, chủ động, hướng kết quả: "biến việc thủ công thành hệ thống chạy 24/7".

• Label kỹ thuật dùng snake_case + prefix // để giữ chất automation.

• Tránh sáo rỗng, không nhồi số liệu vô nghĩa. Một câu đắt hơn ba câu thừa.

15

Do & Don't

Giữ hệ thống nhất quán.
✓ NÊN
  • Dùng gradient ember cho mọi nút hành động chính
  • Lime cho dữ liệu, terminal, label, link, dấu ✓
  • Eyebrow mono mở đầu mỗi section
  • Viền hairline --line, nền card --bg-1
  • Khoảng trắng rộng rãi, một điểm nhấn mỗi màn
✗ KHÔNG
  • Không trộn màu lạ ngoài lime/ember/charcoal
  • Không dùng ember cho text dài hay nền lớn
  • Không bo góc quá tròn (>20px) cho card
  • Không emoji trang trí (trừ khi có chủ đích)
  • Không gradient nền sặc sỡ, không đổ bóng nặng