ThunderPhone 2.0 ir klāt.Sāciet uzreiz — no 2 centiem minūtē.Lasīt paziņojumu

Widget

Stilizēšana

Pielāgojiet ThunderPhone balss logrīka izskatu, izmantojot CSS

Logrīks tiek renderēts kā stikla efekta josla ar iebūvētām gaišo un tumšo motīvu versijām. Pielāgošana ir pieejama trīs līmeņos: rekvizīti bieži lietotām opcijām, CSS pielāgotās īpašības motīvu veidošanai un CSS klašu pārrakstīšana pilnīgai kontrolei.


Motīvi

Rekvizīts theme nosaka logrīka krāsu shēmu. Tas logrīka saknes elementam piešķir klasi tp--light vai tp--dark:

<ThunderPhoneWidget
  publishableKey="pk_live_your_publishable_key"
  theme="dark"
/>
MotīvsKlaseApraksts
'light'tp--lightGaišs fons ar tumšu tekstu. Noklusējums.
'dark'tp--darkTumšs fons ar gaišu tekstu.

Abi motīvi izmanto stikla efekta joslas dizainu ar fona izpludināšanu un smalku caurspīdīgumu.


CSS pielāgotie rekvizīti

Logrīks nodrošina CSS pielāgotos rekvizītus (mainīgos), kurus varat pārrakstīt, lai mainītu krāsas, nemainot atsevišķas klases. Tos nosaka motīva klase (.tp--light vai .tp--dark), kas tiek lietota .tp-widget saknes elementam:

RekvizītsNoklusējums (gaišais)Noklusējums (tumšais)Apraksts
--tp-accent#000#fffAkcenta krāsa: sākšanas poga, viļņu formas joslas, savienojuma punkts, savienojuma statusa teksts. Iestatīta tieši elementā no primaryColor rekvizīta.
--tp-bgrgba(255, 255, 255, 0.82)rgba(15, 15, 15, 0.85)Joslas fons (caurspīdīgs; aizmiglots ar --tp-glass).
--tp-surfacergba(0, 0, 0, 0.04)rgba(255, 255, 255, 0.07)Izslēgšanas pogas fons.
--tp-surface-hoverrgba(0, 0, 0, 0.07)rgba(255, 255, 255, 0.12)Izslēgšanas pogas fons, novietojot kursoru virs tās.
--tp-borderrgba(0, 0, 0, 0.08)rgba(255, 255, 255, 0.1)Joslas un pogu apmales.
--tp-border-hoverrgba(0, 0, 0, 0.14)rgba(255, 255, 255, 0.18)Apmales krāsa, novietojot kursoru virs elementa.
--tp-textrgba(0, 0, 0, 0.88)rgba(255, 255, 255, 0.95)Primārais teksts (virsraksts, aģenta vārds).
--tp-text-2rgba(0, 0, 0, 0.5)rgba(255, 255, 255, 0.55)Sekundārais teksts (apakšvirsraksts, statusa rinda, zvana taimeris).
--tp-glassblur(32px) saturate(180%)blur(32px) saturate(180%)backdrop-filter, kas joslai izveido stikla efektu.
--tp-shadowtrīsslāņu ēnu kopatrīsslāņu ēnu kopaJoslas box-shadow (gredzena + tuvās + tālās kārtas).
--tp-shadow-hovertrīsslāņu ēnu kopatrīsslāņu ēnu kopaDeklarēta pacēlumam, novietojot kursoru virs elementa; pašlaik to nepiemēro neviens noteikums.
--tp-glowinset 0 1px 0 0 rgba(255,255,255,0.5)inset 0 1px 0 0 rgba(255,255,255,0.06)Iekšējais augšējais izcēlums, kas pievienots joslas ēnai.
--tp-connected#059669#34d399Savienotā stāvokļa indikatora krāsa (statusa punkts).
--tp-error#dc2626#fb7185Kļūdas stāvokļa statusa teksta krāsa.
--tp-end-bgrgba(239, 68, 68, 0.08)rgba(251, 113, 133, 0.12)Zvana beigšanas pogas fons.
--tp-end-color#ef4444#fb7185Zvana beigšanas pogas ikonas krāsa.
--tp-end-borderrgba(239, 68, 68, 0.12)rgba(251, 113, 133, 0.15)Zvana beigšanas pogas apmale.
--tp-end-hoverrgba(239, 68, 68, 0.14)rgba(251, 113, 133, 0.2)Zvana beigšanas pogas fons, novietojot kursoru virs tās.
--tp-idle-opacity0.40.3Deklarēta dīkstāves stāvokļa aptumšošanai; pašlaik to nepiemēro neviens noteikums.

