想知道是否有人对DevTools中第三方徽章的重要性有所了解,特别是他们的颜色?它们各不相同,很好奇这是如何决定的以及原因。
答案 0 :(得分:0)
根据产品名称生成颜色(因此它们在重新加载之间保持一致)。它们没有任何特殊含义。
来自BadgePool.js(其中entryName
可能类似于“Google Analytics”):
static colorForEntryName(entryName) {
if (!ProductRegistry.BadgePool._colorGenerator) {
ProductRegistry.BadgePool._colorGenerator =
new Common.Color.Generator({min: 30, max: 330}, {min: 50, max: 80, count: 3}, 80);
}
return ProductRegistry.BadgePool._colorGenerator.colorForID(entryName);
}
来自Common.Color.Generator:
/**
* @param {string} id
* @return {string}
*/
colorForID(id) {
var color = this._colors.get(id);
if (!color) {
color = this._generateColorForID(id);
this._colors.set(id, color);
}
return color;
}
/**
* @param {string} id
* @return {string}
*/
_generateColorForID(id) {
var hash = String.hashCode(id);
var h = this._indexToValueInSpace(hash, this._hueSpace);
var s = this._indexToValueInSpace(hash >> 8, this._satSpace);
var l = this._indexToValueInSpace(hash >> 16, this._lightnessSpace);
var a = this._indexToValueInSpace(hash >> 24, this._alphaSpace);
return `hsla(${h}, ${s}%, ${l}%, ${a})`;
}