Skip to main content
Tiện ích hiển thị dưới dạng thanh hiệu ứng kính với giao diện sáng và tối tích hợp sẵn. Bạn có thể tùy chỉnh ở ba cấp độ: props cho các tùy chọn phổ biến, thuộc tính tùy chỉnh CSS để áp dụng giao diện, và ghi đè lớp CSS để kiểm soát toàn diện.
Các tùy chọn tạo kiểu này áp dụng cho tiện ích dựng sẵn được hiển thị bởi component React ThunderPhoneWidget và phương thức CDN ThunderPhone.mount(). Nếu bạn cần một giao diện hoàn toàn tùy chỉnh, hãy dùng hook headless.

Giao diện

Prop theme kiểm soát bảng màu của tiện ích. Prop này áp dụng lớp tp--light hoặc tp--dark vào phần tử gốc của tiện ích:
Cả hai giao diện đều sử dụng thiết kế thanh hiệu ứng kính với hiệu ứng làm mờ nền và độ trong suốt tinh tế.

Thuộc tính tùy chỉnh CSS

Widget cung cấp các thuộc tính tùy chỉnh CSS (biến) mà bạn có thể ghi đè để thay đổi màu sắc mà không cần chỉnh sửa từng class. Chúng được xác định bởi class giao diện (.tp--light hoặc .tp--dark) áp dụng cho phần tử gốc .tp-widget:

Ghi đè thuộc tính tùy chỉnh

Đặt màu nhấn qua prop primaryColor:
--tp-accent được đặt dưới dạng kiểu inline từ prop primaryColor, vì vậy việc ghi đè --tp-accent trong stylesheet sẽ không có tác dụng. Thay đổi màu nhấn bằng prop. Mọi thuộc tính tùy chỉnh khác đều có thể được ghi đè trong CSS.
Ghi đè các thuộc tính tùy chỉnh khác bằng CSS. Sử dụng bộ chọn hai class (.tp-widget.tp--light / .tp-widget.tp--dark) để quy tắc của bạn có độ ưu tiên cao hơn class giao diện xác định các giá trị mặc định, bất kể thứ tự stylesheet:

Các lớp CSS

Tất cả lớp widget đều có tiền tố tp- để tránh xung đột với các style hiện có của bạn.

Ví dụ

Màu nhấn tùy chỉnh qua Props

Cách đơn giản nhất để gắn thương hiệu cho widget:

Màu tùy chỉnh qua CSS

Ghi đè các thuộc tính tùy chỉnh để kiểm soát hoàn toàn màu sắc. Lưu ý rằng màu nhấn đến từ prop primaryColor, không phải CSS:

Kích thước tùy chỉnh

Phóng to hoặc thu nhỏ widget bằng cách điều chỉnh kích thước thanh, nút và văn bản:

Ẩn nhãn văn bản

Toàn bộ văn bản của widget nằm trong .tp-meta. Ẩn hoàn toàn phần này để chỉ giữ lại dạng sóng và các nút:
Hoặc ẩn từng phần riêng lẻ:
Nhãn khi rảnh nằm trong .tp-name/.tp-sub, không phải .tp-status — chỉ ẩn .tp-status vẫn hiển thị tiêu đề khi widget đang rảnh.

Ghi đè theo chủ đề

Nhắm đến một chủ đề cụ thể bằng lớp chủ đề:

Phạm vi với className

Khi sử dụng thành phần React, truyền prop className để giới hạn các ghi đè của bạn cho một phiên bản widget cụ thể:
Sau đó nhắm đến lớp đó trong CSS:
Điều này cho phép bạn có nhiều phiên bản widget trên cùng một trang với các kiểu khác nhau. Đặt màu nhấn riêng cho từng phiên bản thông qua prop primaryColor của nó (CSS không thể ghi đè --tp-accent — thuộc tính này được đặt inline).

Giao diện người dùng hoàn toàn tùy chỉnh

Nếu ghi đè CSS là chưa đủ, headless hook cho phép bạn toàn quyền kiểm soát. Bạn cung cấp toàn bộ HTML và kiểu dáng, trong khi useThunderPhone xử lý phiên thoại. Hook này cũng cung cấp audioLevelRef để xây dựng các hình ảnh trực quan phản hồi theo âm thanh như dạng sóng.
Headless hook là lựa chọn phù hợp khi bạn cần hiệu ứng động phản hồi theo âm thanh, bố cục tùy chỉnh hoặc tích hợp vào thư viện thành phần hiện có. Ghi đè CSS và các thuộc tính tùy chỉnh phù hợp hơn cho các điều chỉnh chủ đề nhanh.