Skip to content

Theming

The control chrome is fully themeable through the UI config: a color token set (accent, track colors, surfaces, text tiers…), a dimension set (button sizes, track heights, insets — with automatic fullscreen step-up), replaceable icons for every glyph, and title text styling.

OGUiConfig.Builder()
.setControlColors(OGControlColors(accent = Color(0xFF7BD88F)))
.setProgressColors(played = Color.White, track = Color.DarkGray, scrubber = Color.White)
.setPlayIcon(R.drawable.my_play)
.setSeekForwardIcon(R.drawable.my_ff)
.setTitleTextStyle(TextStyle(fontSize = 20.sp, fontWeight = FontWeight.Bold))
.build()

What’s replaceable: play/pause/replay, seek forward/back, fullscreen enter/exit, subtitles, audio, speed, quality, volume states and the ad transport glyphs. What’s deliberately not configurable: content-rating position (fixed top-right by Kijkwijzer convention), the LIVE chip’s presence on live streams, and the trial watermark (a license removes it).

Your own error copy belongs to theming too — see error handling.