Skip to main content
Il widget viene visualizzato come una barra glassmorfica con temi chiaro e scuro integrati. La personalizzazione è disponibile su tre livelli: prop per le opzioni comuni, proprietà personalizzate CSS per i temi e override delle classi CSS per il controllo completo.
Queste opzioni di stile si applicano al widget predefinito visualizzato dal componente React ThunderPhoneWidget e dal metodo CDN ThunderPhone.mount(). Se hai bisogno di un’interfaccia completamente personalizzata, usa invece l’hook headless.

Temi

La prop theme controlla lo schema colori del widget. Applica una classe tp--light o tp--dark alla radice del widget:
Entrambi i temi utilizzano il design a barra glassmorfica con sfocatura dello sfondo e trasparenza delicata.

Proprietà personalizzate CSS

Il widget espone proprietà personalizzate CSS (variabili) che puoi sovrascrivere per modificare i colori senza intervenire sulle singole classi. Sono definite dalla classe del tema (.tp--light o .tp--dark) applicata alla radice .tp-widget:

Sovrascrivere le proprietà personalizzate

Imposta il colore di accento tramite la prop primaryColor:
--tp-accent viene impostata come stile in linea dalla prop primaryColor, quindi le sovrascritture di --tp-accent nel foglio di stile non hanno effetto. Modifica il colore di accento con la prop. Ogni altra proprietà personalizzata può essere sovrascritta in CSS.
Sovrascrivi le altre proprietà personalizzate con CSS. Usa un selettore a due classi (.tp-widget.tp--light / .tp-widget.tp--dark) affinché la tua regola prevalga sulla classe del tema che definisce i valori predefiniti, indipendentemente dall’ordine del foglio di stile:

Classi CSS

Tutte le classi del widget hanno il prefisso tp- per evitare conflitti con gli stili esistenti.

Esempi

Accento personalizzato tramite props

Il modo più semplice per personalizzare il brand del widget:

Colori personalizzati tramite CSS

Sovrascrivi le proprietà personalizzate per avere il pieno controllo dei colori. Ricorda che l’accento proviene dalla prop primaryColor, non dal CSS:

Dimensioni personalizzate

Ingrandisci o rimpicciolisci il widget regolando le dimensioni della barra, dei pulsanti e del testo:

Nascondere le etichette di testo

Tutto il testo del widget si trova in .tp-meta. Nascondilo completamente per mantenere solo la forma d’onda e i pulsanti:
In alternativa, nascondi singole parti:
L’etichetta inattiva si trova in .tp-name/.tp-sub, non in .tp-status — nascondere solo .tp-status mostra comunque il titolo quando il widget è inattivo.

Sovrascritture specifiche per tema

Indirizza un tema specifico con la classe del tema:

Ambito con className

Quando usi il componente React, passa una prop className per limitare le sovrascritture a una specifica istanza del widget:
Quindi indirizza quella classe nel tuo CSS:
Questo ti consente di avere più istanze del widget nella stessa pagina con stili diversi. Assegna a ogni istanza il proprio accento tramite la relativa prop primaryColor (il CSS non può sovrascrivere --tp-accent — viene impostato inline).

Interfaccia utente completamente personalizzata

Se le sovrascritture CSS non sono sufficienti, l’hook headless ti offre il pieno controllo. Fornisci tutto l’HTML e lo stile, mentre useThunderPhone gestisce la sessione vocale. L’hook fornisce inoltre audioLevelRef per creare visualizzazioni reattive all’audio, come le forme d’onda.
L’hook headless è la scelta giusta quando ti servono animazioni reattive all’audio, layout personalizzati o l’integrazione in una libreria di componenti esistente. Le sovrascritture CSS e le proprietà personalizzate sono più adatte per rapide modifiche al tema.