Yandex Metrika
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 дней гарантии