Công cụ đổi mã màu

Cùng một màu có ba cách viết và mỗi cách phục vụ một việc khác nhau. HEX gọn nên dùng trong CSS và trong file thiết kế. RGB cho ba kênh tách rời nên tiện khi lập trình đồ hoạ hoặc chỉnh từng kênh. HSL mô tả màu theo cách con người nghĩ — sắc độ, độ bão hoà, độ sáng — nên khi cần một dải màu cùng tông chỉ khác độ đậm nhạt thì đổi mỗi con số độ sáng là xong, việc mà với HEX phải mò từng mã. Nhưng phần có ích nhất của công cụ này lại là hai dòng cuối. Nó tính ĐỘ SÁNG CẢM NHẬN theo công thức của chuẩn WCAG rồi trả lời thẳng: nền màu này nên đặt chữ đen hay chữ trắng, và độ tương phản đạt được là bao nhiêu. Con số tương phản phải từ 4,5:1 trở lên thì chữ cỡ thường mới đạt chuẩn WCAG mức AA; chữ lớn từ 18px đậm trở lên thì 3:1 là đủ. Công thức này không phải trung bình cộng ba kênh — nó nhân trọng số khác nhau cho từng kênh vì mắt người nhạy với màu xanh lá hơn màu đỏ và nhạy với màu đỏ hơn màu xanh dương. Đó là lý do nền vàng chói chang lại cần chữ đen, còn nền xanh dương đậm thì cần chữ trắng, dù cảm giác ban đầu có thể ngược lại.

Nhập liệu
Kết quả
HEX
#2563EB
RGBrgb(37, 99, 235)
HSLhsl(221, 83%, 53%)
Độ sáng cảm nhận15,3%
Nên đặt chữ màuChữ trắng
Độ tương phản đạt được5,17:1 — đạt chuẩn WCAG AA cho chữ thường
Công Cụ Tính
Kết quả này tính dựa trên đâu
Độ sáng cảm nhận L = 0,2126·R + 0,7152·G + 0,0722·B (sau khi tuyến tính hoá từng kênh)
  • WCAG 2.1 — tiêu chuẩn tương phản màu của W3C, mức AA yêu cầu 4,5:1 cho chữ cỡ thường

Công cụ liên quan

Đổi hệ cơ số Tính tỷ lệ khung hình Đổi dung lượng Tính độ mạnh mật khẩu Tính tỷ lệ
Về công cụ này — cách hoạt động, công thức & câu hỏi thường gặp

Cách sử dụng

  1. Gõ mã màu HEX vào ô — chấp nhận cả dạng ngắn ba ký tự như #F0A và dạng đầy đủ sáu ký tự.
  2. Đọc ba dòng đầu để lấy mã tương ứng ở các hệ HEX, RGB và HSL.
  3. Xem dòng "Nên đặt chữ màu" để chọn màu chữ đọc rõ nhất trên nền đó.
  4. Kiểm dòng độ tương phản: từ 4,5:1 trở lên mới đạt chuẩn cho chữ cỡ thường.
  5. Muốn tạo dải màu cùng tông thì giữ nguyên hai số đầu của HSL, chỉ đổi số độ sáng cuối.

Công thức

Độ sáng cảm nhận L = 0,2126·R + 0,7152·G + 0,0722·B (sau khi tuyến tính hoá từng kênh)

Câu hỏi thường gặp

HEX, RGB và HSL khác nhau thế nào?
Cả ba mô tả cùng một màu. HEX viết ba kênh đỏ, lục, lam dưới dạng thập lục phân, ví dụ #2563EB. RGB viết ba kênh đó bằng số thập phân từ 0 đến 255. HSL mô tả theo sắc độ từ 0 đến 360 độ, độ bão hoà và độ sáng theo phần trăm — cách này gần với cách con người nghĩ về màu nhất.
Độ tương phản bao nhiêu thì đạt chuẩn?
Chuẩn WCAG mức AA yêu cầu từ 4,5:1 trở lên cho chữ cỡ thường và 3:1 cho chữ lớn từ 18px đậm trở lên. Mức AAA khắt khe hơn, cần 7:1. Website thương mại nên nhắm ít nhất mức AA, vì dưới ngưỡng đó thì người lớn tuổi và người xem ngoài nắng sẽ không đọc được.
Ví dụ: màu #2563EB đặt chữ gì thì đọc rõ?
Màu xanh dương đậm này có độ sáng cảm nhận 15,3% nên phải đặt chữ TRẮNG, cho độ tương phản 5,17:1 — vượt ngưỡng 4,5:1 nên đạt chuẩn WCAG AA cho cả chữ cỡ thường. Nếu đặt chữ đen lên nền này thì tương phản chỉ khoảng 4:1, không đạt.
Vì sao độ sáng không phải trung bình cộng của ba kênh?
Vì mắt người không nhạy đều với ba màu. Công thức WCAG lấy 21,26% từ kênh đỏ, 71,52% từ kênh lục và chỉ 7,22% từ kênh lam, sau khi đã tuyến tính hoá từng kênh. Nghĩa là màu xanh lá thuần trông sáng hơn hẳn màu xanh dương thuần dù cả hai đều có một kênh đạt 255.
Mã màu ba ký tự như #F0A có khác gì mã sáu ký tự?
Không khác, chỉ là cách viết tắt. Mỗi ký tự được nhân đôi ra: #F0A chính là #FF00AA. Cách viết ngắn chỉ dùng được khi cả ba cặp đều có hai ký tự giống nhau, nên nó biểu diễn được 4.096 màu trong khi mã sáu ký tự biểu diễn đủ 16.777.216 màu.

Sao chép đoạn mã này vào website của bạn để thêm công cụ. Nó hiển thị liền mạch — không thương hiệu chèn ngang, chạy trên mọi trang.

px
✓ 100% Miễn phí✓ Không cần đăng ký✓ Nhanh & Chính xác✓ Dùng trên mọi thiết bị