icons
Khả dụng hạn chế
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Member manifest icons được dùng để chỉ định một hoặc nhiều tệp hình ảnh xác định các biểu tượng đại diện cho ứng dụng web của bạn.
Cú pháp
/* Một biểu tượng với thuộc tính tối thiểu bắt buộc */
"icons": [
{
"src": "icon/basic-icon.png"
}
]
/* Một biểu tượng với nhiều mục đích */
"icons": [
{
"src": "icon/basic-icon.png",
"purpose": "monochrome maskable"
}
]
/* Hai biểu tượng với các thuộc tính khác nhau */
"icons": [
{
"src": "icon/low-res.png",
"sizes": "48x48"
},
{
"src": "maskable_icon.png",
"sizes": "48x48",
"type": "image/png"
}
]
Giá trị
icons-
Một mảng các đối tượng. Mỗi đối tượng đại diện cho một biểu tượng sẽ được dùng trong một ngữ cảnh cụ thể. Ví dụ, bạn có thể thêm biểu tượng để đại diện cho ứng dụng web của mình trên các thiết bị có kích thước màn hình khác nhau, để tích hợp với các hệ điều hành khác nhau, cho màn hình chào, hoặc cho thông báo ứng dụng.
Mỗi đối tượng biểu tượng có thể có một hoặc nhiều thuộc tính. Trong số đó, chỉ
srclà bắt buộc. Các thuộc tính có thể có gồm:src-
Một chuỗi chỉ định đường dẫn tới tệp ảnh biểu tượng. Nếu
srclà tương đối, đường dẫn sẽ được phân giải tương đối với URL của tệp manifest. Ví dụ, URL tương đốiimages/icon-192x192.pngcho tệp manifest nằm tạihttps://example.com/manifest.jsonsẽ được phân giải thànhhttps://example.com/images/icon-192x192.png. sizesOptional-
Một chuỗi chỉ định một hoặc nhiều kích thước mà tệp biểu tượng có thể được dùng. Mỗi kích thước được chỉ định dưới dạng
<chiều rộng tính bằng pixel>x<chiều cao tính bằng pixel>. Nếu chỉ định nhiều kích thước, chúng được ngăn cách bằng khoảng trắng; ví dụ,48x48 96x96. Khi có nhiều biểu tượng, trình duyệt có thể chọn biểu tượng phù hợp nhất cho một ngữ cảnh hiển thị cụ thể. Với các định dạng raster như PNG, nên chỉ định chính xác các kích thước có sẵn. Với các định dạng vector như SVG, bạn có thể dùnganyđể cho biết khả năng co giãn. Nếu không chỉ địnhsizes, việc chọn và hiển thị biểu tượng có thể khác nhau tùy theo cách triển khai của trình duyệt.Lưu ý rằng định dạng của
sizestương tự thuộc tínhsizescủa phần tử HTML<link>. typeOptional-
Một chuỗi chỉ định MIME type của biểu tượng. Giá trị nên ở dạng
image/<subtype>, trong đó<subtype>là một định dạng ảnh cụ thể; ví dụ,image/pngcho biết ảnh PNG. Nếu bỏ qua, trình duyệt thường suy ra kiểu ảnh từ phần mở rộng tệp. purposeOptional-
Một chuỗi từ khóa phân biệt chữ hoa chữ thường, chỉ định một hoặc nhiều ngữ cảnh mà biểu tượng có thể được trình duyệt hoặc hệ điều hành dùng. Giá trị có thể là một từ khóa duy nhất hoặc nhiều từ khóa phân tách bằng dấu cách. Nếu bỏ qua, trình duyệt có thể dùng biểu tượng cho bất kỳ mục đích nào.
Trình duyệt dùng các giá trị này như gợi ý để xác định biểu tượng được hiển thị ở đâu và như thế nào. Ví dụ, biểu tượng
monochromecó thể được dùng làm huy hiệu hoặc biểu tượng được ghim với dạng tô đặc, khác biệt trực quan so với biểu tượng khởi chạy đầy đủ màu. Với nhiều từ khóa, chẳng hạnmonochrome maskable, trình duyệt có thể dùng biểu tượng cho bất kỳ mục đích nào trong số đó. Nếu một mục đích không nhận diện được được đưa vào cùng với các giá trị hợp lệ (ví dụ,monochrome fizzbuzz), biểu tượng vẫn có thể được dùng cho các mục đích hợp lệ. Tuy nhiên, nếu chỉ chỉ định các mục đích không nhận diện được (ví dụ,fizzbuzz), thì nó sẽ bị bỏ qua.Các giá trị hợp lệ gồm:
monochrome-
Cho biết biểu tượng được thiết kế để dùng như một biểu tượng đơn sắc với màu tô đặc. Với giá trị này, trình duyệt bỏ qua thông tin màu trong biểu tượng và chỉ dùng kênh alpha như một mặt nạ phủ lên bất kỳ màu tô đặc nào.
maskable-
Cho biết biểu tượng được thiết kế với mặt nạ biểu tượng và safe zone trong đầu, sao cho bất kỳ phần nào của ảnh nằm ngoài safe zone đều có thể bị bỏ qua và che đi.
any-
Cho biết biểu tượng có thể được dùng trong bất kỳ ngữ cảnh nào. Đây là giá trị mặc định.
Mô tả
Biểu tượng giúp nhận diện duy nhất ứng dụng web của bạn trong các ngữ cảnh khác nhau, chẳng hạn trong bộ chuyển tác vụ của hệ điều hành, cài đặt hệ thống, màn hình chính, danh sách ứng dụng, và các nơi khác nơi biểu tượng ứng dụng được hiển thị.
Ngữ cảnh mà một biểu tượng có thể được dùng được xác định bởi trình duyệt và hệ điều hành, dựa trên kích thước và định dạng đã chỉ định.
Cân nhắc bảo mật
Khả năng của trình duyệt để tải một hình ảnh biểu tượng được điều khiển bởi Content Security Policy (CSP) của tài liệu sở hữu manifest, cụ thể bởi chỉ thị img-src. Khía cạnh bảo mật này liên quan tới thuộc tính src.
Ví dụ, nếu chỉ thị img-src trong một header CSP chỉ định icons.example.com, thì chỉ các biểu tượng từ domain đó mới có thể được tải. Trong một manifest có hai biểu tượng, một từ icons.example.com/low-res và một từ other.com/hi-res, chỉ biểu tượng thứ nhất sẽ được tải thành công vì giới hạn CSP.
Cân nhắc hiệu năng
Chỉ định thuộc tính type có thể cải thiện đáng kể hiệu năng vì nó cho phép trình duyệt bỏ qua các hình ảnh có định dạng không được hỗ trợ dễ dàng hơn.
Nếu bạn không chỉ định thuộc tính type, trình duyệt có thể cần suy ra định dạng ảnh bằng những cách tốn tài nguyên hơn, chẳng hạn MIME sniffing tệp để tìm chữ ký.
Ít nhất, nếu bạn bỏ qua thuộc tính type, hãy dùng phần mở rộng tệp phù hợp và rõ ràng cho ảnh biểu tượng.
Ví dụ
>Khai báo nhiều biểu tượng
Ví dụ này cho thấy cách khai báo nhiều biểu tượng cho các tình huống và thiết bị khác nhau. Nếu một biểu tượng cho một trường hợp cụ thể không được hỗ trợ hoặc không có sẵn, trình duyệt sẽ quay về các định dạng và kích thước khác có sẵn.
-
Hai biểu tượng cùng kích thước (
48x48) được cung cấp ở các định dạng khác nhau. Biểu tượng đầu tiên được chỉ định rõ là WebP bằng thuộc tínhtype. Nếu trình duyệt không hỗ trợ WebP, nó sẽ quay về biểu tượng thứ hai cùng kích thước. Với biểu tượng thứ hai, trình duyệt sẽ xác định MIME type từ header HTTP hoặc bằng cách suy ra từ nội dung tệp ảnh. Biểu tượng ở kích thước này thường được dùng cho tab trình duyệt và bookmark. -
Một tệp ICO được cung cấp với nhiều kích thước từ
72x72tới256x256. Tệp ICO chứa nhiều biểu tượng raster được tối ưu riêng cho các kích thước hiển thị khác nhau. Biểu tượng ở các kích thước này thường được dùng cho phím tắt trên desktop. -
Với các biểu tượng lớn hơn (
257x257trở lên), một tệp SVG được chỉ định. Giá trịsizescủa biểu tượng này được đặt làany, cho phép trình duyệt dùng biểu tượng ở bất kỳ kích thước nào. Biểu tượng SVG giữ được chất lượng ở kích thước lớn hơn. Những biểu tượng này rất phù hợp cho màn hình độ phân giải cao như trong progressive web apps (PWAs).
{
"icons": [
{
"src": "icon/low-res.webp",
"sizes": "48x48",
"type": "image/webp"
},
{
"src": "icon/low-res",
"sizes": "48x48"
},
{
"src": "icon/hd_hi.ico",
"sizes": "72x72 96x96 128x128 256x256"
},
{
"src": "icon/hd_hi.svg",
"sizes": "any"
}
]
}
Đặc tả
| Thông số kỹ thuật |
|---|
| Web Application Manifest> # icons-member> |