Skip to main content
De widget wordt weergegeven als een glasachtige balk met ingebouwde lichte en donkere thema’s. Aanpassing is beschikbaar op drie niveaus: props voor veelvoorkomende opties, aangepaste CSS-eigenschappen voor thematisering en CSS-klasse-overschrijvingen voor volledige controle.
Deze stijlopties zijn van toepassing op de vooraf gebouwde widget die wordt weergegeven door de React-component ThunderPhoneWidget en de CDN-methode ThunderPhone.mount(). Als je een volledig aangepaste UI nodig hebt, gebruik dan in plaats daarvan de headless hook.

Thema’s

De prop theme bepaalt het kleurenschema van de widget. Deze voegt een klasse tp--light of tp--dark toe aan de hoofdcontainer van de widget:
Beide thema’s gebruiken het glasachtige balkontwerp met achtergrondvervaging en subtiele transparantie.

Aangepaste CSS-eigenschappen

De widget biedt aangepaste CSS-eigenschappen (variabelen) die je kunt overschrijven om kleuren te wijzigen zonder afzonderlijke klassen aan te passen. Ze worden gedefinieerd door de themaklasse (.tp--light of .tp--dark) die op de .tp-widget-root wordt toegepast:

Aangepaste eigenschappen overschrijven

Stel de accentkleur in via de primaryColor-prop:
--tp-accent wordt ingesteld als een inline stijl via de primaryColor-prop, dus overschrijvingen van --tp-accent in stylesheets hebben geen effect. Wijzig de accentkleur met de prop. Alle andere aangepaste eigenschappen kun je in CSS overschrijven.
Overschrijf de andere aangepaste eigenschappen met CSS. Gebruik een selector met twee klassen (.tp-widget.tp--light / .tp-widget.tp--dark), zodat je regel zwaarder weegt dan de themaklasse die de standaardwaarden definieert, ongeacht de volgorde van de stylesheet:

CSS-klassen

Alle widgetklassen hebben het voorvoegsel tp- om conflicten met je bestaande stijlen te voorkomen.

Voorbeelden

Aangepast accent via props

De eenvoudigste manier om de widget van je merk te voorzien:

Aangepaste kleuren via CSS

Overschrijf de aangepaste eigenschappen voor volledige controle over de kleuren. Onthoud dat het accent afkomstig is van de prop primaryColor, niet van CSS:

Aangepast formaat

Maak de widget groter of kleiner door de afmetingen van de balk, knoppen en tekst aan te passen:

De tekstlabels verbergen

Alle tekst van de widget bevindt zich in .tp-meta. Verberg deze volledig zodat alleen de golfvorm en knoppen overblijven:
Of verberg afzonderlijke onderdelen:
Het inactieve label bevindt zich in .tp-name/.tp-sub, niet in .tp-status — als je alleen .tp-status verbergt, wordt de titel nog steeds weergegeven wanneer de widget inactief is.

Thema-specifieke overschrijvingen

Richt je op een specifiek thema met de themaklasse:

Afbakenen met className

Wanneer je de React-component gebruikt, geef je een prop className door om je overschrijvingen te beperken tot een specifieke widgetinstantie:
Richt je vervolgens in je CSS op die klasse:
Hiermee kun je meerdere widgetinstanties met verschillende stijlen op dezelfde pagina hebben. Geef elke instantie een eigen accent via de prop primaryColor (CSS kan --tp-accent niet overschrijven — deze wordt inline ingesteld).

Volledig aangepaste UI

Als CSS-overschrijvingen niet voldoende zijn, geeft de headless hook je volledige controle. Je levert alle HTML en styling, terwijl useThunderPhone de spraaksessie afhandelt. De hook biedt ook audioLevelRef voor het bouwen van audio-reactieve visualisaties, zoals golfvormen.
De headless hook is de juiste keuze wanneer je audio-reactieve animaties, aangepaste lay-outs of integratie met een bestaande componentbibliotheek nodig hebt. CSS-overschrijvingen en aangepaste eigenschappen zijn beter geschikt voor snelle aanpassingen aan het thema.