LockStock docs

Брендирование

Как сделать виджет частью вашего магазина — от выбора цвета до собственного CSS.

Виджет работает в собственном Shadow DOM: CSS вашего сайта не может его сломать, а его CSS не задевает ваш сайт. Чтобы виджет выглядел как ваш, есть три уровня настройки, каждый дополняет предыдущий.

Уровень 1 — настройки

Задаются в личном кабинете в разделе Внешний вид, там же живой предпросмотр чата, результатов поиска и кнопки. Цвета указываются в формате #1d4ed8.

НастройкаЗначенияПояснение
modelight, dark, autoauto повторяет системную тему покупателя
accentцветЦвет вашего бренда. Им отмечены действия ИИ, главные кнопки, активные фильтры и кнопка чата. Мы его не меняем
accentForegroundцвет или пустоЦвет текста на акценте. Если пусто, выберем белый или почти чёрный — что лучше читается
background, foregroundцвет или пустоЦвет панелей и текста. Пусто — наши значения для выбранного режима. Оттенки тегов, наведения и границ рассчитываются из них
radius0–32 pxБазовое скругление, остальные скругления масштабируются от него
font.familydefault, system, inherit, customdefault — наш Manrope, inherit — шрифт вашей страницы, custom — шрифт по ссылке font.url
font.urlссылка https:// на .woff2Для custom. Только https: файл по http браузер не загрузит на сайте с https. Лучше вариативный шрифт: один файл покрывает все начертания
logoUrlссылкаЛоготип магазина в шапке чата вместо знака ИИ: картинка по https, квадратная, от 80×80; при CSP разрешите её хост в img-src
assistantNameтекст до 40 символовПоказывается в заголовке чата
launcher.enabledtrue, falsefalse скрывает нашу кнопку: открывайте чат своей кнопкой через lockstock('open')
launcher.positionright, leftВ каком нижнем углу
launcher.offsetX, launcher.offsetY0–200 pxОтступ от края и от низа
launcher.stylefield, pillВид кнопки на компьютере. field (по умолчанию) похожа на поле ввода, в котором по очереди сменяются ваши примеры запросов — их задают в личном кабинете в разделе Внешний вид, они же показываются в пустой строке поиска; пишите их так, как спрашивают покупатели («коляска для самолёта»). pill — компактная кнопка с подписью. На телефоне в обоих случаях круглая кнопка с иконкой
launcher.labelтекст до 30 символовНазвание кнопки для экранного диктора, текст компактной кнопки и текст поля, если примеров нет. Пусто — «Спросить ИИ»
customCssCSS до 20 000 символовСм. уровень 3

Уровень 2 — CSS-переменные

Любую из этих переменных можно переопределить в стилях вашего сайта. !important не нужен: ваши правила важнее значений виджета.

У виджета на вашей странице три хоста: [data-lockstock-root] — подсказки, результаты, полноэкранный слой поиска и чат; [data-lockstock-launcher] — кнопка чата; lockstock-search — встроенное поле поиска. Задавайте переменные бренда сразу на всех трёх одним правилом. Подсказки и результаты под встроенным полем открываются в [data-lockstock-root], поэтому цвет, заданный только на lockstock-search, оставит их в старом цвете.

[data-lockstock-root],
[data-lockstock-launcher],
lockstock-search {
  --lockstock-accent: #0f766e;
  --lockstock-accent-foreground: #ffffff;
}

/* Поднять кнопку над баннером cookie */
[data-lockstock-launcher] {
  --lockstock-launcher-y: 96px;
}
ПеременнаяГдеЧто задаёт
--lockstock-accentвсе хостыЦвет бренда; мягкие оттенки рассчитываются из него автоматически
--lockstock-accent-foregroundвсе хостыТекст и иконки на цвете бренда
--lockstock-backgroundroot, поле поискаПанели и карточки
--lockstock-foregroundroot, поле поискаОсновной текст
--lockstock-mutedroot, поле поискаТеги, наведение и второстепенные поверхности
--lockstock-borderroot, поле поискаГраницы
--lockstock-radiusroot, поле поискаБазовое скругление в px
--lockstock-fontroot, поле поискаНабор шрифтов
--lockstock-launcher-xlauncherОтступ от бокового края
--lockstock-launcher-ylauncherОтступ от нижнего края

Эти имена — стабильный контракт: мы можем добавлять переменные, а о переименовании или удалении предупредим заранее.

Уровень 3 — собственный CSS

customCss применяется последним внутри Shadow DOM виджета — подсказки, результаты, полноэкранные слои, чат и каждое встроенное поле поиска, — поэтому им можно изменить там что угодно. На кнопку чата он не действует: её настраивайте уровнями 1 и 2. Ограничения: до 20 000 символов и без @import. Некорректные правила браузер просто пропустит.

Выбирайте элементы по этим атрибутам. Они — стабильный контракт, как и переменные; классы и остальная разметка — нет.

/* Квадратные карточки товаров с заметной рамкой в результатах */
[data-lockstock-results] [data-lockstock-product] {
  border-radius: 0;
  border-color: var(--lockstock-foreground);
}

/* Скрыть чипы, которые ИИ добавил сам */
[data-lockstock-chip="inferred"] {
  display: none;
}
АтрибутЗначенияЭлемент
data-lockstock-suggestСписок подсказок
data-lockstock-resultsfast, understanding, streaming, doneРезультаты поиска: панель на компьютере, список на телефоне
data-lockstock-summaryskeleton, streaming, doneКомментарий ИИ над результатами
data-lockstock-chipactive, inferred, removedЧип фильтра
data-lockstock-steprunning, doneШаг, который ИИ выполняет, разбирая запрос
data-lockstock-sortПереключатель сортировки
data-lockstock-productКарточка, строка или мини-карточка товара. Значение внутреннее: выбирайте по наличию атрибута
data-lockstock-calloutreason, tradeoff«Почему подходит» или честный минус товара
data-lockstock-compare-barПанель сравнения
data-lockstock-search-overlayПолноэкранный слой поиска на компьютере
data-lockstock-mobile-searchПолноэкранный слой поиска на телефоне
data-lockstock-search-fieldНаше поле поиска в полноэкранных слоях
data-lockstock-search-boxСодержимое <lockstock-search>
data-lockstock-toastПодтверждение, например «Добавлено в корзину»
data-lockstock-chatОкно чата
data-lockstock-welcomeПриветственный экран чата
data-lockstock-chat-markai, logoПлитка в шапке чата: знак ИИ или ваш логотип
data-lockstock-messageuser, assistant, operatorСообщение в чате
data-lockstock-chat-textТекст ответа консультанта: абзацы, жирный (strong) и списки (ul, ol)
data-lockstock-stepsЧто сделал консультант, над ответом
data-lockstock-comparisonТаблица сравнения в чате
data-lockstock-reservationform, submitting, doneФорма заявки на резерв
data-lockstock-handoffopen, taken, closedКарточка «Передано оператору»
data-lockstock-handoff-contactform, submitting, doneФорма телефона для обратного звонка под карточкой оператора
data-lockstock-operator-button—Кнопка «Позвать оператора» в шапке чата
data-lockstock-composerПоле ввода сообщения
data-lockstock-page-chipПолоса «Смотрит: …» под шапкой чата на странице товара; покупатель может её убрать
data-lockstock-tryКнопка «Примерить у себя» на карточке товара — в поиске и в чате
data-lockstock-visualizeДиалог «Примерить у себя»: согласие, фото, рамка, результат
data-lockstock-try-frameРамка на фото покупателя, отмечающая место товара
data-lockstock-photo-inputПоле выбора фото в этом диалоге

Экспериментально

Атрибуты чата могут измениться до выхода консультанта.

На этой странице