sanches.free
22 просмотра
Произвести стабильный hex из произвольной строки через простой суммирующий hash
Разбор задачи
Берём остаток суммы кодов символов по простому множителю и ограничиваем яркость, чтобы текст на фоне оставался контрастным.
function wordHueBucket(label) {
let bucket = 0;
for (let idx = 0; idx < label.length; idx += 1) {
bucket = (bucket + label.charCodeAt(idx) * (idx + 3)) % 360;
}
return {
background: `hsl(${bucket} 48% 45%)`,
foreground: bucket > 45 && bucket < 200 ? '#0f172a' : '#f8fafc',
};
}В PHP версии считаете сумму строки и передаёте в шаблон inline style либо data-hue класс утилиты.
Замечания перед выкладкой
Вносите правки только через среду с бэкапом и понятным diff. Если сниппет идёт в шаблон на Битрикс, проверьте конфликт с уже подключённым jQuery/UI и включите «отложенный» запуск там, где длинный главный файл может обрезать DOMContentLoaded.
Не хотите копаться сами?
Починю за 1-3 дня. Без предоплаты — оплата по результату.
15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии