15 октября 2025 г.

Фреймворк TJML: как в 2025 году верстать письма быстро и просто

Время чтения: 7 минут

За несколько десятилетий электронная почта прошла значительный путь от простых текстовых сообщений к визуально насыщенным рассылкам с графикой, анимацией и интерактивом. Но чем разнообразнее становился контент, тем больше требований предъявлялось к вёрстке.

Чтобы создание писем оставалось комфортным в современных реалиях, мы разработали специальный фреймворк — TJML. В статье рассмотрим его детально и расскажем, как он помогает верстать рассылки легко и управляемо.

Стоит ли сегодня полагаться на ручную вёрстку

Когда-то ручная HTML-вёрстка считалась эталоном. Только она позволяла добиться наилучшего результата и контроля над письмом. Однако со временем технологии стали сложнее, а с ними эволюционировали и почтовые клиенты, каждый из которых имеет свои особенности.

Нужно держать в голове множество деталей: как ведут себя внешние стили, работают ли медиазапросы, что происходит с таблицами и отступами в разных клиентах. К тому же сегодня многие люди проверяют почту со смартфонов. Это значит, что каждое письмо необходимо адаптировать в том числе под вертикальный экран и мобильные системы.

Фактически одно письмо теперь включает три разных версии:

  • для современных десктопных и веб-клиентов;

  • для мобильных устройств;

  • для Outlook на Windows, где поддержка CSS всё ещё сильно ограничена.

Отдельно стоит упомянуть AMP-технологию. Она открыла путь к интерактивным письмам с «каруселями», формами и другими динамическими элементами. Но технически это значит, что нужно предусматривать как AMP-вариант для совместимых клиентов, так и обычную HTML-версию для всех остальных.

Где помогают визуальные конструкторы

В условиях современного маркетинга полагаться только на ручную вёрстку невозможно. Альтернативой стали конструкторы писем — современный и удобный способ работы над рассылками. Они не требуют знания кода и позволяют создавать шаблоны писем за несколько минут.

Например, визуальный редактор писем Pixcraft позволяет собирать рассылки по принципу drag-and-drop: просто перетаскивайте нужные элементы на холст и меняйте их. Управление компонентами, включая AMP, доступно прямо в интерфейсе, а готовые шаблоны совместимы со множеством email-клиентов и легко адаптируются под мобильные устройства. Ещё одной альтернативой является экспорт готового email-кода с помощью плагина Pixcraft для Figma: он позволяет преобразовать готовый макет в адаптивное HTML-письмо.

Но так или иначе в основе каждого письма лежит код, и порой взаимодействия с ним не избежать. Можно ли сделать работу с кодом такой же комфортной и современной? Ответ — да. Именно здесь и пригодится TJML.

Что такое TJML

Это email-фреймворк, созданный командой Pixcraft для разработки HTML- и AMP-писем. Он объединяет простоту блочного подхода с гибкостью ручной вёрстки, сохраняя при этом привычный синтаксис.

Базовый каркас письма в TJML может выглядеть так:

1
2
3
4
5
6
7
<tjml>
  <m-body>
    <m-wrap width="600">
      <!-- контент письма -->
    </m-wrap>
  </m-body>
</tjml>

Здесь роли компонентов распределяются следующим образом:

  • <tjml> — корневой контейнер, обрамляющий весь код;

  • <m-body> — основное тело письма, которое содержит весь его контент;

  • <m-wrap> — обёртка, отвечающая за ширину, отступы, фон, выравнивание и другие параметры.

Для построения многоколоночной структуры в письме могут использоваться два типа композиции контента. Они определяют, как именно блоки будут вести себя на мобильных устройствах:

  • Неперестраиваемые (резиновые) блоки. Здесь элементы остаются в одной строке. За это отвечает компонент <m-row>: он обрамляет блоки <m-column>, которые масштабируются в мобильных клиентах.

  • Перестраиваемые блоки. Это компоненты <m-box>, которые обрамляются с помощью <m-boxes>. В мобильной версии письма они автоматически выстраиваются друг под другом, если не помещаются в одну строку.

Внутрь структур добавляются контентные блоки, в том числе текст (<m-text>), изображения (<m-img>), кнопки (<m-button>) и другие. Больше деталей о компонентах TJML можно узнать в документации.

Ниже — упрощённый пример того, как может выглядеть письмо, свёрстанное в TJML:

1
2
3
4
5
6
7
8
9
10
<m-body bgcolor="#ffffff" font-family="Arial, sans-serif">
  <m-wrap width="600" padding="20px" bgcolor="#f9f9f9">
    <m-text font-size="20px" color="#333333" align="center">
      Привет! Это письмо собрано на TJML.
    </m-text>
    <m-button href="https://docs.pixcraft.io" bgcolor="#6a66d3" color="#ffffff" border-radius="6px" width="200">
      Узнать больше
    </m-button>
  </m-wrap>
</m-body>

Что делает TJML особенным

Работа с кодом в браузере

Чтобы начать работу с TJML, достаточно открыть онлайн-редактор Playground. Прямо здесь можно верстать и визуально проверять письмо, переключаться между десктопным и мобильным отображением, тестировать тёмную тему и просматривать готовый HTML-код.

