Микровзаимодействия
Логостена с перемешиванием
Сетка партнёров, в которой случайные ячейки постоянно меняют логотипы — стена «живёт». SectionPartners.
Просто смотрите пару секунд.
Пул имён больше числа ячеек: каждые ~2 секунды случайная ячейка меняет логотип с подъёмом снизу — стена «живёт». Приём SectionPartners c jobyaviation.com.
Код
<div class="logo-wall" data-pool="ALPHA|BETA|GAMMA|DELTA|EPSILON|ZETA">
<span class="slot"></span><span class="slot"></span>
<span class="slot"></span><span class="slot"></span>
</div>
<style>
.logo-wall { display: grid; grid-template-columns: repeat(4, 1fr);
gap: 1px; background: #e7e5df; border: 1px solid #e7e5df; }
.slot { background: #fff; min-height: 96px; display: flex; overflow: hidden;
align-items: center; justify-content: center;
font: 800 17px/1 sans-serif; letter-spacing: .06em; color: #9a978e; }
.slot b { font-weight: inherit; }
.slot b.in { animation: lwIn .55s cubic-bezier(.16,1,.3,1); }
@keyframes lwIn { from { transform: translateY(110%); } }
</style>
<script>
var wall = document.querySelector(".logo-wall");
var pool = wall.getAttribute("data-pool").split("|");
var slots = [].slice.call(wall.querySelectorAll(".slot"));
var used = pool.slice(0, slots.length);
slots.forEach(function (sl, i) { sl.innerHTML = "<b>" + used[i] + "</b>"; });
setInterval(function () {
var i = Math.floor(Math.random() * slots.length);
var free = pool.filter(function (n) { return used.indexOf(n) < 0; });
if (!free.length) return;
var next = free[Math.floor(Math.random() * free.length)];
used[i] = next;
var b = document.createElement("b");
b.textContent = next;
b.className = "in";
slots[i].replaceChildren(b);
}, 2000);
</script>
Промпт для ИИ
Сделай логостену с перемешиванием как SectionPartners на jobyaviation.com: грид ячеек с hairline-сеткой (gap 1px на фоне цвета линий), пул логотипов больше числа ячеек. Раз в ~2 секунды случайная ячейка заменяет логотип на случайный незанятый из пула; новый въезжает снизу translateY(110%)→0 за 0.55s (ячейка с overflow:hidden). Следи, чтобы на стене не было дублей. При prefers-reduced-motion интервал не запускай.