Skip to main content
小工具會以具玻璃擬態風格的橫條呈現,內建淺色與深色主題。你可以從三個層級進行自訂:常用選項的 props、用於主題設定的 CSS 自訂屬性,以及可完整掌控樣式的 CSS 類別覆寫。
這些樣式選項適用於由 ThunderPhoneWidget React 元件和 ThunderPhone.mount() CDN 方法呈現的預建小工具。如果你需要完全自訂的 UI,請改用無介面 hook

主題

theme prop 可控制小工具的配色。它會將 tp--lighttp--dark 類別套用至小工具根元素:
兩種主題皆採用具背景模糊與細緻透明效果的玻璃擬態橫條設計。

CSS 自訂屬性

此小工具提供可覆寫的 CSS 自訂屬性(變數),讓你無須調整個別類別即可變更色彩。這些屬性由套用至 .tp-widget 根元素的佈景主題類別(.tp--light.tp--dark)定義:

覆寫自訂屬性

透過 primaryColor 屬性設定強調色:
--tp-accent 會透過 primaryColor 屬性設為內嵌樣式,因此在樣式表中覆寫 --tp-accent 不會生效。請使用此屬性變更強調色。其他所有自訂屬性皆可在 CSS 中覆寫。
使用 CSS 覆寫其他自訂屬性。請使用雙類別選擇器(.tp-widget.tp--light / .tp-widget.tp--dark),確保無論樣式表順序為何,你的規則都會優先於定義預設值的佈景主題類別:

CSS 類別

所有小工具類別皆以 tp- 為前綴,以避免與你現有的樣式衝突。

範例

透過 Props 自訂強調色

為小工具建立品牌風格最簡單的方式:

透過 CSS 自訂顏色

覆寫自訂屬性以完整控制顏色。請記得,強調色來自 primaryColor prop,而不是 CSS:

自訂尺寸

調整列、按鈕與文字尺寸,讓小工具變大或變小:

隱藏文字標籤

小工具的所有文字都位於 .tp-meta。完全隱藏它,只保留波形與按鈕:
或者隱藏個別部分:
閒置標籤位於 .tp-name/.tp-sub,而不是 .tp-status——僅隱藏 .tp-status 時,小工具閒置期間仍會顯示標題。

特定主題覆寫

使用主題 class 鎖定特定主題:

使用 className 設定範圍

使用 React 元件時,傳入 className prop,將覆寫設定限定在特定小工具執行個體:
接著在 CSS 中鎖定該 class:
這樣你就能在同一頁面放置多個不同樣式的小工具執行個體。透過各自的 primaryColor prop 為每個執行個體設定專屬強調色(CSS 無法覆寫 --tp-accent——它會以 inline 方式設定)。

完全自訂 UI

如果 CSS 覆寫不足,無介面 hook 可讓你完全掌控。你提供所有 HTML 與樣式,而 useThunderPhone 負責處理語音工作階段。此 hook 也提供 audioLevelRef,可用於建立波形等會隨音訊反應的視覺效果。
當你需要隨音訊反應的動畫、自訂版面配置,或整合至既有元件庫時,無介面 hook 是合適的選擇。若要快速調整主題,則更適合使用 CSS 覆寫與自訂屬性。