Pielāgoto rekvizītu pārrakstīšana

Iestatiet akcenta krāsu, izmantojot primaryColor rekvizītu:

<ThunderPhoneWidget
  publishableKey="pk_live_your_publishable_key"
  primaryColor="#e11d48"
/>

Pārrakstiet pārējos pielāgotos rekvizītus ar CSS. Izmantojiet divu klašu selektoru (.tp-widget.tp--light / .tp-widget.tp--dark), lai jūsu noteikumam būtu augstāka prioritāte nekā motīva klasei, kas nosaka noklusējuma vērtības, neatkarīgi no stila lapu secības:

.tp-widget.tp--light {
  --tp-bg: rgba(0, 0, 0, 0.9);
  --tp-text: rgba(255, 255, 255, 0.95);
  --tp-text-2: rgba(255, 255, 255, 0.55);
  --tp-border: rgba(255, 255, 255, 0.15);
}

CSS klases

Visām logrīka klasēm ir prefikss tp-, lai izvairītos no konfliktiem ar jūsu esošajiem stiliem.

KlaseElementsApraksts
.tp-widgetSaknes ietvarsFiksētas pozīcijas konteiners (position: fixed, stūris tiek iestatīts ar position parametru, z-index: 9999). Ietver motīva klasi un pamata fonta iestatījumus; tam pašam nav vizuāla noformējuma.
.tp--light / .tp--darkMotīva modifikatoriTiek lietoti .tp-widget kopā ar motīvu; definē visus --tp-* pielāgotos rekvizītus.
.tp-barJoslaPati stikla efekta kapsula: fons, fona izpludinājums, apmale, 99px rādiuss, ēna. 300px plata.
.tp-metaTeksta bloksKonteiners visam tekstam -- virsrakstam un apakšvirsrakstam gaidstāves režīmā, aģenta vārdam un statusam zvana laikā.
.tp-namePrimārā etiķeteGaidstāves režīmā rāda title parametru, bet zvana laikā -- pievienotā aģenta vārdu (ja tā nav, title).
.tp-subApakšvirsrakstsRindiņa “Pieejams tagad”, kas tiek rādīta gaidstāves režīmā.
.tp-startGaidstāves zvana pogaApaļā akcenta sākšanas poga (42px). Kā fonu izmanto --tp-accent.
.tp-dotSavienojuma punktsPulsējošs akcenta punkts, kas savienošanās laikā tiek rādīts joslas kreisajā pusē.
.tp-wave / .tp-wave--idleViļņu formaPiecu joslu viļņu forma. --idle pievieno lēnu elpošanas animāciju; zvana laikā joslas reaģē uz audio.
.tp-buttonZvana laikā pieejamās pogasPamata stils zvana laikā pieejamajām vadīklām (42px, noapaļojums 12px).
.tp-button-groupPogas rindaZvana laikā ietver izslēgšanas un beigšanas pogas.
.tp-button--startSavienojuma pogas variantsAkcenta krāsas variants, kas tiek rādīts zvana sākšanas laikā.
.tp-button--muteSkaņas izslēgšanas slēdzisZvana laikā izslēdz/ieslēdz mikrofonu. Izmanto --tp-surface.
.tp-button--endZvana beigšanas pogaPārtrauc zvanu. Izmanto --tp-end-* paleti.
.tp-button--loadingIelādes modifikatorsSavienošanās laikā padara pogu blāvāku.
.tp-icon / .tp-spinIkonasPogas ikonas izmērs; tp-spin animē savienošanās indikatoru.
.tp-statusZvana statusa bloksIetver statusa rindiņu savienošanās/pievienotā/kļūdas stāvoklī.
.tp-status__textStatusa rindiņaSavienojuma stāvokļa teksts (piemēram, “Savienojas...”) vai zvana taimeris. Atkarībā no stāvokļa saņem .tp-status--connected (akcenta krāsa) vai .tp-status--error (kļūdas krāsa).
.tp-status__nameAģenta vārda vietturisStatusa bloka daļa, taču pašreizējā joslas izkārtojumā netiek atveidota -- aģenta vārds tā vietā tiek rādīts .tp-name.
.tp-status__dotStatusa punktsPulsējoša pievienotā stāvokļa punkta stils (izmanto --tp-connected).

