Задать вопрос директору
Telegram
VK
Звонок

Блок преимуществ товарного бренда

Шесть плиток с иконками и цифрами про то, что стоит за ценником: свой цех, номера партий, правила обмена, гарантия, срок отгрузки и упаковка.

Живое демо — блок работает прямо здесь

Код блока

<section class="vbpbr">
  <div class="vbpbr-wrap">
    <div class="vbpbr-side">
      <h2 class="vbpbr-h2">Что стоит за ценником</h2>
      <p class="vbpbr-lead">Шесть вещей, которые проверяются документами и чеком: свой цех, журнал партий, правила обмена и срок отгрузки. Цифры взяты из отчёта за прошлый год.</p>
      <a class="vbpbr-link" href="#proizvodstvo">Показать цех и склад</a>
    </div>

    <div class="vbpbr-grid">
      <article class="vbpbr-tile">
        <span class="vbpbr-ico">
          <svg viewBox="0 0 32 32" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">
            <path d="M4 27V14l8-5v5l8-5v18z"/><path d="M20 27V9l8-4v22z"/><path d="M9 21h3M9 17h3"/>
          </svg>
        </span>
        <b class="vbpbr-num" data-num="9" data-suf=" лет">0</b>
        <h3>Своё производство</h3>
        <p>Цех в Туле работает с 2016 года: формовка, обжиг, шлифовка дерева и упаковка идут под одной крышей. Подрядчикам отдаём только печать на коробках.</p>
        <span class="vbpbr-fin">1 400 м² площади, 24 человека в смене</span>
      </article>

      <article class="vbpbr-tile">
        <span class="vbpbr-ico">
          <svg viewBox="0 0 32 32" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">
            <path d="M8 4h16v24H8z"/><path d="M12 11h8M12 16h8M12 21h5"/><circle cx="24" cy="24" r="6" fill="none"/><path d="M21.5 24l1.8 1.8L26.5 22"/>
          </svg>
        </span>
        <b class="vbpbr-num" data-num="100" data-suf=" %">0</b>
        <h3>Контроль партий</h3>
        <p>У каждой партии свой номер, он стоит на дне изделия и в паспорте заказа. По номеру видно дату обжига, состав глазури и кто вёл смену.</p>
        <span class="vbpbr-fin">Журнал партий храним пять лет</span>
      </article>

      <article class="vbpbr-tile">
        <span class="vbpbr-ico">
          <svg viewBox="0 0 32 32" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">
            <path d="M5 13a11 11 0 0 1 19-5"/><path d="M27 19a11 11 0 0 1-19 5"/><path d="M24 3v6h-6M8 29v-6h6"/>
          </svg>
        </span>
        <b class="vbpbr-num" data-num="30" data-suf=" дней">0</b>
        <h3>Обмен и возврат</h3>
        <p>Вещь без следов использования принимаем обратно месяц, а не две недели. Обратную отправку из пункта выдачи оплачиваем сами.</p>
        <span class="vbpbr-fin">Деньги возвращаем за 3 рабочих дня</span>
      </article>

      <article class="vbpbr-tile">
        <span class="vbpbr-ico">
          <svg viewBox="0 0 32 32" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">
            <path d="M16 3l11 4v9c0 7-4.6 11.6-11 13.5C9.6 27.6 5 23 5 16V7z"/><path d="M11.5 16l3 3 6-6.5"/>
          </svg>
        </span>
        <b class="vbpbr-num" data-num="2" data-suf=" года">0</b>
        <h3>Гарантия на изделие</h3>
        <p>Скол глазури, трещина после мойки, разошедшийся шов на деревянной ручке: меняем на новую вещь без экспертизы и споров.</p>
        <span class="vbpbr-fin">На стальную посуду гарантия 10 лет</span>
      </article>

      <article class="vbpbr-tile">
        <span class="vbpbr-ico">
          <svg viewBox="0 0 32 32" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">
            <circle cx="16" cy="16" r="12"/><path d="M16 9v7l5 3"/>
          </svg>
        </span>
        <b class="vbpbr-num" data-num="24" data-suf=" часа">0</b>
        <h3>Сроки отгрузки</h3>
        <p>Заказ до 16:00 уезжает перевозчику в тот же день, поздний уходит на следующее утро. Складские остатки в каталоге обновляются каждый час.</p>
        <span class="vbpbr-fin">97 % заказов ушли в срок за год</span>
      </article>

      <article class="vbpbr-tile">
        <span class="vbpbr-ico">
          <svg viewBox="0 0 32 32" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">
            <path d="M16 4l12 6v12l-12 6-12-6V10z"/><path d="M4 10l12 6 12-6M16 16v12"/>
          </svg>
        </span>
        <b class="vbpbr-num" data-num="3" data-suf=" слоя">0</b>
        <h3>Упаковка</h3>
        <p>Керамика едет в ячейке из вспененного полиэтилена, между слоями картон, снаружи гофрокороб с угловыми вставками.</p>
        <span class="vbpbr-fin">0,4 % отправок приходят с боем</span>
      </article>
    </div>
  </div>
