Customization
You can customize the appearance and behavior of the classroom UI using the Customization object when creating or joining a room.
Usage​
Pass the Customization object to the API request:
final customization = Customization(
theme: ClassroomTheme.dark,
showLobby: true,
showLogo: false,
);
await client.joinRoom('room-id', JoinRoomRequest(
participant: ...,
customization: customization,
));
Presets​
The SDK includes presets for common scenarios:
Viewer Preset​
Optimized for passive viewers (like a webinar). Hides interactive controls.
final viewerConfig = Customization.viewer(
theme: ClassroomTheme.light,
);
Available Options​
See the Platform Customization Guide for a full list of available options. The Flutter SDK Customization class mirrors these options 1:1.
| Property | Description | Default |
|---|---|---|
theme | ClassroomTheme.light, dark, or system. | system |
showLobby | Show A/V setup screen before joining the room. | true |
showClassTitle | Show the classroom title in the header. | true |
showLogo | Display the organization logo. | true |
showHeader | Show/hide the entire top header bar. | true |
showParticipantName | Show the current user's name in their video tile/controls. | true |
showMicIndicator | Display the microphone activity indicator. | true |
needChat | Enable the sidebar chat panel. | true |
needControlbar | Show the bottom control bar (mute, camera, leave). | true |
allowScreenShare | Enable screen sharing for participants. | true |
allowHandRaise | Enable the "Raise Hand" feature. | true |
allowRecording | Enable session recording (requires server-side setup). | true |
allowIngress | Enable external stream ingress (RTMP/WHIP). | false |
validateDomain | Restrict loading to pre-configured authorized domains. | true |