Вайб-блок — самая обсуждаемая новинка Tilda этого года: описываете задачу словами, и нейросеть собирает блок с кодом, структурой и дизайном прямо в редакторе. Мы уже разбирали, что это за инструмент и заменит ли он готовые шаблоны. Короткий ответ: не заменит, но точечные задачи решает отлично — если уметь им пользоваться.
В этой статье — практика. Пять готовых промптов, которые можно скопировать и вставить в чат Вайб-блока, и три готовых блока с открытым кодом, которые вообще не тратят ИИ-запросы. Но сначала — про лимиты, из-за которых всё это имеет значение.
Лимиты Вайб-блока: почему каждый запрос на счету
Генерация в Вайб-блоке не бесконечная. Количество запросов зависит от тарифа:
| Тариф | Лимит запросов |
| FREE | 5 за 12 часов / 20 в месяц |
| Personal Trial | 10 за 12 часов / 30 в месяц |
| Student | 15 за 12 часов / 40 в месяц |
| Personal | 50 за 12 часов / 100 в месяц |
| Business | 50 за 12 часов / 100 в месяц |
И есть нюанс, который замечают не сразу: у каждой ИИ-модели своя цена. Более сильная модель списывает несколько запросов за одну генерацию. А сложный блок редко получается с первого раза — обычно нужно 3–7 итераций «поправь отступы, замени цвет, сделай крупнее». В итоге один калькулятор или квиз может съесть половину месячного лимита на тарифе FREE.
Отсюда два практических вывода. Первый: промпт нужно писать так, чтобы попадать в цель с первого-второго раза. Второй: часть блоков выгоднее не генерировать вообще, а взять готовым кодом — это бесплатно. Разберём оба пути.
Как писать промпт, чтобы не сжечь лимит
Мы прогнали через Вайб-блок десятки генераций и разобрали код, который выдаёт нейросеть Tilda. Хороший промпт состоит из четырёх частей:
Задача — что за блок и что он делает. Не «сделай красиво», а «карточки услуг в 3 колонки, у каждой иконка, заголовок, описание и ссылка».
Стиль — конкретные прилагательные и референсы. Нейросеть Tilda хорошо понимает формулировки вроде «чистый, светлый, премиальный», «тёмный технологичный», «мягкие тени, крупная типографика».
Детали поведения — что происходит при наведении, клике, прокрутке. Без этого получите красивую, но статичную картинку.
Ограничения — чего не делать: «без ярких градиентов», «не больше трёх цветов», «без эмодзи».
Ещё один приём: Вайб-блок при генерации подхватывает шрифты и глобальные стили вашего проекта, поэтому не тратьте слова промпта на «используй шрифт как на сайте» — это происходит автоматически.
5 готовых промптов — скопируйте и вставьте
1. Калькулятор стоимости
Создай калькулятор стоимости услуги: слайдер количества (от 1 до 100), три чекбокса дополнительных опций с ценами, итоговая сумма крупно обновляется мгновенно. Стиль: минималистичный, светлый, много воздуха, акцентный цвет только на итоговой цифре и кнопке «Оставить заявку».
Калькулятор — классический конверсионный блок: посетитель играет с ценой и сам подводит себя к заявке.
2. Квиз на 3 вопроса
Сделай квиз из 3 вопросов с вариантами ответов в виде карточек, прогресс-баром сверху и формой email на последнем шаге для получения результата. Переходы между вопросами плавные. Стиль: дружелюбный, светлый, скруглённые карточки, одна акцентная кнопка.
3. Таймлайн этапов работы
Создай вертикальный таймлайн из 5 этапов работы с клиентом: номер этапа в круге, заголовок, короткое описание, соединительная линия между этапами. При прокрутке этапы плавно появляются один за другим. Стиль: строгий, деловой, монохром с одним акцентным цветом.
4. Таблица тарифов
Сделай блок из трёх тарифов: карточки рядом, средняя выделена рамкой и подписью «Популярный», в каждой — название, цена, список из 5 пунктов с галочками и кнопка. При наведении карточка слегка приподнимается. Стиль: чистый, премиальный, много воздуха.
5. Отзывы-слайдер
Создай слайдер отзывов: по одному отзыву на экран, фото клиента в круге, имя, должность, текст отзыва, стрелки навигации по бокам и точки-индикаторы снизу. Автопрокрутка каждые 6 секунд, останавливается при наведении. Стиль: мягкий, светлый, лёгкая тень у карточки.
Каждый промпт можно дорабатывать в том же чате: «сделай фон тёмным», «добавь четвёртый тариф». Но помните — каждое уточнение тратит запрос.
3 готовых блока с кодом: ноль запросов
А теперь главное. У Вайб-блока есть вкладка «Код» — и мы проверили: вставка готового кода не списывает ни одного запроса. Лимиты тратятся только на генерацию через ИИ. Это значит, что проверенный блок можно просто скопировать, вставить и пользоваться — бесплатно на любом тарифе.
Как вставить блок (3 шага):
- Добавьте Вайб-блок на страницу: Библиотека блоков → «Другое» → Вайб-блок.
- Откройте вкладку «Код» в панели блока.
- Вставьте код целиком, нажмите «Сохранить» и опубликуйте страницу.
В начале каждого нашего блока — короткий список CSS-переменных с комментариями. Поменяйте 3–4 значения цвета, и блок встанет в палитру вашего сайта. Шрифты подстраиваются автоматически: код использует те же переменные --t-headline-font и --t-text-font, что и родные блоки Tilda.
Блок 1 — FAQ-аккордеон
Раскрывающиеся вопросы-ответы: открыт один пункт, остальные закрываются, плюс плавная анимация и иконка «плюс/минус». По умолчанию — светлая версия; для тёмного фона замените четыре переменные в начале (значения — в комментариях).
<!-- FAQ-аккордеон | Tematema.ru -->
<style>
/* ===== Настройка: поменяйте 4 цвета под свой сайт ===== */
/* Тёмный фон: accent/text #ffffff, muted rgba(255,255,255,.65), border rgba(255,255,255,.2) */
.tmtm-faq {
--tmtm-accent: #1a1a1a; /* цвет акцента (иконка) */
--tmtm-text: #1a1a1a; /* цвет вопросов и заголовка */
--tmtm-muted: #6e6e68; /* цвет текста ответа */
--tmtm-border: #e3e3df; /* цвет разделителей */
max-width: 760px;
margin: 0 auto;
padding: 60px 20px;
font-family: var(--t-text-font, inherit);
color: var(--tmtm-text);
}
.tmtm-faq * { box-sizing: border-box; }
.tmtm-faq__title {
font-family: var(--t-headline-font, inherit);
font-size: clamp(28px, 4vw, 34px);
font-weight: 700;
line-height: 1.2;
color: var(--tmtm-text);
margin: 0 0 32px;
}
.tmtm-faq__item { border-bottom: 1px solid var(--tmtm-border); }
.tmtm-faq__q {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
width: 100%;
padding: 22px 0;
background: none;
border: none;
cursor: pointer;
text-align: left;
font-family: var(--t-text-font, inherit);
font-size: 18px;
font-weight: 600;
line-height: 1.4;
color: var(--tmtm-text);
transition: opacity .2s ease;
}
.tmtm-faq__q:hover { opacity: .75; }
.tmtm-faq__icon { position: relative; flex: 0 0 20px; height: 20px; }
.tmtm-faq__icon::before,
.tmtm-faq__icon::after {
content: '';
position: absolute;
top: 50%; left: 50%;
width: 14px; height: 2px;
background: var(--tmtm-accent);
transform: translate(-50%, -50%);
transition: transform .25s ease;
}
.tmtm-faq__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.tmtm-faq__item.is-open .tmtm-faq__icon::after { transform: translate(-50%, -50%) rotate(0deg); }
.tmtm-faq__a {
display: grid;
grid-template-rows: 0fr;
transition: grid-template-rows .3s ease;
}
.tmtm-faq__item.is-open .tmtm-faq__a { grid-template-rows: 1fr; }
.tmtm-faq__a-inner { overflow: hidden; }
.tmtm-faq__a-text {
margin: 0;
padding: 0 30px 22px 0;
font-size: 16px;
line-height: 1.6;
color: var(--tmtm-muted);
}
@media (max-width: 640px) {
.tmtm-faq { padding: 40px 16px; }
.tmtm-faq__q { font-size: 16px; padding: 18px 0; }
.tmtm-faq__a-text { padding-right: 20px; }
}
</style>
<div class="tmtm-faq">
<h2 class="tmtm-faq__title">Частые вопросы</h2>
<div class="tmtm-faq__item">
<button class="tmtm-faq__q" type="button">
Первый вопрос — замените на свой
<span class="tmtm-faq__icon"></span>
</button>
<div class="tmtm-faq__a">
<div class="tmtm-faq__a-inner">
<p class="tmtm-faq__a-text">Текст ответа на первый вопрос. Отредактируйте прямо в коде.</p>
</div>
</div>
</div>
<div class="tmtm-faq__item">
<button class="tmtm-faq__q" type="button">
Второй вопрос — замените на свой
<span class="tmtm-faq__icon"></span>
</button>
<div class="tmtm-faq__a">
<div class="tmtm-faq__a-inner">
<p class="tmtm-faq__a-text">Текст ответа на второй вопрос.</p>
</div>
</div>
</div>
<div class="tmtm-faq__item">
<button class="tmtm-faq__q" type="button">
Третий вопрос — замените на свой
<span class="tmtm-faq__icon"></span>
</button>
<div class="tmtm-faq__a">
<div class="tmtm-faq__a-inner">
<p class="tmtm-faq__a-text">Текст ответа на третий вопрос.</p>
</div>
</div>
</div>
</div>
<script>
// Аккордеон FAQ: открыт один пункт, остальные закрываются
(function () {
var faqs = document.querySelectorAll('.tmtm-faq');
var faq = faqs[faqs.length - 1];
if (!faq || faq.dataset.tmtmInit) return;
faq.dataset.tmtmInit = '1';
var items = faq.querySelectorAll('.tmtm-faq__item');
items.forEach(function (item) {
var btn = item.querySelector('.tmtm-faq__q');
btn.addEventListener('click', function () {
var isOpen = item.classList.contains('is-open');
items.forEach(function (i) { i.classList.remove('is-open'); });
if (!isOpen) item.classList.add('is-open');
});
});
})();
</script>
Блок 2 — Карточки преимуществ с ховером
Три карточки с иконкой, заголовком и текстом. При наведении карточка приподнимается, а верхняя акцентная полоска «прорисовывается» слева направо. Чистый CSS, без скриптов. Иконки — из открытой библиотеки Tilda, можно заменить на любые свои.
<!-- Карточки преимуществ | Tematema.ru -->
<style>
/* ===== Настройка: поменяйте цвета под свой сайт ===== */
.tmtm-feat {
--tmtm-accent: #1a1a1a; /* акцент (полоска, иконка) */
--tmtm-text: #1a1a1a; /* заголовки */
--tmtm-muted: #6e6e68; /* описания */
--tmtm-card-bg: #f5f5f3; /* фон карточки */
max-width: 1200px;
margin: 0 auto;
padding: 60px 20px;
font-family: var(--t-text-font, inherit);
}
.tmtm-feat * { box-sizing: border-box; }
.tmtm-feat__title {
font-family: var(--t-headline-font, inherit);
font-size: clamp(28px, 4vw, 40px);
font-weight: 700;
line-height: 1.15;
color: var(--tmtm-text);
margin: 0 0 40px;
}
.tmtm-feat__grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
}
.tmtm-feat__card {
position: relative;
overflow: hidden;
background: var(--tmtm-card-bg);
border-radius: 16px;
padding: 36px 32px;
transition: transform .35s cubic-bezier(.22, 1, .36, 1),
box-shadow .35s cubic-bezier(.22, 1, .36, 1);
}
/* Акцентная полоска сверху — прорисовывается при наведении */
.tmtm-feat__card::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0;
height: 3px;
background: var(--tmtm-accent);
transform: scaleX(0);
transform-origin: left;
transition: transform .4s cubic-bezier(.22, 1, .36, 1);
}
.tmtm-feat__card:hover {
transform: translateY(-6px);
box-shadow: 0 20px 50px rgba(0, 0, 0, .12);
}
.tmtm-feat__card:hover::before { transform: scaleX(1); }
.tmtm-feat__icon {
width: 44px;
height: 44px;
display: block;
margin: 0 0 20px;
}
.tmtm-feat__card-title {
font-family: var(--t-headline-font, inherit);
font-size: 20px;
font-weight: 700;
line-height: 1.25;
color: var(--tmtm-text);
margin: 0 0 12px;
}
.tmtm-feat__card-text {
font-size: 15px;
line-height: 1.6;
color: var(--tmtm-muted);
margin: 0;
}
@media (max-width: 960px) {
.tmtm-feat__grid { grid-template-columns: 1fr; gap: 16px; }
}
@media (max-width: 640px) {
.tmtm-feat { padding: 40px 16px; }
.tmtm-feat__card { padding: 28px 24px; }
}
</style>
<div class="tmtm-feat">
<h2 class="tmtm-feat__title">Почему выбирают нас</h2>
<div class="tmtm-feat__grid">
<div class="tmtm-feat__card">
<img class="tmtm-feat__icon" src="https://static.tildacdn.com/lib/icons/tilda/progress_improvemnt_increase.svg" alt="Рост">
<h3 class="tmtm-feat__card-title">Первое преимущество</h3>
<p class="tmtm-feat__card-text">Короткое описание преимущества в два-три предложения. Замените на своё.</p>
</div>
<div class="tmtm-feat__card">
<img class="tmtm-feat__icon" src="https://static.tildacdn.com/lib/icons/tilda/group_team_people.svg" alt="Команда">
<h3 class="tmtm-feat__card-title">Второе преимущество</h3>
<p class="tmtm-feat__card-text">Короткое описание преимущества в два-три предложения. Замените на своё.</p>
</div>
<div class="tmtm-feat__card">
<img class="tmtm-feat__icon" src="https://static.tildacdn.com/lib/icons/tilda/analytics.svg" alt="Аналитика">
<h3 class="tmtm-feat__card-title">Третье преимущество</h3>
<p class="tmtm-feat__card-text">Короткое описание преимущества в два-три предложения. Замените на своё.</p>
</div>
</div>
</div>
Блок 3 — Анимированные счётчики цифр
Цифры «набегают» от нуля до значения, когда блок появляется на экране. Классика для «500 проектов, 12 лет, 98% довольных клиентов». Значение задаётся в атрибуте `data-target`, приставка и суффикс (например, «+» или «%») — прямо в разметке.
<!-- Счётчики цифр | Tematema.ru -->
<style>
/* ===== Настройка: поменяйте цвета под свой сайт ===== */
.tmtm-stats {
--tmtm-accent: #1a1a1a; /* цвет цифр */
--tmtm-muted: #6e6e68; /* цвет подписей */
max-width: 1000px;
margin: 0 auto;
padding: 60px 20px;
font-family: var(--t-text-font, inherit);
}
.tmtm-stats * { box-sizing: border-box; }
.tmtm-stats__grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 32px;
text-align: center;
}
.tmtm-stats__num {
font-family: var(--t-headline-font, inherit);
font-size: clamp(40px, 6vw, 64px);
font-weight: 700;
line-height: 1.1;
color: var(--tmtm-accent);
margin: 0 0 8px;
}
.tmtm-stats__label {
font-size: 15px;
line-height: 1.5;
color: var(--tmtm-muted);
margin: 0;
}
@media (max-width: 640px) {
.tmtm-stats { padding: 40px 16px; }
.tmtm-stats__grid { grid-template-columns: 1fr; gap: 24px; }
}
</style>
<div class="tmtm-stats">
<div class="tmtm-stats__grid">
<div class="tmtm-stats__item">
<p class="tmtm-stats__num"><span data-target="500">0</span>+</p>
<p class="tmtm-stats__label">выполненных проектов</p>
</div>
<div class="tmtm-stats__item">
<p class="tmtm-stats__num"><span data-target="12">0</span></p>
<p class="tmtm-stats__label">лет на рынке</p>
</div>
<div class="tmtm-stats__item">
<p class="tmtm-stats__num"><span data-target="98">0</span>%</p>
<p class="tmtm-stats__label">довольных клиентов</p>
</div>
</div>
</div>
<script>
// Счётчики: анимация от 0 до data-target при появлении блока на экране
(function () {
var blocks = document.querySelectorAll('.tmtm-stats');
var block = blocks[blocks.length - 1];
if (!block || block.dataset.tmtmInit) return;
block.dataset.tmtmInit = '1';
var DURATION = 1500; // длительность анимации, мс
function animate(el) {
var target = parseInt(el.getAttribute('data-target'), 10) || 0;
var start = null;
function step(ts) {
if (!start) start = ts;
var progress = Math.min((ts - start) / DURATION, 1);
// Замедление к концу (ease-out)
var eased = 1 - Math.pow(1 - progress, 3);
el.textContent = Math.round(target * eased);
if (progress < 1) requestAnimationFrame(step);
}
requestAnimationFrame(step);
}
var observer = new IntersectionObserver(function (entries) {
entries.forEach(function (entry) {
if (entry.isIntersecting) {
block.querySelectorAll('[data-target]').forEach(animate);
observer.disconnect(); // запускаем один раз
}
});
}, { threshold: 0.4 });
observer.observe(block);
})();
</script>
Где Вайб-блок слабее готового решения
Мы разобрали код, который генерирует нейросеть Tilda, и вот что заметили. Генерация отлично справляется со статикой: сетки карточек, типографика, ховер-эффекты выходят аккуратными. Но интерактив — аккордеоны, калькуляторы, слайдеры с логикой — с первого раза почти никогда не работает как надо, а каждая доводка стоит запросов. Ссылки в сгенерированных блоках часто ведут в никуда, а тексты приходится переписывать целиком: нейросеть заполняет карточки обтекаемыми формулировками «комплексные решения для роста вашего бизнеса».
Поэтому рабочая стратегия такая: простые декоративные блоки — генерируйте промптами из этой статьи, интерактивные — берите готовым кодом, а тексты всегда пишите сами.
Блок решает задачу. Сайт решает бизнес
Вайб-блок — отличный инструмент для точечных задач: добавить калькулятор, освежить страницу нестандартной секцией, закрыть дыру, где не хватает возможностей стандартных блоков. Но сайт целиком — это не набор блоков, а система: структура, смыслы, путь посетителя к заявке. Собрать её из отдельных генераций — всё равно что построить дом из красивых, но случайных кирпичей.
Если вам нужен не блок, а весь сайт — посмотрите готовые шаблоны Tilda в нашем каталоге. Каждый — законченная дизайн-система студийного уровня, где блоки уже согласованы между собой. А вайб-блоками её потом можно точечно дополнять — теперь вы знаете как.