</section>

<style>
.vbpbr, .vbpbr *, .vbpbr *::before, .vbpbr *::after { box-sizing: border-box; }
.vbpbr {
  --acc: #9c2b45; --ink: #1e1c1b; --muted: #6b6561; --line: #e4e0dc; --soft: #f7f5f2;
  --f: var(--t-text-font, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif);
  --fh: var(--t-headline-font, var(--f));
  background: var(--soft); color: var(--ink); font-family: var(--f); padding: clamp(38px, 5.2vw, 86px) 20px;
}
.vbpbr-wrap { max-width: 1220px; margin: 0 auto; padding: 0 clamp(0px, 2vw, 38px);
  display: grid; grid-template-columns: minmax(0, .78fr) minmax(0, 2.22fr); gap: clamp(24px, 3.6vw, 52px); align-items: start; }
.vbpbr-side { position: sticky; top: 24px; }
.vbpbr-h2 { font-family: var(--fh); font-size: clamp(26px, 3.3vw, 40px); line-height: 1.08; font-weight: 700; letter-spacing: -.02em; margin: 0 0 14px; }
.vbpbr-lead { font-size: 15.5px; line-height: 1.62; color: var(--muted); margin: 0 0 20px; }
.vbpbr-link, .vbpbr-link:link, .vbpbr-link:visited, .vbpbr-link:focus { font-size: 15px; font-weight: 600;
  color: var(--acc) !important; text-decoration: underline !important; text-underline-offset: 4px; }

