Lập trình

OKLCH so với HSL

Cả hai định dạng đều mô tả màu bằng sắc độ (hue) và hai giá trị khác. Điểm khác biệt là OKLCH được xây dựng dựa trên cách mắt người nhìn màu, còn HSL thì không.

Trung cấp · 5 phút đọc · Cập nhật 1 tháng 11, 2026

OKLCH so với HSL

Vấn đề của độ sáng trong HSL

Đặt màu vàng và màu xanh dương cùng độ sáng HSL, màu vàng sẽ trông sáng hơn hẳn:

color: hsl(60 100% 50%);  /* bright yellow */
color: hsl(240 100% 50%); /* dark blue */

Trong OKLCH, độ sáng khớp với những gì bạn thực sự thấy hơn nhiều. Các màu có cùng giá trị sẽ trông sáng gần như nhau, nên bảng màu dễ cân bằng hơn.

So sánh trực tiếp

HSLOKLCH
Độ sángThay đổi theo sắc độKhớp gần với cảm nhận của con người
Dải màuChỉ sRGBBao gồm các không gian màu rộng hơn
Hỗ trợ trình duyệtPhổ biếnTất cả trình duyệt hiện đại
Dễ đọcQuen thuộcCần làm quen một chút

Khi nào nên dùng từng loại

  • Dùng OKLCH cho hệ thống thiết kế, các sắc thái được tạo tự động và màu rực rỡ trên màn hình hiện đại.
  • Dùng HSL cho những màu dùng nhanh một lần, hoặc khi bạn bắt buộc phải hỗ trợ các trình duyệt rất cũ.

Sẵn sàng chuyển đổi? Hãy chuyển một màu bằng công cụ chuyển HEX sang OKLCH, rồi làm theo hướng dẫn của chúng tôi về cách dùng OKLCH trong CSS.

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

OKLCH có tốt hơn HSL không?
Khi xây dựng bảng màu thì thường là có, vì độ sáng của nó nhất quán hơn. HSL vẫn ổn cho các trường hợp đơn giản.
Sự khác biệt giữa LCH và OKLCH là gì?
Cả hai đều mô tả màu theo cách tương tự, nhưng OKLCH dùng một mô hình mới hơn, giúp sắc độ ổn định hơn khi độ sáng thay đổi.

Đọc tiếp