Вёрстка письма с помощью TJML в Playground

При этом с TJML можно работать в любом IDE. Для ещё большего комфорта мы:

  • разработали плагин для VS Code, добавляющий автокомплит и подсказки по доступным компонентам и атрибутам;

  • подготовили web-types для продуктов JetBrains (WebStorm/PhpStorm).

HTML и AMP в одном коде

В классическом подходе AMP- и HTML-версии письма — это две независимые разметки, которые верстаются по отдельности. Однако TJML значительно упрощает этот процесс: в рамках разметки фреймворк формирует сразу две версии кода.

Если нужно, чтобы определённый блок отображался только в одной из версий, можно использовать условный рендеринг:

<m-wrap m-if="isAmp"> <!-- контент для AMP --> </m-wrap>

<m-wrap m-if="!isAmp"> <!-- контент для HTML --> </m-wrap>

При этом TJML сам подключает необходимые AMP-компоненты, если они задействованы в коде (например, amp-carousel, amp-form или amp-list).

Отображение в почтовых клиентах

Одним из основных преимуществ TJML является продуманный подход к совместимости с различными почтовыми клиентами, включая Outlook и Яндекс Почту:

  • Десктопная версия Outlook использует движок рендеринга, где современные CSS-свойства не работают. TJML автоматически добавляет VML-блоки и условные комментарии, чтобы фоны, выравнивание и отступы корректно отображались даже в старых версиях клиента.

  • Яндекс Почта, в свою очередь, не поддерживает медиа-запросы. TJML формирует структуру так, чтобы сохранить адаптивность даже без них.

Проще говоря, TJML убирает из процесса рутину, связанную с кросс-клиентной адаптацией. Вопросы совместимости и корректного отображения решаются на уровне фреймворка.

Контроль веса и оптимизация кода

В email-маркетинге вес писем не менее значим, чем их наполнение. К примеру, Gmail автоматически обрезает письма, если их размер превышает 102 КБ, что может повлиять на вёрстку и работоспособность трекинговых пикселей.

TJML предупредит, если текущий размер кода превышает рекомендуемое значение. При необходимости можно запустить встроенную оптимизацию, чтобы удалить лишние пробелы, переносы и неиспользуемые стили. В результате вы получите компактный и стабильный код рассылки, который корректно отображается и не обрезается в почтовых клиентах.

Проверка ошибок и типографика

В процессе работы TJML проверяет структуру письма и корректность вложенности m-элементов. Если обнаружатся нарушения, фреймворк предупредит пользователя о них.

Дополнительно в TJML предусмотрен автоматический типограф: он расставляет неразрывные пробелы, чтобы убрать висячие союзы и предлоги. Благодаря этому письмо выглядит аккуратно не только технически, но и визуально.

Вёрстка пиксель в пиксель

Чтобы между дизайн-макетом и вёрсткой не было визуальных расхождений, в TJML предусмотрен инструмент Pixel Perfect. Работает он так: для проверки письма необходимо загрузить макет в графическом формате (например, PNG или JPG). Затем нужно прописать тег и атрибут с указанием адреса:

<tjml pixel-perfect="img/maket.png">

После этого необходимо совместить макет с вашей вёрсткой, указав относительное смещение, и выбрать режим наложения (прозрачность или вычитание).

Как автоматизировать вёрстку с ChatGPT

Чтобы верстать письма на TJML было ещё проще, мы обучили специальную версию ChatGPT работе с фреймворком. Она помогает создавать письма буквально по запросу. Достаточно сформулировать описание, и уже через несколько секунд вы получите TJML-код, который сразу можно добавлять в редактор и адаптировать под задачу.

Генерация TJML-письма

Но функционал специальной версии ChatGPT не ограничивается только этим. Помимо генерации она:

  • умеет вносить правки в существующий код на основе текстового описания;

  • помогает учиться работе с TJML: объяснять назначение тегов и подсказывать, какие атрибуты стоит использовать в разных сценариях.

Результаты и эффективность

Фреймворк уже прошёл проверку в реальных условиях и может использоваться в рабочих проектах.

В частности, мы помогали внедрять TJML в ежедневную работу одного из крупных российских маркетинговых агентств. Здесь на начальных этапах фреймворк дал заметный рост производительности. Даже при создании сложных писем средняя скорость вёрстки увеличилась более чем на 50%, а при создании AMP-писем — в среднем в 1,5 раза без потери качества.

Следующий показатель — чистота и компактность разметки. В сравнительных тестах при использовании TJML код весил 13,5 КБ, тогда как аналог на MJML — более 22 КБ. Меньший вес обеспечивает более быструю загрузку и снижает риск обрезки письма в Gmail.

Ещё одно преимущество TJML — низкий порог входа. Фреймворк позволяет сосредоточиться на структуре и дизайне письма, не углубляясь в тонкости адаптации под множество почтовых клиентов. Наконец, одним из главных аргументов в пользу TJML остаётся уже упомянутая стабильность отображения, в том числе в наиболее требовательных к вёрстке email-клиентах.

Заключение

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

Кстати, если вы хотите прокачать навыки в email-маркетинге, загляните в наш Telegram-канал. Там мы делимся полезными материалами, лайфхаками и идеями для работы.

Поделиться: