Favicon Tools检测创建
Platform

theme-color:为页面周围的浏览器界面着色

theme-color 是一个 meta 标签,告诉浏览器该把它自己在你页面周围的界面涂成什么颜色:Android 上 Chrome 的地址栏区域、已安装 PWA 的窗口界面,以及近期 Safari 的窗口顶部。你用一个 name 为 theme-color 的 meta 标签加一个颜色值来设置它,还可以用 media 属性声明两个,让它跟随浅色和暗色模式。web app manifest 在它的 theme_color 字段里为已安装的应用携带同样的值。

它改变了什么

theme-color 不会影响你页面内部的任何东西。它影响的是浏览器自己在页面周围的表面,好让应用与浏览器之间的边界不再是一条可见的接缝。在手机上,深色网站配白色地址栏会被看成两个各自独立的东西;让它们相配,则会被看成一个整体。

它是一种提示,而非保证。浏览器只在它有表面可着色的地方应用它,其他地方则忽略,而且有些浏览器会拒绝与自身文字对比度过低的取值。它被忽略时,什么也不会坏掉。

浅色与暗色变体

<meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)">
<meta name="theme-color" content="#0b0b0b" media="(prefers-color-scheme: dark)">

浏览器会选中第一个媒体查询匹配的标签。一个没有 media 属性的单独标签会在每种配色方案下都生效。

它在哪里生效

位置效果
Chrome on Android为地址栏和状态栏区域着色
Installed PWA为应用的标题栏或状态栏着色
Safari (recent versions)为 macOS 和 iOS 上的窗口顶部着色
Desktop Chrome tabs对普通浏览器窗口无效果

theme-color 常见问题

theme-color 和 favicon 有关系吗?

只在于它们一起发布、并且应当保持一致这一点上。favicon 在标签页里标识网站;theme-color 为页面周围的浏览器界面着色。生成器把两者都产出,是因为它们来自同一套品牌配色。

允许哪些颜色值格式?

任何浏览器能解析的 CSS 颜色:hex、rgb()、hsl()、命名颜色。hex 是最稳妥的选择,因为它在各解析器之间都无歧义。

为什么我的 theme-color 被忽略了?

常见原因是:一个永远不匹配当前配色方案的 media 属性、一个在首次绘制之后才注入的标签,或者一个根本没有表面可着色的桌面浏览器。先在 Android 版 Chrome 上检查它,因为那里的效果最明显。

相关术语