Skip to main content
Widżet jest renderowany jako pasek w stylu glassmorphism z wbudowanymi jasnym i ciemnym motywem. Dostosowanie jest dostępne na trzech poziomach: właściwości dla typowych opcji, niestandardowe właściwości CSS do motywowania oraz nadpisania klas CSS dla pełnej kontroli.
Te opcje stylizacji dotyczą gotowego widżetu renderowanego przez komponent React ThunderPhoneWidget oraz metodę CDN ThunderPhone.mount(). Jeśli potrzebujesz całkowicie niestandardowego interfejsu, użyj zamiast tego hooka headless.

Motywy

Właściwość theme kontroluje schemat kolorów widżetu. Stosuje klasę tp--light lub tp--dark do głównego elementu widżetu:
Oba motywy wykorzystują stylistykę paska glassmorphism z rozmyciem tła i subtelną przezroczystością.

Niestandardowe właściwości CSS

Widżet udostępnia niestandardowe właściwości CSS (zmienne), które możesz zastąpić, aby zmienić kolory bez modyfikowania poszczególnych klas. Są one definiowane przez klasę motywu (.tp--light lub .tp--dark) zastosowaną do głównego elementu .tp-widget:

Zastępowanie niestandardowych właściwości

Ustaw kolor akcentu za pomocą właściwości primaryColor:
--tp-accent jest ustawiane jako styl inline z właściwości primaryColor, więc zastąpienia --tp-accent w arkuszu stylów nie działają. Zmień kolor akcentu za pomocą właściwości. Wszystkie pozostałe niestandardowe właściwości można zastąpić w CSS.
Zastąp pozostałe niestandardowe właściwości za pomocą CSS. Użyj selektora z dwiema klasami (.tp-widget.tp--light / .tp-widget.tp--dark), aby Twoja reguła miała wyższy priorytet niż klasa motywu definiująca wartości domyślne, niezależnie od kolejności arkuszy stylów:

Klasy CSS

Wszystkie klasy widżetu mają prefiks tp-, aby uniknąć konfliktów z istniejącymi stylami.

Przykłady

Niestandardowy akcent za pomocą propsów

Najprostszy sposób na dostosowanie widżetu do marki:

Niestandardowe kolory za pomocą CSS

Zastąp właściwości niestandardowe, aby uzyskać pełną kontrolę nad kolorami. Pamiętaj, że kolor akcentu pochodzi z propa primaryColor, a nie z CSS:

Niestandardowy rozmiar

Powiększ lub pomniejsz widżet, dostosowując wymiary paska, przycisków i tekstu:

Ukrywanie etykiet tekstowych

Cały tekst widżetu znajduje się w .tp-meta. Ukryj go całkowicie, aby pozostawić tylko przebieg fali i przyciski:
Możesz też ukryć poszczególne elementy:
Etykieta stanu bezczynności znajduje się w .tp-name/.tp-sub, a nie w .tp-status — ukrycie samego .tp-status nadal wyświetla tytuł, gdy widżet jest w stanie bezczynności.

Zastąpienia specyficzne dla motywu

Wybierz konkretny motyw za pomocą klasy motywu:

Zakresowanie za pomocą className

Podczas korzystania z komponentu React przekaż prop className, aby ograniczyć zastąpienia do konkretnej instancji widżetu:
Następnie wskaż tę klasę w CSS:
Pozwala to mieć wiele instancji widżetu na tej samej stronie, z różnymi stylami. Nadaj każdej instancji własny akcent za pomocą propa primaryColor (CSS nie może zastąpić --tp-accent — jest ustawiany inline).

W pełni niestandardowy interfejs

Jeśli zastąpienia CSS nie wystarczają, headless hook zapewnia pełną kontrolę. Udostępniasz cały HTML i stylowanie, a useThunderPhone obsługuje sesję głosową. Hook udostępnia również audioLevelRef do tworzenia wizualizacji reagujących na dźwięk, takich jak przebiegi fali.
Headless hook to właściwy wybór, gdy potrzebujesz animacji reagujących na dźwięk, niestandardowych układów lub integracji z istniejącą biblioteką komponentów. Zastąpienia CSS i właściwości niestandardowe lepiej sprawdzają się przy szybkich zmianach motywu.