Menu
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Đang tải...

Color Theory và Accessibility

UI Design and Design Handoff Bài 2/60

Mở đầu — vì sao bài này quan trọng

Hãy tưởng tượng bạn vừa thiết kế xong một màn hình đăng nhập cho một ứng dụng ngân hàng. Bố cục gọn gàng, chữ đẹp, nút bấm rõ ràng. Bạn tự hào gửi cho khách hàng. Nhưng vài ngày sau, một người dùng lớn tuổi phàn nàn rằng họ "không đọc được dòng chữ xám nhạt trên nền trắng", còn một người dùng khác bị mù màu đỏ-xanh lá thì không phân biệt được nút "Xác nhận" (màu xanh lá) với nút "Hủy" (màu đỏ) — vì với họ, cả hai đều là một sắc nâu xám giống nhau.

Đây chính là lý do bài học này tồn tại. Màu sắc trong UI không phải là chuyện thẩm mỹ cá nhân hay "màu nào đẹp thì dùng". Màu sắc là một công cụ giao tiếp có sức mạnh khổng lồ: nó truyền tải cảm xúc, dẫn dắt hành vi, và — quan trọng không kém — quyết định liệu sản phẩm của bạn có dùng được cho tất cả mọi người hay không. Ở Việt Nam, ước tính có khoảng 8% nam giới bị mù màu ở một mức độ nào đó. Nếu app của bạn có một triệu người dùng nam, thì tám mươi nghìn người trong số đó nhìn màu khác với bạn.

Trong bài này, chúng ta sẽ đi qua hai trụ cột: tâm lý học màu sắc (color psychology) — hiểu vì sao ngân hàng dùng xanh dương, ứng dụng tài chính dùng xanh lá — và accessibility (khả năng tiếp cận) — đảm bảo màu bạn chọn thật sự đọc được, phân biệt được, dùng được. Đây là nền tảng. Các bài sau sẽ đi sâu vào HSL, contrast ratio kỹ thuật và hệ thống màu trong Figma, nhưng nếu bạn không nắm vững tư duy nền ở đây, mọi thứ phía sau sẽ chỉ là thao tác máy móc.

Khái niệm cốt lõi

Color Psychology — Màu sắc nói gì với người dùng?

Mỗi màu mang theo một tập hợp liên tưởng văn hóa và cảm xúc. Người dùng phản ứng với màu trước cả khi họ kịp đọc chữ. Dưới đây là những màu chủ đạo trong thiết kế sản phẩm số:

Xanh dương (Blue) — Tin cậy, chuyên nghiệp, ổn định. Đây là màu được các ngân hàng, công ty công nghệ và sản phẩm doanh nghiệp yêu thích nhất. Facebook, Twitter (thời kỳ đầu), PayPal, LinkedIn, và ở Việt Nam là Vietcombank, VNPay đều dùng xanh dương làm màu thương hiệu. Lý do tâm lý: xanh dương gợi cảm giác bầu trời, biển cả — sự bền vững, đáng tin, không đe dọa. Khi bạn giao tiền cho một app, bạn muốn thấy sự trấn an, và xanh dương làm rất tốt việc đó.

Xanh lá (Green) — Tăng trưởng, thành công, an toàn, sinh thái. Xanh lá gắn với tiền bạc, sự phát triển và những gì tích cực. Trong tài chính, xanh lá thường biểu thị "lãi", "giao dịch thành công", "số dư tăng". Momo tuy dùng hồng làm thương hiệu nhưng vẫn dùng xanh lá cho trạng thái "thành công". Các thương hiệu về môi trường, thực phẩm sạch, sức khỏe cũng chuộng xanh lá. Trong UI, xanh lá gần như là màu mặc định cho thông báo "thành công" (success).

Đỏ (Red) — Khẩn cấp, lỗi, cảnh báo, đam mê. Đỏ là màu mạnh nhất, kéo sự chú ý ngay lập tức. Nó dùng để báo lỗi (error), cảnh báo hành động nguy hiểm (xóa tài khoản, hủy đơn), hoặc tạo cảm giác cấp bách (giảm giá còn 2 tiếng, "chỉ còn 3 phòng"). Shopee dùng cam-đỏ để kích thích mua sắm nóng vội. Nhưng đỏ cũng gợi đam mê, nhiệt huyết — nên nó xuất hiện nhiều trong thương hiệu đồ ăn, giải trí, thể thao.

Cam (Orange) — Nhiệt tình, thân thiện, kích thích hành động. Cam là màu của sự vui vẻ, năng lượng và giá cả phải chăng. Nó thường được dùng cho nút call-to-action (CTA) vì nổi bật mà không "gắt" như đỏ. Shopee, Lazada đều khai thác sắc cam-đỏ.

Tím (Purple) — Sáng tạo, cao cấp, độc đáo. Tím gợi sự xa xỉ, trí tưởng tượng, đẳng cấp. Các sản phẩm sáng tạo hoặc muốn tạo cảm giác premium (như Figma với sắc tím-hồng đa màu) thường dùng tím.

Đen, trắng, xám (Neutrals) — Nền tảng của mọi giao diện. Đừng quên rằng phần lớn diện tích giao diện là màu trung tính. Đen gợi sang trọng và quyền lực (Apple, các thương hiệu thời trang cao cấp). Trắng gợi sạch sẽ, tối giản. Xám là "keo dán" giữ mọi thứ cân bằng.

Một lưu ý quan trọng: liên tưởng màu mang tính văn hóa. Ở phương Tây, đỏ là nguy hiểm; ở Việt Nam và Trung Quốc, đỏ còn là màu của may mắn, thịnh vượng, lễ hội (bao lì xì, đám cưới). Trắng ở phương Tây là tinh khiết, cưới hỏi; ở văn hóa Việt truyền thống, trắng gắn với tang lễ. Khi thiết kế cho người dùng Việt, bạn phải cân nhắc lớp nghĩa này.

Accessibility — Màu phải dùng được cho mọi người

Chọn màu đẹp là một chuyện. Đảm bảo màu đó ai cũng nhìn và dùng được lại là một trách nhiệm nghề nghiệp. Có ba khái niệm nền bạn cần nắm:

1. Contrast ratio (tỷ lệ tương phản). Đây là mức chênh lệch độ sáng giữa màu chữ (foreground) và màu nền (background), biểu thị bằng tỷ lệ từ 1:1 (không phân biệt được) đến 21:1 (đen tuyền trên trắng tinh). Tiêu chuẩn quốc tế WCAG (Web Content Accessibility Guidelines) quy định:

  • Chữ thường (dưới 18px hoặc 14px in đậm): cần tối thiểu 4.5:1 để đạt mức AA.
  • Chữ lớn (từ 18px thường / 14px đậm trở lên): cần tối thiểu 3:1 mức AA.
  • Mức AAA (nghiêm ngặt hơn) yêu cầu 7:1 cho chữ thường.
  • Thành phần UI như đường viền input, icon: cần tối thiểu 3:1 so với nền xung quanh.
Ví dụ kinh điển của lỗi: chữ xám nhạt #CCCCCC trên nền trắng #FFFFFF chỉ đạt tỷ lệ khoảng 1.6:1 — trượt xa tiêu chuẩn, gần như không đọc được với người thị lực kém.

2. Color blindness (mù màu). Khoảng 8% nam giới và 0.5% nữ giới bị rối loạn phân biệt màu. Phổ biến nhất là mù màu đỏ-xanh lá (deuteranopia và protanopia). Điều này có nghĩa: nếu bạn dùng chỉ riêng màu để phân biệt trạng thái — ví dụ chấm đỏ là "lỗi", chấm xanh lá là "ổn" — thì một phần người dùng sẽ không phân biệt được.

3. Không bao giờ dùng màu làm phương tiện truyền tin duy nhất. Đây là nguyên tắc vàng: mọi thông tin truyền bằng màu phải có một tín hiệu song song — biểu tượng (icon), chữ (label), hình dạng (shape), hoặc gạch chân. Nút "Xác nhận" xanh lá nên kèm chữ "Xác nhận" và icon dấu tích; nút "Xóa" đỏ nên kèm icon thùng rác. Biểu đồ không nên chỉ phân biệt các đường bằng màu mà nên thêm nét đứt/nét liền hoặc nhãn.

Tình huống thực tế

Ví dụ 1: App ngân hàng và cái bẫy "xanh lá / đỏ" trong giao dịch

Một startup fintech tại TP.HCM ra mắt app quản lý chi tiêu. Màn hình lịch sử giao dịch dùng quy ước quen thuộc: số tiền thu vào màu xanh lá, chi ra màu đỏ, và không có dấu cộng/trừ đi kèm — chỉ dựa vào màu. Trong tuần đầu, đội hỗ trợ nhận hàng loạt phàn nàn: một số người dùng nam không phân biệt được đâu là tiền vào, đâu là tiền ra, dẫn đến hiểu nhầm số dư.

Diễn giải: Nhóm thiết kế đã vi phạm nguyên tắc "màu không được là tín hiệu duy nhất". Với người mù màu đỏ-xanh lá, hai con số nhìn hệt nhau. Giải pháp họ áp dụng: thêm dấu + trước tiền vào và trước tiền ra, đồng thời tăng contrast của màu chữ đạt trên 4.5:1. Chỉ hai thay đổi nhỏ mà số phàn nàn về khoản này giảm gần như về không.

Bài học rút ra: Trong tài chính, độ chính xác quan trọng hơn thẩm mỹ. Luôn ghép màu với ký hiệu hoặc chữ khi truyền thông tin then chốt.

Ví dụ 2: Nút CTA "đẹp mà không ai bấm" của một trang thương mại điện tử

Một shop thời trang online chọn nút "Thêm vào giỏ" màu hồng pastel nhạt (#F8C8D8) với chữ trắng, vì "hợp tông thương hiệu nữ tính". Nhìn trên màn hình thiết kế của designer thì rất xinh. Nhưng khi đo contrast, chữ trắng trên nền hồng pastel chỉ đạt khoảng 1.9:1 — dưới cả tiêu chuẩn tối thiểu. Trên điện thoại ngoài nắng, nút gần như "chìm" và tỷ lệ nhấn (click-through) thấp bất thường.

Diễn giải: Vấn đề không phải màu hồng, mà là độ tương phản giữa chữ và nền. Đội thiết kế giữ tinh thần hồng nhưng đổi sang hồng đậm hơn (#D6336C) với chữ trắng, đạt contrast 4.8:1. Nút bật hẳn lên, tỷ lệ bấm tăng rõ rệt trong thử nghiệm A/B.

Bài học rút ra: Màu thương hiệu và accessibility không đối lập nhau. Bạn hầu như luôn tìm được một sắc độ đậm/nhạt phù hợp vừa giữ được cảm giác thương hiệu, vừa đạt tương phản.

Ví dụ 3: Bảng màu trạng thái không đồng nhất trong một dashboard nội bộ

Một công ty logistics ở Đông Nam Á xây dashboard theo dõi đơn hàng. Ban đầu mỗi designer tự chọn màu cho trạng thái: người dùng cam cho "đang xử lý", người khác dùng vàng, người thứ ba dùng đỏ cho "trễ" nhưng lại dùng đỏ khác cho "hủy". Người dùng nội bộ liên tục nhầm lẫn trạng thái đơn.

Diễn giải: Vấn đề là thiếu một hệ ngữ nghĩa màu (semantic color) nhất quán. Họ chuẩn hóa lại: xanh lá = hoàn thành, xanh dương = đang giao, cam = chờ xử lý, đỏ = có vấn đề — và mỗi trạng thái đều kèm nhãn chữ + icon. Nhờ đó nhân viên đọc bảng nhanh hơn và giảm sai sót nhập liệu.

Bài học rút ra: Màu trong UI cần được định nghĩa theo ý nghĩa (semantic), không theo cảm hứng từng màn hình. Một màu — một nghĩa, dùng nhất quán toàn sản phẩm.

Hướng dẫn từng bước

Đây là quy trình chọn và kiểm tra màu cho một giao diện, áp dụng được ngay:

  • Xác định tính cách thương hiệu và cảm xúc mong muốn. Sản phẩm cần gợi tin cậy (xanh dương), năng lượng (cam/đỏ), hay cao cấp (đen/tím)? Viết ra 2-3 tính từ trước khi mở công cụ màu.
  • Chọn một màu chủ đạo (primary) và một màu nhấn (accent). Màu chủ đạo phủ phần lớn thương hiệu; màu nhấn dành cho các nút hành động quan trọng để chúng nổi bật.
  • Định nghĩa các màu ngữ nghĩa (semantic colors). Cố định bốn màu chức năng: success (xanh lá), error (đỏ), warning (cam/vàng), info (xanh dương). Đây là những màu người dùng sẽ gặp đi gặp lại.
  • Xây dải màu trung tính (neutrals). Chọn một dải xám từ gần trắng đến gần đen (thường 6-10 bậc) cho chữ, nền, đường viền. Đây là "xương sống" của giao diện.
  • Kiểm tra contrast cho mọi cặp chữ/nền. Dùng công cụ như WebAIM Contrast Checker, Stark (plugin Figma), hoặc bảng contrast tích hợp trong Figma. Đảm bảo chữ thường đạt ≥ 4.5:1, chữ lớn ≥ 3:1.
  • Mô phỏng mù màu. Dùng plugin như Stark hoặc Color Blind Simulator xem giao diện dưới góc nhìn deuteranopia/protanopia. Kiểm tra xem các trạng thái có còn phân biệt được không.
  • Thêm tín hiệu song song. Với mọi chỗ dùng màu để truyền tin, thêm icon, chữ hoặc hình dạng đi kèm.
  • Kiểm thử ngoài thực tế. Xem giao diện trên điện thoại thật, ngoài trời, ở độ sáng thấp. Màu trông khác hẳn so với màn hình máy tính trong phòng.

Lỗi thường gặp & mẹo

Lỗi 1 — Dùng chữ xám quá nhạt cho placeholder và caption. Rất nhiều designer đặt chữ phụ màu #AAAAAA hoặc nhạt hơn để trông "tinh tế", nhưng nó thường trượt tiêu chuẩn contrast. Mẹo: đừng xuống dưới #767676 trên nền trắng nếu muốn đạt 4.5:1.

Lỗi 2 — Chỉ dùng màu để phân biệt trạng thái. Đã nói ở trên nhưng nhắc lại vì nó là lỗi phổ biến nhất. Mẹo: luôn hỏi "nếu in trắng đen, người dùng còn phân biệt được không?".

Lỗi 3 — Đánh giá màu qua màn hình đắt tiền, độ sáng cao. Màn hình của designer thường đẹp và sáng hơn thiết bị người dùng phổ thông. Mẹo: luôn kiểm tra trên điện thoại tầm trung và ngoài nắng.

Lỗi 4 — Quên trạng thái hover/disabled/focus. Một màu nút có thể đạt contrast ở trạng thái thường nhưng trượt khi disabled (thường bị làm mờ đi). Mẹo: kiểm tra contrast cho mọi trạng thái, không chỉ trạng thái mặc định.

Lỗi 5 — Lạm dụng quá nhiều màu. Giao diện cầu vồng gây rối và mệt mắt. Mẹo: giữ bảng màu tinh gọn — một primary, một accent, bốn semantic, một dải neutral là đủ cho hầu hết sản phẩm.

Mẹo vàng: Xây giao diện bằng thang xám trước, chỉ thêm màu khi cần dẫn dắt sự chú ý. Nếu giao diện đã rõ ràng và có thứ bậc tốt khi chỉ dùng xám, thì màu sẽ càng phát huy sức mạnh khi được thêm vào đúng chỗ.

Bài tập thực hành

  • Kiểm tra một app bạn đang dùng. Chọn một ứng dụng Việt Nam bất kỳ (Momo, ZaloPay, Shopee...). Xác định màu primary, accent, và bốn màu semantic của nó. Nó gợi cảm xúc gì? Có nhất quán không?
  • Đo contrast. Lấy ba cặp chữ/nền trong một giao diện (của bạn hoặc app khác), dùng WebAIM Contrast Checker đo tỷ lệ. Cặp nào trượt AA? Đề xuất màu thay thế đạt chuẩn nhưng giữ được tinh thần thiết kế.
  • Thử thách mù màu. Chụp màn hình một giao diện có dùng màu đỏ/xanh lá để phân biệt trạng thái. Dùng plugin mô phỏng deuteranopia. Nếu không còn phân biệt được, hãy thêm icon hoặc chữ để khắc phục.
  • Xây bảng màu mini. Cho một app đặt lịch khám sức khỏe, định nghĩa: 1 primary, 1 accent, 4 semantic, dải neutral 6 bậc. Ghi rõ lý do tâm lý cho màu primary và kiểm tra contrast chữ chính trên nền chính.

Tóm tắt

Màu sắc trong UI là công cụ giao tiếp hai mặt: tâm lýkhả năng tiếp cận. Về tâm lý, mỗi màu mang liên tưởng riêng — xanh dương gợi tin cậy, xanh lá gợi tăng trưởng và thành công, đỏ gợi khẩn cấp và cảnh báo, cam gợi năng lượng, tím gợi cao cấp — và những liên tưởng này chịu ảnh hưởng của văn hóa, nên khi thiết kế cho người Việt bạn phải cân nhắc bối cảnh địa phương. Về accessibility, ba nguyên tắc cốt lõi cần khắc cốt ghi tâm: đảm bảo contrast ratio đạt chuẩn WCAG (4.5:1 cho chữ thường, 3:1 cho chữ lớn và thành phần UI); tính đến mù màu vì 8% nam giới nhìn màu khác bạn; và không bao giờ dùng màu làm tín hiệu duy nhất — luôn ghép với icon, chữ hoặc hình dạng. Một designer giỏi không chỉ chọn màu đẹp, mà chọn màu đúng, dùng được, và bao trùm mọi người dùng. Đó chính là ranh giới giữa một giao diện "nhìn ổn" và một sản phẩm thực sự chuyên nghiệp.