Skip to content

CallSurface

A voice call screen: wave, avatar, name, status, caption, call buttons.

Group: Media · Kind: macro

state · ringing
AssistantCalling…
state · talking
Assistant01:24Sure, Friday at eight works. Shall I book it?
MuteMute
SpeakerSpeaker
End callEnd call
muted · true
Assistant03:10
UnmuteUnmute
End callEnd call

Open in the playground

The same specimen painted by React, SwiftUI, Compose and gpui.

exponential-ui-call-surface on Web
exponential-ui-call-surface on iOS
exponential-ui-call-surface on Android
exponential-ui-call-surface on Desktop
state · connecting
AssistantCalling…Sure, Friday at eight works.
MuteMute
End callEnd call
state · ended
AssistantCalling…Sure, Friday at eight works.
MuteMute
End callEnd call
activity · idle
AssistantCalling…Sure, Friday at eight works.
activity · listening
AssistantCalling…Sure, Friday at eight works.
activity · thinking
AssistantCalling…Sure, Friday at eight works.
activity · muted
AssistantCalling…Sure, Friday at eight works.
speaker
AssistantCalling…Sure, Friday at eight works.
Prop Type Required Bindable Description
name string yes yes Who is on the call.
avatar url – yes Picture URL.
state ringing | connecting | talking | ended – yes ringing: Cancel only. Default "talking".
activity idle | listening | thinking | speaking | muted – yes The wave when talking. Default "speaking".
level number – yes Level 0 to 1.
bands [number] – yes Band levels.
status string – yes Calling… or a timer.
caption string – yes The live line.
muted boolean – yes Mic off; bind it. Default false.
speaker boolean – yes Shows the speaker toggle.
  • on.mute: runs an action
  • on.speaker: runs an action
  • on.hangUp: runs an action

None.

none

No basic catalog component maps here.

Avatar · Box · Button · Icon · Text · Tooltip · VoiceWave

Role: group

group labelled by name; the wave is hidden, the caption a polite live region; mute and speaker are toggle buttons (aria-pressed), every round button labelled by its tooltip text

Keys Action
– Tab reaches mute, speaker, end in order
Enter Space press

Recipe parts: CallSurface/root CallSurface/head CallSurface/wave CallSurface/avatar CallSurface/name CallSurface/status CallSurface/caption CallSurface/spacer CallSurface/controls CallSurface/muteTip CallSurface/mute CallSurface/muteIcon CallSurface/speakerTip CallSurface/speaker CallSurface/speakerIcon CallSurface/endTip CallSurface/end CallSurface/endIcon CallSurface/cancel CallSurface/cancelLabel

Keyed by: state muted :hover :pressed :focus :disabled :checked :open :selected :invalid :dragover

Themes · Write a theme

Avatar · Button · Icon · Text · Tooltip · VoiceWave · Image · ZoomableImage