.vbpbr-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 12px; }
.vbpbr-tile { background: #fff; border-radius: 20px; padding: clamp(20px, 2.2vw, 26px); display: flex; flex-direction: column; }
.vbpbr-ico { width: 46px; height: 46px; display: flex; align-items: center; justify-content: center; border-radius: 13px;
  background: var(--soft); color: var(--acc); margin-bottom: 16px; }
.vbpbr-ico svg { width: 26px; height: 26px; }
.vbpbr-num { display: block; font-family: var(--fh); font-size: clamp(26px, 2.8vw, 33px); line-height: 1; font-weight: 700;
  letter-spacing: -.02em; color: var(--acc); margin-bottom: 8px; }
.vbpbr-tile h3 { font-family: var(--fh); font-size: 17.5px; line-height: 1.25; font-weight: 600; margin: 0 0 9px; }
.vbpbr-tile p { margin: 0 0 16px; font-size: 14.5px; line-height: 1.6; color: var(--muted); }
.vbpbr-fin { display: block; margin-top: auto; border-top: 1px solid var(--line); padding-top: 12px; font-size: 12.5px; line-height: 1.45; color: #9a938e; }

@media (max-width: 940px) {
  .vbpbr-wrap { grid-template-columns: minmax(0, 1fr); }
  .vbpbr-side { position: static; }
}
@media (prefers-reduced-motion: reduce) { .vbpbr * { transition: none !important; } }
</style>

<script>
(function () {
  var roots = document.querySelectorAll('.vbpbr');
  for (var i = 0; i < roots.length; i++) init(roots[i]);

  function init(root) {
    if (root.__vb) return; root.__vb = 1;
    var nums = root.querySelectorAll('.vbpbr-num');
    var calm = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;

    function run(el, delay) {
      var to = parseInt(el.getAttribute('data-num'), 10) || 0;
      var suf = el.getAttribute('data-suf') || '';
      if (calm) { el.textContent = to + suf; return; }
      var start = null, dur = 900;
      function step(ts) {
        if (start === null) start = ts;
        var p = Math.min(1, (ts - start) / dur);
        el.textContent = Math.round(to * (1 - Math.pow(1 - p, 3))) + suf;
        if (p < 1) requestAnimationFrame(step);
      }
      setTimeout(function () { requestAnimationFrame(step); }, delay);
    }

    function fire(el) {
      if (el.__done) return;
      el.__done = 1;
      var list = root.querySelectorAll('.vbpbr-num');
      var pos = 0;
      for (var k = 0; k < list.length; k++) { if (list[k] === el) pos = k; }
      run(el, (pos % 3) * 110);
    }

    function all() { for (var m = 0; m < nums.length; m++) fire(nums[m]); }

    if (!('IntersectionObserver' in window)) { all(); return; }
    var io = new IntersectionObserver(function (es) {
      for (var q = 0; q < es.length; q++) {
        if (es[q].isIntersecting) { fire(es[q].target); io.unobserve(es[q].target); }
      }
    }, { rootMargin: '0px 0px -12% 0px' });
    for (var n = 0; n < nums.length; n++) io.observe(nums[n]);
    setTimeout(all, 2800);
  }
})();
</script>

Вставляется целиком в блок T123 «HTML-код». Внутри уже есть стили и скрипт, подключать ничего не нужно.

Как вставить блок в Tilda

  1. Скопируйте кодКнопка «Скопировать код» выше кладёт всё содержимое в буфер обмена.
  2. Добавьте блок T123В редакторе страницы: «Библиотека блоков» → «Другое» → T123 «HTML-код».
  3. Вставьте и сохранитеНажмите «Контент», вставьте код в поле, сохраните и обновите страницу.
  4. ОпубликуйтеВ превью скрипты Tilda работают не всегда — проверяйте на опубликованной странице.

Подробная инструкция с граблями — как вставить вайб-блок в Tilda.

Что менять под себя

Где в кодеЗа что отвечает
data-num и data-suf у плитокзначение счётчика и подпись после числа
текст в тегах h3 и pназвание преимущества и разъяснение под ним
строка vbpbr-fin в конце плиткимелкий факт под чертой: площадь, срок, доля
--acc в начале стилейцвет иконок, цифр и ссылки в левой колонке

Преимущества товарного бренда: зачем он нужен

Блок отвечает на возражение «почему у вас дороже, чем у перекупщиков». Каждая плитка держится на проверяемом факте: год запуска цеха, срок обмена, доля отправок, ушедших в срок, процент боя при перевозке. Слева стоит закреплённая колонка с заголовком и ссылкой на страницу производства, справа шесть плиток в резиновой сетке.

Цифры оживают счётчиком, когда плитка попадает в поле зрения, с небольшой задержкой по колонкам. У посетителей, которые включили уменьшение движения, значения появляются сразу. Иконки нарисованы вектором в разметке, поэтому блок обходится без загрузок и переносится в Tilda одним куском.

Вопросы по этому блоку

  • Удалите лишние теги article целиком. Сетка построена на repeat с auto-fit, поэтому оставшиеся плитки сами займут ширину, а на узком экране встанут в одну колонку.

  • Впишите в data-num ноль и уберите тег b из разметки плитки: заголовок и текст поднимутся вверх, отступы посчитаны так, что пустоты не останется.

  • Они лежат прямо в разметке как теги svg с обводкой в 1,7 пикселя. Замените содержимое тега на свой вектор с тем же атрибутом viewBox, и размер подхватится автоматически.

  • Да. Код на этой странице копируется целиком, без регистрации и подписки. Указывать авторство не нужно, использовать можно в коммерческих проектах.

  • Нет. Все классы внутри имеют собственный префикс vbpbr, поэтому не пересекаются ни со стилями Tilda, ни с другими блоками. Скрипт привязан к своему элементу и запускается один раз, даже если блок вставлен дважды.

  • Раскладка перестраивается под узкие экраны, размеры заданы через clamp, поля ввода имеют шрифт 16 пикселей — iOS не будет зумить страницу при фокусе. Отдельной мобильной версии подключать не нужно.

Другие блоки преимуществ

Ещё блоки для товарных брендов

Собрать сайт целиком

Дровосеки делают сайты на Tilda под ключ: структура, тексты, дизайн, вёрстка и вайб-блоки под задачи бизнеса.