Блок преимуществ транспортной компании для Tilda
Шесть плиток с иконкой, растущей цифрой и коротким пояснением: отслеживание груза, страхование, документы, свой парк, склад хранения и диспетчер на связи.
<section class="vbptk">
<div class="vbptk-wrap">
<div class="vbptk-head">
<h2 class="vbptk-h2">На чём держится перевозка</h2>
<p class="vbptk-lead">Шесть вещей, которые видно по документам и в личном кабинете: отметки на маршруте, полис, свои машины и склад. Цифры взяты из отчёта за прошлый квартал.</p>
</div>
<div class="vbptk-grid">
<article class="vbptk-tile">
<div class="vbptk-top">
<b class="vbptk-num" data-num="6" data-suf=" отметок">0</b>
<span class="vbptk-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="13" r="4"/><path d="M16 29c6-7 9.5-11.3 9.5-16A9.5 9.5 0 0 0 6.5 13c0 4.7 3.5 9 9.5 16z"/>
</svg>
</span>
</div>
<h3>Отслеживание груза на маршруте</h3>
<p>Отправка отмечается при приёме, погрузке в рейс, прибытии на каждый транзитный терминал и выдаче. Статус виден в личном кабинете по номеру накладной, изменения приходят на почту.</p>
<span class="vbptk-fin">Каждую отметку ставит кладовщик терминала вручную</span>
</article>
<article class="vbptk-tile">
<div class="vbptk-top">
<b class="vbptk-num" data-num="5" data-pre="до " data-suf=" млн ₽">0</b>
<span class="vbptk-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>
</div>
<h3>Страхование каждой отправки</h3>
<p>Полис оформляется на объявленную стоимость при приёме груза, ставка составляет 0,35 процента. При повреждении выплату ведёт страховая компания, срок рассмотрения по договору до двадцати рабочих дней.</p>
<span class="vbptk-fin">За прошлый год по заявлениям выплачено 11 из 12 случаев</span>
</article>
<article class="vbptk-tile">
<div class="vbptk-top">
<b class="vbptk-num" data-num="98" data-suf="%">0</b>
<span class="vbptk-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="M19 3H9a3 3 0 0 0-3 3v20a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3V10z"/><path d="M19 3v7h7M11 17h10M11 22h7"/>
</svg>
</span>
</div>
<h3>Документы уходят день в день</h3>
<p>Подписанные накладные и акты сканируются в день выгрузки и попадают в кабинет к вечеру. Оригиналы отправляются почтой или собираются в пакет за месяц, если так удобнее бухгалтерии.</p>
<span class="vbptk-fin">Работаем по электронному документообороту с 2021 года</span>
</article>
<article class="vbptk-tile">
<div class="vbptk-top">
<b class="vbptk-num" data-num="128" data-suf=" машин">0</b>
<span class="vbptk-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="M2 8h15v14H2zM17 12h6l4 5v5h-10z"/><circle cx="8" cy="24" r="2.6"/><circle cx="22" cy="24" r="2.6"/>
</svg>
</span>
</div>
<h3>Машины и водители свои</h3>
<p>В парке фургоны от полутора тонн, тентованные фуры и рефрижераторы с режимом от минус двадцати. Водители в штате, ремонт идёт в собственной зоне обслуживания, поэтому рейс не срывается из-за подрядчика.</p>
<span class="vbptk-fin">Средний возраст техники в парке 4 года</span>
</article>
<article class="vbptk-tile">
<div class="vbptk-top">
<b class="vbptk-num" data-num="4200" data-suf=" м²">0</b>
<span class="vbptk-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 14L16 5l12 9v14H4z"/><path d="M11 28v-9h10v9M11 23h10"/>
</svg>
</span>
</div>
<h3>Склад ответственного хранения</h3>
<p>Груз можно оставить на складе до готовности получателя: стеллажное и напольное хранение, паллетный учёт, температурная зона на 300 квадратных метров. Первые трое суток после прихода бесплатны.</p>
<span class="vbptk-fin">Дальше 26 рублей за паллето-место в сутки</span>
</article>
<article class="vbptk-tile">
<div class="vbptk-top">
<b class="vbptk-num" data-num="15" data-suf=" минут">0</b>
<span class="vbptk-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="M6 12a10 10 0 0 1 20 0v9a4 4 0 0 1-4 4h-4"/><rect x="3" y="13" width="5" height="8" rx="2"/><rect x="24" y="13" width="5" height="8" rx="2"/>
</svg>
</span>
</div>
<h3>Диспетчер ведёт рейс до выгрузки</h3>
<p>За заявкой закреплён один сотрудник, он знает маршрут и состояние груза. Среднее время ответа в рабочие часы пятнадцать минут, ночью и в выходные работает дежурная линия по срочным рейсам.</p>
<span class="vbptk-fin">Телефон диспетчера указан в накладной</span>
</article>
</div>
</div>
</section>
<style>
.vbptk, .vbptk *, .vbptk *::before, .vbptk *::after { box-sizing: border-box; }
.vbptk {
--acc: #24618f; --ink: #15202b; --muted: #5b6a78; --line: #dfe5eb; --soft: #f3f6f9;
--f: var(--t-text-font, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif);
--fh: var(--t-headline-font, var(--f));
background: #fff; color: var(--ink); font-family: var(--f); padding: clamp(36px, 5vw, 82px) 20px;
}
.vbptk-wrap { max-width: 1240px; margin: 0 auto; padding: 0 clamp(0px, 2vw, 40px); }
.vbptk-head { max-width: 46em; margin-bottom: clamp(26px, 3.4vw, 44px); }
.vbptk-h2 { font-family: var(--fh); font-size: clamp(26px, 3.4vw, 42px); line-height: 1.1; font-weight: 700; letter-spacing: -.022em; margin: 0 0 12px; }
.vbptk-lead { font-size: 16px; line-height: 1.6; color: var(--muted); margin: 0; }
.vbptk-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: clamp(14px, 1.8vw, 20px); }
.vbptk-tile { background: var(--soft); border-radius: 20px; padding: clamp(20px, 2.2vw, 28px); display: flex; flex-direction: column;
border: 1px solid transparent; transition: border-color .2s ease, background .2s ease; }
.vbptk-tile:hover { border-color: var(--acc); background: #fff; }
.vbptk-top { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 16px; }
.vbptk-num { font-family: var(--fh); font-size: clamp(26px, 2.8vw, 34px); line-height: 1; font-weight: 700; letter-spacing: -.025em; color: var(--acc); }
.vbptk-ico { flex: 0 0 46px; width: 46px; height: 46px; border-radius: 13px; background: #fff; color: var(--acc);
display: flex; align-items: center; justify-content: center; }
.vbptk-tile:hover .vbptk-ico { background: var(--acc); color: #fff; }
.vbptk-ico svg { width: 24px; height: 24px; }
.vbptk-tile h3 { font-family: var(--fh); font-size: 18px; line-height: 1.3; font-weight: 700; margin: 0 0 10px; letter-spacing: -.01em; }
.vbptk-tile p { margin: 0 0 16px; font-size: 14.5px; line-height: 1.62; color: var(--muted); }
.vbptk-fin { display: block; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--line);
font-size: 12.5px; line-height: 1.45; color: var(--acc); }
@media (max-width: 560px) { .vbptk-tile { padding: 20px; } }
@media (prefers-reduced-motion: reduce) { .vbptk * { transition: none !important; } }
</style>
<script>
(function () {
var roots = document.querySelectorAll('.vbptk');
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('.vbptk-num');
var still = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
function space(n) { return String(n).replace(/\B(?=(\d{3})+(?!\d))/g, ' '); }
function run(el, delay) {
var to = +el.getAttribute('data-num') || 0;
var pre = el.getAttribute('data-pre') || '';
var suf = el.getAttribute('data-suf') || '';
if (still) { el.textContent = pre + space(to) + suf; return; }
var t0 = 0;
function step(ts) {
if (!t0) t0 = ts;
var p = Math.min(1, (ts - t0) / 1200);
el.textContent = pre + space(Math.round(to * (1 - Math.pow(1 - p, 3)))) + suf;
if (p < 1) requestAnimationFrame(step);
}
setTimeout(function () { requestAnimationFrame(step); }, delay);
}
var done = 0;
function start() { if (done) return; done = 1; for (var j = 0; j < nums.length; j++) run(nums[j], j * 90); }
if (!('IntersectionObserver' in window)) { start(); return; }
var io = new IntersectionObserver(function (es) {
for (var j = 0; j < es.length; j++) {
if (es[j].isIntersecting) { start(); io.disconnect(); return; }
}
}, { rootMargin: '0px 0px -12% 0px' });
io.observe(root);
setTimeout(start, 2600);
}
})();
</script> Вставляется целиком в блок T123 «HTML-код». Внутри уже есть стили и скрипт, подключать ничего не нужно.
Как вставить блок в Tilda
- Скопируйте кодКнопка «Скопировать код» выше кладёт всё содержимое в буфер обмена.
- Добавьте блок T123В редакторе страницы: «Библиотека блоков» → «Другое» → T123 «HTML-код».
- Вставьте и сохранитеНажмите «Контент», вставьте код в поле, сохраните и обновите страницу.
- ОпубликуйтеВ превью скрипты Tilda работают не всегда — проверяйте на опубликованной странице.
Подробная инструкция с граблями — как вставить вайб-блок в Tilda.
Что менять под себя
| Где в коде | За что отвечает |
|---|---|
data-num, data-pre и data-suf у цифр | значение, приставка и подпись после числа в каждой плитке |
заголовки h3 и текст плиток | формулировки преимуществ под ваш парк и склад |
строка vbptk-fin внизу плитки | уточнение мелким шрифтом: тариф, срок, ограничение |
--acc | цвет цифр, иконок и рамки плитки при наведении |
Преимущества транспортной компании: зачем он нужен
Перевозчики пишут о себе одинаково, поэтому посетитель пролистывает такие блоки не читая. Здесь каждая плитка начинается с цифры: шесть отметок на маршруте, страховая сумма, доля рейсов с документами в день выгрузки, число машин, площадь склада и время ответа диспетчера. Под цифрой идёт объяснение, откуда она берётся, а внизу плитки стоит уточняющая строка.
Цифры набираются по очереди, когда блок попадает в зону видимости, с задержкой в девяносто миллисекунд между плитками. При системной настройке уменьшения движения значения выводятся сразу, без анимации. Сетка построена на автоподборе колонок: на широком экране три плитки в ряд, на планшете две, на телефоне одна. Иконки нарисованы контурными линиями прямо в разметке.
Вопросы по этому блоку
-
Удалите лишние article с классом vbptk-tile из разметки. Сетка построена на автоподборе колонок с минимальной шириной 290 пикселей, поэтому оставшиеся плитки сами перестроятся без правки стилей.
-
Счётчик работает с целыми значениями. Для дробей и диапазонов впишите готовый текст прямо внутрь тега и уберите атрибут data-num, тогда счётчик пропустит эту плитку и вёрстка останется прежней.
-
Иконки нарисованы прямо в разметке контурными линиями и наследуют цвет от переменной акцента. Внешние наборы не подключаются, поэтому блок работает без запросов к сторонним сервисам и не тормозит загрузку страницы.
-
Да. Код на этой странице копируется целиком, без регистрации и подписки. Указывать авторство не нужно, использовать можно в коммерческих проектах.
-
Нет. Все классы внутри имеют собственный префикс vbptk, поэтому не пересекаются ни со стилями Tilda, ни с другими блоками. Скрипт привязан к своему элементу и запускается один раз, даже если блок вставлен дважды.
-
Раскладка перестраивается под узкие экраны, размеры заданы через clamp, поля ввода имеют шрифт 16 пикселей — iOS не будет зумить страницу при фокусе. Отдельной мобильной версии подключать не нужно.
Другие блоки преимуществ
Ещё блоки для логистики и грузоперевозок
Собрать сайт целиком, а не по блокам
Дровосеки делают сайты на Tilda под ключ: структура, тексты, дизайн, вёрстка и вайб-блоки под задачи бизнеса.