Estas opções de estilo se aplicam ao widget pré-configurado renderizado pelo componente React
ThunderPhoneWidget e pelo método CDN ThunderPhone.mount(). Se precisar de uma interface completamente personalizada, use o hook headless.Temas
A proptheme controla o esquema de cores do widget. Ela aplica uma classe tp--light ou tp--dark à raiz do widget:
Ambos os temas usam o design de barra glassmórfica com desfoque de fundo e transparência sutil.
Propriedades CSS Personalizadas
O widget expõe propriedades CSS personalizadas (variáveis) que você pode substituir para alterar as cores sem modificar classes individuais. Elas são definidas pela classe de tema (.tp--light ou .tp--dark) aplicada à raiz .tp-widget:
Substituindo propriedades personalizadas
Defina a cor de destaque pela propprimaryColor:
.tp-widget.tp--light / .tp-widget.tp--dark) para que sua regra tenha prioridade sobre a classe de tema que define os padrões, independentemente da ordem da folha de estilos:
Classes CSS
Todas as classes do widget têm o prefixotp- para evitar conflitos com seus estilos existentes.
Exemplos
Cor de destaque personalizada via props
A maneira mais simples de aplicar a marca ao widget:Cores personalizadas via CSS
Substitua as propriedades personalizadas para ter controle total das cores. Lembre-se de que a cor de destaque vem da propprimaryColor, não do CSS:
Tamanho personalizado
Aumente ou diminua o widget ajustando as dimensões da barra, dos botões e do texto:Ocultar os rótulos de texto
Todo o texto do widget fica em.tp-meta. Oculte-o completamente para manter apenas a forma de onda e os botões:
O rótulo de inatividade fica em
.tp-name/.tp-sub, não em .tp-status — ocultar apenas .tp-status ainda exibe o título quando o widget está inativo.Substituições específicas por tema
Direcione um tema específico com a classe do tema:Escopo com className
Ao usar o componente React, passe uma propclassName para limitar suas substituições a uma instância específica do widget:
primaryColor (o CSS não pode substituir --tp-accent — ela é definida inline).
UI totalmente personalizada
Se as substituições de CSS não forem suficientes, o hook headless oferece controle total. Você fornece todo o HTML e a estilização, enquantouseThunderPhone gerencia a sessão de voz. O hook também fornece audioLevelRef para criar visualizações reativas ao áudio, como formas de onda.