Эти параметры стилизации применяются к готовому виджету, отображаемому React-компонентом
ThunderPhoneWidget и CDN-методом ThunderPhone.mount(). Если вам нужен полностью кастомный интерфейс, используйте headless-хук.Темы
Свойствоtheme управляет цветовой схемой виджета. Оно применяет класс tp--light или tp--dark к корневому элементу виджета:
Обе темы используют стекломорфный дизайн панели с размытием фона и лёгкой прозрачностью.
Пользовательские свойства CSS
Виджет предоставляет пользовательские свойства CSS (переменные), которые можно переопределить, чтобы изменить цвета без изменения отдельных классов. Они определяются классом темы (.tp--light или .tp--dark), применённым к корневому элементу .tp-widget:
Переопределение пользовательских свойств
Задайте акцентный цвет через пропprimaryColor:
.tp-widget.tp--light / .tp-widget.tp--dark), чтобы ваше правило имело приоритет над классом темы, определяющим значения по умолчанию, независимо от порядка таблиц стилей:
CSS-классы
Все классы виджета имеют префиксtp-, чтобы избежать конфликтов с вашими существующими стилями.
Примеры
Пользовательский акцент через props
Самый простой способ брендировать виджет:Пользовательские цвета через CSS
Переопределите пользовательские свойства для полного контроля над цветами. Помните, что акцентный цвет задаётся свойствомprimaryColor, а не CSS:
Пользовательский размер
Увеличьте или уменьшите виджет, настроив размеры панели, кнопок и текста:Скрытие текстовых меток
Весь текст виджета находится в.tp-meta. Полностью скройте его, чтобы оставить только звуковую волну и кнопки:
Метка в режиме ожидания находится в
.tp-name/.tp-sub, а не в .tp-status — если скрыть только .tp-status, заголовок всё равно будет отображаться, когда виджет находится в режиме ожидания.Переопределения для конкретной темы
Настройте определённую тему с помощью класса темы:Область действия с className
При использовании React-компонента передайте свойствоclassName, чтобы ограничить область действия переопределений конкретным экземпляром виджета:
primaryColor (CSS не может переопределить --tp-accent — он задаётся встроенно).
Полностью пользовательский интерфейс
Если переопределений CSS недостаточно, headless-хук предоставляет полный контроль. Вы предоставляете весь HTML и стили, аuseThunderPhone управляет голосовой сессией. Хук также предоставляет audioLevelRef для создания визуализаций, реагирующих на звук, например звуковых волн.