Док-увеличение
macOS Плавный аккордеон →

Карточки и UI

Док-увеличение

Плитки растут по гауссовой кривой вокруг курсора — как док макоси.

Ведите мышью вдоль ряда.

ведите мышью вдоль ряда

Код
<div class="dock">
  <i></i><i></i><i></i><i></i><i></i>
</div>

<style>
.dock { display: flex; align-items: flex-end; gap: 10px; }
.dock i { width: 58px; aspect-ratio: 1;
  transform-origin: 50% 100%;              /* растут от «пола» */
  transition: transform .18s ease-out; }
</style>

<script>
var dock = document.querySelector(".dock");
var items = dock.querySelectorAll("i");
dock.addEventListener("pointermove", function (e) {
  items.forEach(function (it) {
    var r = it.getBoundingClientRect();
    var d = Math.abs(e.clientX - (r.left + r.width / 2));
    var k = Math.exp(-(d * d) / (2 * 90 * 90));  // гауссова кривая
    it.style.transform = "scale(" + (1 + k * .65) + ")";
  });
});
dock.addEventListener("pointerleave", function () {
  items.forEach(function (it) { it.style.transform = ""; });
});
</script>
Промпт для ИИ
Сделай док-увеличение как в macOS: ряд плиток (flex, align-items:flex-end, transform-origin 50% 100%); на pointermove каждая масштабируется по гауссовой кривой от расстояния центра плитки до курсора: k = exp(-d²/(2·90²)), scale = 1 + k*0.65 — ближайшая растёт сильнее, соседи по колоколу, дальние не шевелятся. transition 0.18s ease-out сглаживает. На уходе курсора всё в scale(1). Тачам — без эффекта.