color-scheme

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2022.

Thuộc tính color-scheme CSS cho phép một phần tử chỉ ra các bảng màu mà nó có thể hiển thị thoải mái. Tác nhân người dùng thay đổi các khía cạnh sau của giao diện người dùng để khớp với bảng màu được dùng:

  • Màu bề mặt canvas.
  • Màu mặc định của thanh cuộn và các UI tương tác khác.
  • Màu mặc định của điều khiển biểu mẫu.
  • Màu mặc định của các UI do trình duyệt cung cấp khác, chẳng hạn như gạch chân "kiểm tra chính tả".

Các tác giả thành phần phải sử dụng tính năng phương tiện prefers-color-scheme để hỗ trợ các bảng màu trên các phần tử còn lại.

Các lựa chọn phổ biến cho bảng màu hệ điều hành là "sáng" và "tối", hoặc "chế độ ban ngày" và "chế độ ban đêm". Khi người dùng chọn một trong các bảng màu này, hệ điều hành điều chỉnh giao diện người dùng. Điều này bao gồm điều khiển biểu mẫu, thanh cuộn, và các giá trị được dùng của màu hệ thống CSS.

Try it

color-scheme: normal;
color-scheme: dark;
color-scheme: light;
<section class="default-example container" id="default-example">
  <textarea id="example-element">Text Area</textarea>
</section>
#example-element {
  width: 80%;
  height: 50%;
}

Cú pháp

css
color-scheme: normal;
color-scheme: light;
color-scheme: dark;
color-scheme: light dark;
color-scheme: only light;

/* Giá trị toàn cục */
color-scheme: inherit;
color-scheme: initial;
color-scheme: revert;
color-scheme: revert-layer;
color-scheme: unset;

Giá trị của thuộc tính color-scheme phải là một trong các từ khóa sau.

Giá trị

normal

Chỉ ra rằng phần tử có thể được hiển thị bằng cài đặt bảng màu của trang. Nếu trang không có bảng màu nào được đặt, phần tử được hiển thị bằng cài đặt màu mặc định của trang.

light

Chỉ ra rằng phần tử có thể được hiển thị bằng bảng màu sáng của hệ điều hành.

dark

Chỉ ra rằng phần tử có thể được hiển thị bằng bảng màu tối của hệ điều hành.

only

Ngăn tác nhân người dùng ghi đè bảng màu cho phần tử.

Có thể dùng để tắt các ghi đè màu do Chủ đề tối tự động của Chrome gây ra, bằng cách áp dụng color-scheme: only light; trên một phần tử cụ thể hoặc :root.

Định nghĩa hình thức

Initial valuenormal
Applies toall elements and text
Inheritedyes
Computed valueas specified
Animation typediscrete

Cú pháp hình thức

color-scheme = 
normal |
[ light | dark | <custom-ident> ]+ && only?

Ví dụ

Khai báo sở thích bảng màu

Để toàn bộ trang chọn tham gia sở thích bảng màu của người dùng, hãy khai báo color-scheme trên phần tử :root.

css
:root {
  color-scheme: light dark;
}

Để chọn tham gia cho các phần tử cụ thể theo sở thích bảng màu của người dùng, hãy khai báo color-scheme trên các phần tử đó.

css
header {
  color-scheme: only light;
}
main {
  color-scheme: light dark;
}
footer {
  color-scheme: only dark;
}

Cùng với CSS trên, hãy bao gồm thẻ HTML <meta> <meta name="color-scheme"> trong <head>, trước bất kỳ thông tin CSS nào, để thông báo cho tác nhân người dùng về bảng màu ưa thích, giúp tránh hiện tượng nhấp nháy màn hình không mong muốn khi tải trang.

Tạo kiểu dựa trên bảng màu

Để tạo kiểu cho các phần tử dựa trên sở thích bảng màu, hãy dùng truy vấn phương tiện prefers-color-scheme. Ví dụ dưới đây chọn tham gia cho toàn bộ trang sử dụng cả hai bảng màu sáng và tối của hệ điều hành thông qua thuộc tính color-scheme, sau đó dùng prefers-color-scheme để chỉ định màu nền trước và màu nền mong muốn cho các phần tử riêng lẻ trong các bảng màu đó.

css
:root {
  color-scheme: light dark;
}

@media (prefers-color-scheme: light) {
  .element {
    color: black;
    background-color: white;
  }
}

@media (prefers-color-scheme: dark) {
  .element {
    color: white;
    background-color: black;
  }
}

Ngoài ra, dùng hàm light-dark() <color> để đặt màu nền trước và màu nền cho các bảng màu khác nhau bằng cấu trúc mã gọn hơn:

css
:root {
  color-scheme: light dark;
}

.element {
  color: light-dark(black, white);
  background-color: light-dark(white, black);
}

Đặc tả

Specification
CSS Color Adjustment Module Level 1
# color-scheme-prop

Tương thích trình duyệt

Xem thêm