Кольори, шрифт і тема
Колір бренду, акцент, власні кольори поверхонь, радіус кутів, шрифт, світла й темна теми, шаблони та власний CSS — і як віджет забезпечує читабельність тексту.
Віджет використовує колір вашого бренду, ваш шрифт і, за бажанням, цілий набір власних кольорів. Він коригує їх так, щоб кожен текст залишався читабельним на кожній поверхні. Ви обираєте колір, а віджет дбає про контраст.
Усі налаштування з цієї сторінки розташовані за адресою /app/projects/{id} на вкладці Вигляд у розділі Оформлення. Виняток — тема (світла, темна, автоматична): вона на вкладці Встановлення в розділі Основне.
Майстер оформлення
Угорі розділу Оформлення майстер проведе вас через чотири кроки:
- Вигляд — 18 готових шаблонів із фільтрами «Світлий», «Темний», «Професійний», «Грайливий», «Затишний», «Холодний» і «Мінімальний». Серед них, наприклад, Klar, Nacht, Boutique, Support-Desk, Minimal, Corporate, Ozean, Graphit та Espresso.
- Кольори — основний колір та акцент, швидкий вибір із восьми пар кольорів і вибір поверхонь: стандартні, світлі, темні або власні.
- Форма — стиль вікна, радіус кутів, форма й розмір кнопки чату.
- Готово — підсумок.
Сам майстер нічого не зберігає. Він лише заповнює поля під ним; дані зберігаються тільки після натискання Зберегти. Мініатюра в майстрі — це ескіз. Справжній віджет із вашими значеннями показано в попередньому перегляді розділу Головний екран віджета.
Для точного налаштування розгорніть Усі налаштування окремо. Шрифт і власний CSS доступні лише там.
Поля
- Основний колір — колір вашого бренду у форматі
#rrggbb. Ним забарвлюються кнопка чату, кнопка надсилання, посилання, фокус і (у суміші) бульбашки повідомлень відвідувачів. Без власного значення: фіолетовий#6D28D9у світлій темі,#9B7BFFу темній. - Акцент — другий колір у форматі
#rrggbb, наприклад для лічильників і виділень. Без власного значення:#BE185Dу світлій темі,#FF6B8Aу темній. - Радіус кутів (пікс.) — від 0 до 28. 0 означає прямі кути. Стандартне значення — 12.
- Сімейство шрифтів (CSS) — CSS-значення на кшталт
Inter, system-ui, sans-serif, щонайбільше 120 символів. Віджет не завантажує файлів шрифтів. Тому використовуйте шрифт, який ваша сторінка вже завантажує, або системний. Порожнє поле означає системні шрифти пристрою. - Шаблони — одне натискання одразу заповнює кольори, поверхні, радіус, кнопку чату й стиль. Нічого не зберігається, доки ви не натиснете Зберегти.
Дійсні лише кольори у форматі #rrggbb із шістьма цифрами. Скорочення на кшталт #f00 або rgb(…) відкидаються, натомість застосовується стандартне значення.
Поверхні й текст
У розділі Поверхні й текст за потреби можна задати ще п’ять кольорів. Кожен має прапорець Власний колір:
- Тло — поверхня вікна.
- Поверхня бульбашок — бульбашки повідомлень команди й асистента.
- Текст — колір тексту.
- Другорядний текст — час, примітки, другі рядки.
- Лінії — роздільники й рамки.
Без прапорця віджет використовує набір кольорів відповідно до сайту — світлий або темний. Значення поля тоді є лише початковим орієнтиром, а не показником фактичного кольору. Із прапорцем застосовується ваш колір.
Якщо ви задаєте лише власне тло, віджет виводить із нього решту: поверхню бульбашок, текст, другорядний текст і лінії.
Читабельність: що коригує віджет
Клієнти обирають колір бренду, а не колір із гарантованою читабельністю. Тому віджет перевіряє кожну комбінацію тексту й поверхні на контраст щонайменше 4,5:1. Це поріг WCAG 2.x для звичайного тексту.
- Текст на кольорі бренду (наприклад на кнопці надсилання) автоматично стає білим або майже чорним — залежно від того, що читабельніше.
- Колір бренду як колір тексту (посилання, виділення) невеликими кроками освітлюється або затемнюється до контрасту 4,5:1. Поверхні, тобто кнопка чату й кнопка надсилання, зберігають ваш колір без змін.
- Бульбашка відвідувача — суміш кольору бренду й тла. Якщо контрасту бракує, віджет зменшує в ній частку кольору бренду.
- Власні кольори тексту та другорядного тексту проходять ту саму перевірку на кожній поверхні, де вони з’являються.
Що саме скориговано, показано в обліковому записі безпосередньо під формою в рядку Скориговано для читабельності тексту. Тому світло-жовтий текст у віджеті виглядає темнішим за введений колір, і там можна побачити причину.
На своїй сторінці ви також можете самостійно отримати виміряні значення:
ReactiveChat('brandCheck'); // list of pairings with measured and required contrast
ReactiveChat('brandTokens'); // the colours actually used in the widget
Світла, темна чи як на сайті
У розділі Встановлення → Основне → Тема віджета можна обрати:
- як на сайті (інакше — як у системі відвідувача) — стандартний варіант. Віджет визначає, світла ваша сторінка чи темна, та пристосовується.
- світла — завжди світла.
- темна — завжди темна.
За автоматичного вибору віджет послідовно перевіряє:
- колір тла сторінки посередині екрана,
- CSS-значення
color-schemeна<html>, якщо це точноdarkабоlight, - поширені перемикачі на
<html>або<body>, наприклад класdarkчиdata-theme="dark", - насамкінець — системне налаштування відвідувача.
Якщо сторінка перемикається між світлою й темною темами, віджет робить те саме. Він також повторює перевірку під час відкриття вікна.
У коді тема задається у фрагменті вбудовування або під час роботи. Це має пріоритет над налаштуванням облікового запису:
<script src="https://cdn.reactive.chat/loader.js"
data-rc-site-key="SITE_KEY"
data-rc-theme="dark"
async></script>
ReactiveChat('setTheme', 'dark'); // 'light', 'dark' or 'auto'
Через setTheme віджет запам’ятовує вибір у браузері відвідувача. setTheme('auto') знову його видаляє. Це підходить для власного перемикача світлої й темної тем на вашій сторінці.
Задавання кольорів у коді
Для окремих сторінок, наприклад кампанії, оформлення можна задати у фрагменті вбудовування або під час роботи. Назви полів:
primary,accent— колір бренду й акцент,bg,surface,text,textDim,line— п’ять поверхонь,onPrimary— колір тексту на кольорі бренду (інакше визначається автоматично),radius— від 0 до 28,font— CSS-значення шрифту,launcherтаstil— див. Кнопка чату та Вікно чату.
ReactiveChat('setBrand', { primary: '#0F766E', accent: '#F59E0B', radius: 8 });
setBrand одразу перераховує контраст і похідні кольори без повторної побудови віджета. null знову прибирає значення, після чого застосовується стандартне.
У фрагменті вбудовування атрибут називається data-rc-brand і приймає JSON:
<script src="https://cdn.reactive.chat/loader.js"
data-rc-site-key="SITE_KEY"
data-rc-brand='{"primary":"#0F766E","accent":"#F59E0B"}'
async></script>
Важливо: що має пріоритет — фрагмент чи обліковий запис? Фрагмент, створений у вашому обліковому записі, уже містить колір бренду, радіус, форму й розмір кнопки чату. Це лише початковий стан, щоб кнопка одразу мала правильний колір. Щойно віджет отримує налаштування із сервера, повністю застосовуються налаштування облікового запису.
Але якщо ви додаєте до data-rc-brand будь-яке інше поле, наприклад accent, stil або підпис, оформлення у фрагменті вважається власним оформленням цієї сторінки. Тоді воно має пріоритет над обліковим записом. З облікового запису на цій сторінці далі діє лише режим показу «Лише через власні посилання». До того ж сторінка не бере участі в A/B-тестах.
Якщо ви змінюєте колір бренду в обліковому записі, після цього ще раз скопіюйте фрагмент вбудовування з розділу Встановлення. Інакше під час завантаження сторінки ненадовго з’являтиметься старий колір.
Як працює сам фрагмент та які є інші способи (window.ReactiveChatSettings, ReactiveChat('boot', …)), описано в розділі Технічна інтеграція.
Власний CSS
У розділі Усі налаштування окремо → Власний CSS ви пишете CSS, який застосовується останнім, після всіх інших правил.
- Щонайбільше 20 000 символів.
@importвидаляється і під час збереження, і у віджеті.- CSS діє лише всередині віджета. Він працює в ізольованій області (shadow DOM) і не може змінювати вашу сторінку. І навпаки: CSS сторінки не досягає віджета. Це належне місце для нього.
- Після цього віджет знову примусово застосовує два правила: видиме кільце фокусу для користувачів клавіатури та кнопку закриття в заголовку. Приховування виходу з чату стилями створює пастку для користувачів клавіатури.
- Внутрішні назви класів віджета не є гарантованим інтерфейсом. Після змін перевіряйте CSS у попередньому перегляді.
.rc-launcher { box-shadow: 0 0 0 4px #fff; }
У коді те саме можна зробити через customCss, наприклад у ReactiveChat('boot', { customCss: '…' }) або атрибуті data-rc-custom-css.
Логотип у заголовку вікна
Найпростіше ввести логотип в обліковому записі: Проєкт → Вигляд → Оформлення, поле Логотип (адреса). Він з’явиться в заголовку вікна чату щонайпізніше за хвилину після збереження.
У коді через logo також можна задати висоту, альтернативний текст і розташування, наприклад логотип у кнопці чату. Логотип із коду має пріоритет над полем облікового запису:
<script src="https://cdn.reactive.chat/loader.js"
data-rc-site-key="SITE_KEY"
data-rc-logo='{"src":"https://www.example.com/logo.svg","alt":"Example Ltd","height":24,"placement":"header"}'
async></script>
src— адреса зhttps://або зображення якdata:image/…. Невеликий SVG як адресаdata:заощаджує один запит.alt— альтернативний текст.height— висота в пікселях, від 12 до 40, стандартне значення — 20.placement—header(заголовок, стандартне значення),launcher(у кнопці чату) абоboth.
Натомість логотип на головному екрані легко задати в обліковому записі, див. Головний екран чату.
Якщо щось виглядає не так, як очікувалося
- Колір темніший або світліший за введений: це захист контрасту. Рядок Скориговано під формою показує, що змінено.
- Зміни з облікового запису не застосовуються: чи містить фрагмент
data-rc-brandз додатковими полями? Тоді він має пріоритет. Крім того, після збереження може минути до хвилини. - Під час завантаження ненадовго з’являється інший колір: після зміни кольору скопіюйте фрагмент ще раз.
- Шрифт не застосовується: чи завантажує ваша сторінка цей шрифт? Віджет не завантажує файлів шрифтів.
Оновлено: