fromColorMap

fun fromColorMap(name: String, colorMap: Map<String, SpanStyle>, backgroundColor: Color? = null, defaultTextColor: Color? = null): HighlightTheme

Custom theme from a precomputed color map.

Use this when deriving colors from Material 3 dynamic color, app branding, or any non-CSS source. The colorMap keys are Highlight.js class names without the leading dot (e.g. "hljs-keyword", "hljs-string", "hljs"). The "hljs" entry is used to derive HighlightTheme.backgroundColor and HighlightTheme.defaultTextColor; you can also override those explicitly via backgroundColor and defaultTextColor.

val colorMap = mapOf(
"hljs" to SpanStyle(color = Color(0xFF24292E), background = Color(0xFFFFFFFF)),
"hljs-keyword" to SpanStyle(color = Color(0xFFD73A49), fontWeight = FontWeight.Bold),
"hljs-string" to SpanStyle(color = Color(0xFF032F62)),
"hljs-comment" to SpanStyle(color = Color(0xFF6A737D), fontStyle = FontStyle.Italic),
// ... add more token types as needed
)
val theme = HighlightTheme.fromColorMap(
name = "my-dynamic-theme",
colorMap = colorMap,
backgroundColor = Color(0xFFFFFFFF),
defaultTextColor = Color(0xFF24292E),
)

Return

A HighlightTheme backed by the provided colorMap.

Parameters

name

Display name for the theme.

colorMap

Map of hljs class name → SpanStyle.

backgroundColor

Optional explicit background color. If null, derived from colorMap["hljs"].

defaultTextColor

Optional explicit default text color. If null, derived from colorMap["hljs"].