Редизайн списка слоёв в редакторе Craftum

Задачи:

Структура компонентов

Наследование свойств

Логика перетаскивания в панели слоёв

Логика выделения в панели слоёв

Логика переименования в панели слоёв

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

Контекст

Craftum — конструктор сайтов с визуальным редактором, в котором пользователи собирают страницы из блоков и элементов: настраивают стили, сетки, позиционирование, анимации и публикуют готовые сайты.

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

На тот момент в редакторе была «панель слоёв», но по сути она являлась плоским списком. Вложенности не существовало: можно было только объединить элементы в группу, но сама группа не имела собственных свойств (кроме совместного позиционирования и вращения) и не решала главную проблему — навигацию и управление сложными структурами.

Ограничения проявлялись сразу, как только пользователь пытался собрать что-то чуть сложнее лендинга из пары блоков: появлялись десятки слоёв, в которых трудно ориентироваться, сложно быстро найти нужный элемент, а некоторые сценарии (например, оборачивание части контента в «секцию» с фоном/отступами) требовали костылей.

Целью редизайна было приблизить редактор к привычным для дизайнеров и мейкеров подходам (Figma, Framer, Webflow и т. п.): дать неограниченную вложенность, ввести контейнеризацию как базовый паттерн и привести панель слоёв в вид, подходящий для ежедневной работы с большими деревьями.

Процесс

Я начал с двух направлений: с одной стороны — сбор проблем и типовых сценариев пользователей (где именно «ломается» работа с плоским списком), с другой — изучение решений в инструментах, где панели слоёв и иерархия доведены до абсолюта: Figma, Framer, Webflow и других.

После ресёрча я зафиксировал базовые требования к новой модели:

Новый элемент: «Контейнер»

Ключевым решением стал новый элемент «Контейнер» — аналог Frame в Figma. Он решал сразу две проблемы: давал предсказуемую структуру и открывал путь к собственным параметрам, которых у «группы» не было.

У контейнера появились собственные свойства: паддинги, фон, бордер, радиусы и другие параметры оформления (по сути, привычный для пользователей Figma набор). Это позволило легко собирать «секции» и карточки, делать сложную вложенность и не плодить технические слои ради подложек и отступов.

В дальнейшем контейнеры открыли нам путь к следующему шагу: внедрению раскладки на основе CSS‑flexbox (аналог Auto Layout в Figma) и относительных размеров/отступов (проценты, em, rem и т. п.). До этого пользователи оперировали почти исключительно абсолютными значениями в px и вручную выставляли позиции/размеры на каждом брейкпоинте.

Неограниченная вложенность

Дальше я пересобрал правила вложенности и операции над деревом:

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

Редизайн панели слоёв

Параллельно с новой моделью я обновил интерфейс списка слоёв в сайдбаре: сделал его компактнее и «профессиональнее» для работы с большими деревьями. Здесь я ориентировался на баланс между плотностью информации и читаемостью: чтобы дерево быстро сканировалось взглядом и не разъезжалось по вертикали.

Реализацию разделили на два этапа: сначала редизайн панели слоёв, затем добавление нового элемента «Контейнер» и логики дерева. Вся разработка заняла три недели работы одного сеньор‑фронтендера. Мы держали плотную связь, регулярно созванивались, синхронизировали поведение и сверяли детали на реальных сценариях.

Результат

Редактор получил полноценную иерархию слоёв и новый базовый строительный блок — «Контейнер». Пользователи смогли собирать сложные структуры без обходных решений: появилась предсказуемая вложенность, стало проще оборачивать контент в секции/карточки и управлять группами элементов через свойства контейнера.

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

По отзывам профессиональной аудитории скорость создания «сложных/креативных» макетов выросла в 2–5 раз, а конструктор заметно реже стали называть «слишком примитивным».

Craftum 2024

✏ Заметка опубликована


Предыдущая

Как мы шрифты добавляли в редактор Craftum

Следующая

Редизайн панели свойств в редакторе Craftum

Другие заметки