Phối màu hài hòa: bổ túc, tương đồng, bộ ba và các kiểu khác
Phối màu hài hòa là chọn các tông màu cách nhau những góc cố định trên bánh xe màu: 180° với màu bổ túc, 30° với màu tương đồng, 120° với bộ ba. Hãy xoay tông màu trong OKLCH thay vì HSL, khi đó các màu sáng ngang nhau và không có tông nào vô tình nổi bật hẳn lên.
7 phút đọc
Phối màu hài hòa là gì
Phối màu hài hòa là một quy tắc chọn những màu hợp nhau. Bạn lấy một màu gốc, giữ nguyên độ sáng và độ rực của nó, rồi chỉ xoay tông màu theo những góc định sẵn trên bánh xe màu.
Các góc là phần dễ. Xoay trên bánh xe nào cũng quan trọng không kém, vì bánh xe HSL quen thuộc và bánh xe theo cảm nhận như OKLCH cho kết quả khác hẳn nhau với cùng một góc. Mọi ví dụ bên dưới đều bắt đầu từ #2a7fbf, một màu xanh dương trung bình.
| Định dạng | Giá trị |
|---|---|
| HEX | |
| HSL | |
| OKLCH |
Bổ túc, bổ túc chia tách, tương đồng, bộ ba, bộ bốn, hình vuông
Mỗi hàng giữ độ sáng OKLCH của màu gốc là 0,577 và chroma là 0,127. Chỉ tông màu xoay theo các góc đã ghi. Khi màu sau khi xoay nằm ngoài sRGB, chroma được hạ nhẹ cho vừa, nên vài màu hơi kém rực hơn. Đơn sắc là ngoại lệ: tông màu giữ nguyên, độ sáng thay đổi theo từng bước 0,12.
| Kiểu phối | Góc tông màu | Màu 2 | Màu 3 | Màu 4 | Màu 5 |
|---|---|---|---|---|---|
| Bổ túc | 0°, 180° | #ab6708 | |||
| Bổ túc chia tách | 0°, 150°, 210° | #b85a42 | #907800 | ||
| Tương đồng | 0°, −30°, +30° | #008aa7 | #6571c3 | ||
| Bộ ba | 0°, 120°, 240° | #b6566e | #678626 | ||
| Bộ bốn (hình chữ nhật) | 0°, 60°, 180°, 240° | #8c64b4 | #ab6708 | #678626 | |
| Hình vuông | 0°, 90°, 180°, 270° | #a75a96 | #ab6708 | #258f58 | |
| Đơn sắc | Cùng tông màu, L ±0,12, ±0,24 | #00396f | #005b98 | #53a4e7 | #7dcbff |
- Bổ túc: độ căng mạnh nhất. Chỉ dùng màu thứ hai cho điểm nhấn nhỏ, chẳng hạn nút kêu gọi hành động.
- Bổ túc chia tách: năng lượng như bổ túc nhưng dễ cân bằng hơn, vì điểm nhấn được chia cho hai màu nằm cạnh tông đối diện.
- Tương đồng: êm dịu và liền mạch. Hợp với hình minh họa và nền, yếu khi bạn cần một thành phần nổi bật.
- Bộ ba, bộ bốn và hình vuông: sinh động nhưng khó kiểm soát. Để một màu dẫn dắt, các màu còn lại chỉ chiếm phần nhỏ.
- Đơn sắc: một tông màu ở nhiều mức độ sáng. Lựa chọn an toàn nhất cho giao diện, vì độ tương phản vốn đến từ độ sáng.
Vì sao bánh xe màu HSL cho phối màu bị lệch
Phần lớn bánh xe màu trong công cụ thiết kế là HSL: chúng xoay tông màu và giữ nguyên các con số độ bão hòa và độ sáng HSL. Nhưng độ sáng HSL là một công thức, không phải thứ mắt bạn thấy. Xoay một màu vàng nghệ 180° trong HSL, bạn nhận được màu xanh dương đậm trông tối hơn màu vàng rất nhiều.
Xoay trong OKLCH giữ độ sáng cảm nhận bằng nhau. Dưới đây là #f4b400 được xoay theo cả hai cách, kèm độ sáng OKLCH của từng kết quả.
| Vai trò | Xoay trong HSL | OKLCH L | Xoay trong OKLCH | OKLCH L |
|---|---|---|---|---|
| Màu gốc | #f4b400 | 0.808 | #f4b400 | 0.808 |
| Bổ túc | #0040f4 | 0.489 | #97c0ff | 0.802 |
| Bộ ba, +120° | #00f4b4 | 0.857 | #00dcec | 0.817 |
| Bộ ba, +240° | #b400f4 | 0.586 | #f299fe | 0.808 |
Bộ màu HSL trải độ sáng từ 0,489 đến 0,857, nên màu xanh dương và tím chìm xuống còn màu xanh bạc hà thì chói lên. Bộ màu OKLCH nằm gọn trong khoảng 0,802 đến 0,817. Điều tương tự xảy ra với các màu gốc RGB thuần: #ff0000, #00ff00 và #0000ff là bộ ba HSL hoàn hảo, nhưng độ sáng OKLCH của chúng lần lượt là 0,628, 0,866 và 0,452.
Có một sự đánh đổi. Màu xanh dương sáng ngang màu vàng này không thể quá rực trên màn hình sRGB, nên màu bổ túc OKLCH #97c0ff có chroma 0,10 thay vì 0,166. Bạn phải chọn giữa độ sáng bằng nhau và độ rực bằng nhau; với vàng và xanh dương, không thể có cả hai.
Bánh xe RYB của họa sĩ và bánh xe RGB của màn hình
Bánh xe màu học ở lớp mỹ thuật là RYB: đỏ, vàng và xanh dương là màu gốc, giống như khi pha sơn. Trên đó, màu bổ túc của đỏ là xanh lá và của xanh dương là cam. Màn hình pha trộn ánh sáng, nên công cụ số dùng bánh xe RGB, nơi màu bổ túc của đỏ là xanh lơ (cyan) và của xanh dương là vàng.
Không cái nào sai, chúng trả lời những câu hỏi khác nhau. RYB theo truyền thống hội họa, RGB và OKLCH theo cách màn hình và mắt người hoạt động. Nếu công cụ thiết kế cho bạn màu xanh lơ ở chỗ bạn chờ màu xanh lá, nghĩa là nó đang dùng bánh xe RGB.
| Màu gốc | Bổ túc RYB | Bổ túc RGB (HSL) | Bổ túc OKLCH |
|---|---|---|---|
| #ff0000 | Xanh lá | #00ffff | #009cb2 |
| #0000ff | Cam | #ffff00 | #734f00 |
| #ffff00 | Tím | #0000ff | #f3f1ff |
Cột OKLCH cho thấy độ sáng bằng nhau tác động thế nào lên các màu cực đoan. Màu bổ túc của xanh dương thuần thành màu vàng đất tối có cùng độ sáng 0,45, còn màu bổ túc của vàng thuần thành màu tím oải hương gần như trắng ở mức 0,96.
Áp dụng quy tắc 60-30-10 cho một kiểu phối màu
Kiểu phối màu cho bạn biết dùng những màu nào, chứ không nói mỗi màu dùng bao nhiêu. Quy tắc 60-30-10 lấp chỗ trống đó: khoảng 60% diện tích dành cho màu chủ đạo, 30% cho màu phụ và 10% cho màu nhấn. Chia đều khiến cả một bộ phối màu tốt cũng trông rối.
Trong giao diện, phần 60% thường là màu gần trung tính pha chút tông màu gốc, phần 30% là màu gốc và phần 10% là màu nhấn bổ túc. Đây là bộ màu dựng từ #2a7fbf, sẵn sàng để sao chép.
| Vai trò | Tỷ lệ | Màu | OKLCH | Dùng cho |
|---|---|---|---|---|
| Chủ đạo | 60% | #eff6fd | L 0.97, C 0.012 | Nền trang, thẻ |
| Phụ | 30% | #2a7fbf | L 0.577, C 0.127 | Header, liên kết, trạng thái đã chọn |
| Nhấn | 10% | #ab6708 | L 0.577, C 0.127 | Nút hành động chính, điểm nổi bật |
| Chữ | n/a | #15232f | L 0.25, C 0.03 | Chữ nội dung trên màu chủ đạo |
CSS
:root {
--surface: #eff6fd;
--primary: #2a7fbf;
--accent: #ab6708;
--text: #15232f;
}Cách kiểm tra độ tương phản của một kiểu phối màu
Chênh lệch tông màu không làm chữ dễ đọc, chênh lệch độ sáng mới làm được. Cặp bổ túc ở trên cách xa nhau về tông màu hết mức có thể, vậy mà #2a7fbf trên #ab6708 chỉ có tỷ lệ WCAG 1,05:1 và APCA Lc bằng 0: gần như vô hình nếu dùng làm chữ.
Độ sáng bằng nhau cũng có mặt lợi. Chữ trắng trên mọi màu của các bộ phối OKLCH ở trên đạt từ 4,04:1 đến 4,62:1. Với phiên bản HSL của cùng các bộ phối đó, con số dao động từ 2,15:1 đến 8,90:1. Vì thế một cách sửa áp dụng được cho cả bộ OKLCH: hạ độ sáng xuống 0,52, chữ trắng sẽ vượt 4,5:1 trên mọi tông màu ở chroma 0,127, từ 5,00:1 đến 5,91:1.
| Chữ | Nền | Tỷ lệ WCAG | APCA Lc | Kết luận |
|---|---|---|---|---|
| #2a7fbf | #ab6708 | 1.05:1 | 0 | Không đọc được, cùng độ sáng |
| #ffffff | #2a7fbf | 4.30:1 | -74.8 | Trượt AA với chữ nội dung |
| #ffffff | #106ead | 5.45:1 | -82.0 | Đạt, màu gốc ở L 0,52 |
| #ffffff | #995600 | 5.70:1 | -83.3 | Đạt, màu nhấn ở L 0,52 |
| #ab6708 | #eff6fd | 4.12:1 | 64.9 | Chỉ cho chữ lớn và biểu tượng |
| #5c2d00 | #d8eafb | 9.42:1 | 82.5 | Cặp bổ túc tách thành một tối, một sáng |
Muốn dùng hai màu trong bộ phối làm chữ và nền, hãy kéo chúng xa nhau về độ sáng: giữ nguyên tông màu, đẩy một màu về khoảng 0,35 và màu kia về khoảng 0,93. Sau đó kiểm tra cặp màu thật bằng công cụ kiểm tra độ tương phản, và chạy bảng màu qua trình mô phỏng mù màu nếu màu nhấn mang ý nghĩa.
Hỏi đáp
Có những kiểu phối màu hài hòa chính nào?
Các kiểu phổ biến là bổ túc (tông màu cách nhau 180°), bổ túc chia tách (150° và 210°), tương đồng (30° về mỗi phía), bộ ba (ba tông màu cách nhau 120°), bộ bốn hay hình chữ nhật (0°, 60°, 180°, 240°), hình vuông (bốn tông màu cách nhau 90°) và đơn sắc (một tông màu ở các mức độ sáng khác nhau).
Màu bổ túc của màu đỏ là gì?
Tùy vào bánh xe màu. Trên bánh xe RYB của họa sĩ, màu bổ túc của đỏ là xanh lá. Trên bánh xe RGB mà màn hình và công cụ thiết kế dùng, đó là xanh lơ, #00ffff với đỏ thuần, còn trong OKLCH với độ sáng bằng nhau, đó là màu xanh mòng két như #009cb2.
Vì sao các màu bổ túc của tôi trông không cân đối?
Phần lớn công cụ xoay tông màu trong HSL, mà độ sáng HSL không khớp với cảm nhận của mắt. Màu bổ túc HSL của màu vàng nghệ #f4b400 là #0040f4, với độ sáng OKLCH 0,489 so với 0,808 của màu vàng. Xoay tông màu trong OKLCH giữ hai màu sáng ngang nhau.
Có thể dùng màu bổ túc cho chữ và nền không?
Chỉ khi độ sáng của chúng chênh nhau nhiều. Hai màu bổ túc có cùng độ sáng, như #2a7fbf và #ab6708, chỉ đạt tỷ lệ tương phản 1,05:1. Hãy làm một màu tối và một màu sáng, ví dụ #5c2d00 trên #d8eafb đạt 9,42:1.
Quy tắc màu 60-30-10 là gì?
Quy tắc 60-30-10 chia thiết kế thành khoảng 60% màu chủ đạo, 30% màu phụ và 10% màu nhấn. Khi dùng với một kiểu phối màu, màu chủ đạo thường là màu trung tính pha chút sắc, màu phụ là màu gốc và màu nhấn là màu bổ túc hoặc màu trong bộ ba.