Piemēri

Pielāgots akcents, izmantojot props

Vienkāršākais veids, kā pielāgot logrīku savam zīmolam:

<ThunderPhoneWidget
  publishableKey="pk_live_your_publishable_key"
  theme="light"
  primaryColor="#059669"
  title="Talk to support"
/>

Pielāgotas krāsas, izmantojot CSS

Pārrakstiet pielāgotās īpašības, lai pilnībā kontrolētu krāsas. Ņemiet vērā, ka akcents tiek noteikts ar primaryColor prop, nevis CSS:

<ThunderPhoneWidget
  publishableKey="pk_live_your_publishable_key"
  primaryColor="#059669"
/>
/* Emerald theme for everything else */
.tp-widget.tp--light {
  --tp-bg: rgba(236, 253, 245, 0.85);
  --tp-text: rgba(6, 78, 59, 0.95);
  --tp-text-2: rgba(4, 120, 87, 0.8);
  --tp-border: rgba(5, 150, 105, 0.2);
}

Pielāgots izmērs

Palieliniet vai samaziniet logrīku, pielāgojot joslas, pogu un teksta izmērus:

/* Wider bar */
.tp-bar {
  width: 340px;
}
 
/* Larger buttons (42px by default) */
.tp-start,
.tp-button {
  width: 56px;
  height: 56px;
}
 
/* Larger text */
.tp-name {
  font-size: 16px;
}
 
.tp-sub,
.tp-status__text {
  font-size: 14px;
}

Paslēpt teksta etiķetes

Viss logrīka teksts atrodas .tp-meta. Paslēpiet to pilnībā, lai atstātu tikai viļņu formu un pogas:

.tp-meta {
  display: none;
}

Vai paslēpiet atsevišķus elementus:

/* Hide only the idle "Available now" subtitle */
.tp-sub {
  display: none;
}
 
/* Hide only the in-call status line (connection state / timer) */
.tp-status {
  display: none;
}

Konkrētai tēmai paredzētas pārrakstīšanas

Atlasiet konkrētu tēmu, izmantojot tēmas klasi:

/* Only affect dark theme */
.tp--dark .tp-start {
  box-shadow: 0 0 20px rgba(255, 255, 255, 0.25);
}
 
/* Only affect light theme */
.tp-widget.tp--light {
  --tp-bg: rgba(255, 255, 255, 0.95);
}

Tvēruma noteikšana ar className

Izmantojot React komponentu, nododiet className prop, lai attiecinātu pārrakstīšanas uz konkrētu logrīka instanci:

<ThunderPhoneWidget
  publishableKey="pk_live_your_publishable_key"
  theme="dark"
  className="support-widget"
/>

Pēc tam atlasiet šo klasi savā CSS:

.support-widget.tp--dark {
  --tp-bg: rgba(30, 30, 46, 0.9);
}
 
.support-widget .tp-name {
  font-weight: 700;
}

Tas ļauj vienā lapā izmantot vairākas logrīka instances ar dažādiem stiliem. Piešķiriet katrai instancei savu akcentu, izmantojot tās primaryColor prop (CSS nevar pārrakstīt --tp-accent — tas tiek iestatīts rindā).


Pilnībā pielāgota lietotāja saskarne

Ja ar CSS pārrakstīšanām nepietiek, headless hook sniedz jums pilnīgu kontroli. Jūs nodrošināt visu HTML un noformējumu, kamēr useThunderPhone pārvalda balss sesiju. Hook nodrošina arī audioLevelRef, lai veidotu uz audio reaģējošas vizualizācijas, piemēram, viļņu formas.

import { useThunderPhone } from '@thunderphone/widget'
 
function MyWidget() {
  const phone = useThunderPhone({
    publishableKey: 'pk_live_your_publishable_key',
  })
 
  return (
    <div className="my-totally-custom-widget">
      {/* Your own buttons, animations, layouts -- anything */}
      <button onClick={phone.state === 'connected' ? phone.disconnect : phone.connect}>
        {phone.state === 'connected' ? 'Hang up' : 'Call us'}
      </button>
      {phone.audio}
    </div>
  )
}