convert theme

This commit is contained in:
Evgeny @ SimpleX Chat
2026-04-20 22:59:33 +00:00
parent c99d685ae5
commit 4dcac59ff0
4 changed files with 147 additions and 105 deletions
@@ -50,7 +50,12 @@ public enum PresetWallpaper: CaseIterable {
case .flowers: wallpaperBackgrounds(light: "#ffE2FFE4")
case .hearts: wallpaperBackgrounds(light: "#ffFDECEC")
case .kids: wallpaperBackgrounds(light: "#ffdbfdfb")
case .school: wallpaperBackgrounds(light: "#ffE7F5FF")
case .school: [
DefaultTheme.LIGHT: oklch(0.9626785, 0.02004578, 238.6614),
DefaultTheme.DARK: oklch(0.2024453, 0.03849037, 273.4875),
DefaultTheme.SIMPLEX: oklch(0.2024453, 0.03849037, 273.4875),
DefaultTheme.BLACK: oklch(0.1285578, 0, 0)
]
case .travel: wallpaperBackgrounds(light: "#fff9eeff")
}
}
@@ -82,10 +87,10 @@ public enum PresetWallpaper: CaseIterable {
DefaultTheme.BLACK: "#ff16404B".colorFromReadableHex()
]
case .school: [
DefaultTheme.LIGHT: "#ffCEEBFF".colorFromReadableHex(),
DefaultTheme.DARK: "#ff0F293B".colorFromReadableHex(),
DefaultTheme.SIMPLEX: "#ff112f43".colorFromReadableHex(),
DefaultTheme.BLACK: "#ff0F293B".colorFromReadableHex()
DefaultTheme.LIGHT: oklch(0.9252349, 0.04096641, 238.0518),
DefaultTheme.DARK: oklch(0.2700986, 0.04630937, 241.5568),
DefaultTheme.SIMPLEX: oklch(0.2929108, 0.05102392, 240.8139),
DefaultTheme.BLACK: oklch(0.2700986, 0.04630937, 241.5568)
]
case .travel: [
DefaultTheme.LIGHT: "#ffeedbfe".colorFromReadableHex(),
@@ -204,28 +209,28 @@ public enum PresetWallpaper: CaseIterable {
]
case .school: [
DefaultTheme.LIGHT: ThemeColors.from(
sentMessage: "#ffeef9ff",
sentQuote: "#ffD6EDFA",
receivedMessage: "#ffF3F5F9",
receivedQuote: "#ffe4e8ee"
sentMessage: "oklch(0.9756479, 0.01416295, 231.2013)",
sentQuote: "oklch(0.9331527, 0.03006113, 232.4212)",
receivedMessage: "oklch(0.9697657, 0.005748723, 264.5325)",
receivedQuote: "oklch(0.9296755, 0.00918803, 258.3366)"
),
DefaultTheme.DARK: ThemeColors.from(
sentMessage: "#ff172833",
sentQuote: "#ff1C3E4F",
receivedMessage: "#ff26282c",
receivedQuote: "#ff393c40"
sentMessage: "oklch(0.267226, 0.03061943, 237.8609)",
sentQuote: "oklch(0.3464064, 0.04943852, 232.4005)",
receivedMessage: "oklch(0.2764251, 0.007910622, 264.4375)",
receivedQuote: "oklch(0.3548081, 0.008034593, 255.5451)"
),
DefaultTheme.SIMPLEX: ThemeColors.from(
sentMessage: "#ff1A3C5D",
sentQuote: "#ff235b80",
receivedMessage: "#ff26282c",
receivedQuote: "#ff393c40"
sentMessage: "oklch(0.3481476, 0.07023845, 249.9259)",
sentQuote: "oklch(0.4520089, 0.08394516, 241.1934)",
receivedMessage: "oklch(0.2764251, 0.007910622, 264.4375)",
receivedQuote: "oklch(0.3548081, 0.008034593, 255.5451)"
),
DefaultTheme.BLACK: ThemeColors.from(
sentMessage: "#ff1A3C5D",
sentQuote: "#ff235b80",
receivedMessage: "#ff1d1e22",
receivedQuote: "#ff292b2f"
sentMessage: "oklch(0.3481476, 0.07023845, 249.9259)",
sentQuote: "oklch(0.4520089, 0.08394516, 241.1934)",
receivedMessage: "oklch(0.2356588, 0.007789041, 274.6063)",
receivedQuote: "oklch(0.2886546, 0.007823012, 264.445)"
)
]
case .travel: [
@@ -219,6 +219,40 @@ data class ThemeColors(
}
}
/** Resolved preset colors — Color objects, not strings. Used for presets defined in code. */
data class ResolvedColors(
val primary: Color? = null,
val primaryVariant: Color? = null,
val secondary: Color? = null,
val secondaryVariant: Color? = null,
val background: Color? = null,
val surface: Color? = null,
val title: Color? = null,
val primaryVariant2: Color? = null,
val sentMessage: Color? = null,
val sentQuote: Color? = null,
val receivedMessage: Color? = null,
val receivedQuote: Color? = null,
) {
companion object {
/** Temporary: convert hex ThemeColors to ResolvedColors. Replace with oklch() values. */
fun fromThemeColors(tc: ThemeColors): ResolvedColors = ResolvedColors(
primary = tc.primary?.colorFromReadableHex(),
primaryVariant = tc.primaryVariant?.colorFromReadableHex(),
secondary = tc.secondary?.colorFromReadableHex(),
secondaryVariant = tc.secondaryVariant?.colorFromReadableHex(),
background = tc.background?.colorFromReadableHex(),
surface = tc.surface?.colorFromReadableHex(),
title = tc.title?.colorFromReadableHex(),
primaryVariant2 = tc.primaryVariant2?.colorFromReadableHex(),
sentMessage = tc.sentMessage?.colorFromReadableHex(),
sentQuote = tc.sentQuote?.colorFromReadableHex(),
receivedMessage = tc.receivedMessage?.colorFromReadableHex(),
receivedQuote = tc.receivedQuote?.colorFromReadableHex(),
)
}
}
// Spec: spec/services/theme.md#ThemeWallpaper
@Serializable
data class ThemeWallpaper (
@@ -340,7 +374,7 @@ data class ThemeOverrides (
)
}
fun toColors(base: DefaultTheme, perChatTheme: ThemeColors?, perUserTheme: ThemeColors?, presetWallpaperTheme: ThemeColors?): Colors {
fun toColors(base: DefaultTheme, perChatTheme: ThemeColors?, perUserTheme: ThemeColors?, presetWallpaperTheme: ResolvedColors?): Colors {
val baseColors = when (base) {
DefaultTheme.LIGHT -> LightColorPalette
DefaultTheme.DARK -> DarkColorPalette
@@ -348,16 +382,16 @@ data class ThemeOverrides (
DefaultTheme.BLACK -> BlackColorPalette
}
return baseColors.copy(
primary = perChatTheme?.primary?.colorFromReadableHex() ?: perUserTheme?.primary?.colorFromReadableHex() ?: colors.primary?.colorFromReadableHex() ?: presetWallpaperTheme?.primary?.colorFromReadableHex() ?: baseColors.primary,
primaryVariant = perChatTheme?.primaryVariant?.colorFromReadableHex() ?: perUserTheme?.primaryVariant?.colorFromReadableHex() ?: colors.primaryVariant?.colorFromReadableHex() ?: presetWallpaperTheme?.primaryVariant?.colorFromReadableHex() ?: baseColors.primaryVariant,
secondary = perChatTheme?.secondary?.colorFromReadableHex() ?: perUserTheme?.secondary?.colorFromReadableHex() ?: colors.secondary?.colorFromReadableHex() ?: presetWallpaperTheme?.secondary?.colorFromReadableHex() ?: baseColors.secondary,
secondaryVariant = perChatTheme?.secondaryVariant?.colorFromReadableHex() ?: perUserTheme?.secondaryVariant?.colorFromReadableHex() ?: colors.secondaryVariant?.colorFromReadableHex() ?: presetWallpaperTheme?.secondaryVariant?.colorFromReadableHex() ?: baseColors.secondaryVariant,
background = perChatTheme?.background?.colorFromReadableHex() ?: perUserTheme?.background?.colorFromReadableHex() ?: colors.background?.colorFromReadableHex() ?: presetWallpaperTheme?.background?.colorFromReadableHex() ?: baseColors.background,
surface = perChatTheme?.surface?.colorFromReadableHex() ?: perUserTheme?.surface?.colorFromReadableHex() ?: colors.surface?.colorFromReadableHex() ?: presetWallpaperTheme?.surface?.colorFromReadableHex() ?: baseColors.surface,
primary = perChatTheme?.primary?.colorFromReadableHex() ?: perUserTheme?.primary?.colorFromReadableHex() ?: colors.primary?.colorFromReadableHex() ?: presetWallpaperTheme?.primary ?: baseColors.primary,
primaryVariant = perChatTheme?.primaryVariant?.colorFromReadableHex() ?: perUserTheme?.primaryVariant?.colorFromReadableHex() ?: colors.primaryVariant?.colorFromReadableHex() ?: presetWallpaperTheme?.primaryVariant ?: baseColors.primaryVariant,
secondary = perChatTheme?.secondary?.colorFromReadableHex() ?: perUserTheme?.secondary?.colorFromReadableHex() ?: colors.secondary?.colorFromReadableHex() ?: presetWallpaperTheme?.secondary ?: baseColors.secondary,
secondaryVariant = perChatTheme?.secondaryVariant?.colorFromReadableHex() ?: perUserTheme?.secondaryVariant?.colorFromReadableHex() ?: colors.secondaryVariant?.colorFromReadableHex() ?: presetWallpaperTheme?.secondaryVariant ?: baseColors.secondaryVariant,
background = perChatTheme?.background?.colorFromReadableHex() ?: perUserTheme?.background?.colorFromReadableHex() ?: colors.background?.colorFromReadableHex() ?: presetWallpaperTheme?.background ?: baseColors.background,
surface = perChatTheme?.surface?.colorFromReadableHex() ?: perUserTheme?.surface?.colorFromReadableHex() ?: colors.surface?.colorFromReadableHex() ?: presetWallpaperTheme?.surface ?: baseColors.surface,
)
}
fun toAppColors(base: DefaultTheme, perChatTheme: ThemeColors?, perChatWallpaperType: WallpaperType?, perUserTheme: ThemeColors?, perUserWallpaperType: WallpaperType?, presetWallpaperTheme: ThemeColors?): AppColors {
fun toAppColors(base: DefaultTheme, perChatTheme: ThemeColors?, perChatWallpaperType: WallpaperType?, perUserTheme: ThemeColors?, perUserWallpaperType: WallpaperType?, presetWallpaperTheme: ResolvedColors?): AppColors {
val baseColors = when (base) {
DefaultTheme.LIGHT -> LightColorPaletteApp
DefaultTheme.DARK -> DarkColorPaletteApp
@@ -365,13 +399,13 @@ data class ThemeOverrides (
DefaultTheme.BLACK -> BlackColorPaletteApp
}
val sentMessageFallback = colors.sentMessage?.colorFromReadableHex() ?: presetWallpaperTheme?.sentMessage?.colorFromReadableHex() ?: baseColors.sentMessage
val sentQuoteFallback = colors.sentQuote?.colorFromReadableHex() ?: presetWallpaperTheme?.sentQuote?.colorFromReadableHex() ?: baseColors.sentQuote
val receivedMessageFallback = colors.receivedMessage?.colorFromReadableHex() ?: presetWallpaperTheme?.receivedMessage?.colorFromReadableHex() ?: baseColors.receivedMessage
val receivedQuoteFallback = colors.receivedQuote?.colorFromReadableHex() ?: presetWallpaperTheme?.receivedQuote?.colorFromReadableHex() ?: baseColors.receivedQuote
val sentMessageFallback = colors.sentMessage?.colorFromReadableHex() ?: presetWallpaperTheme?.sentMessage ?: baseColors.sentMessage
val sentQuoteFallback = colors.sentQuote?.colorFromReadableHex() ?: presetWallpaperTheme?.sentQuote ?: baseColors.sentQuote
val receivedMessageFallback = colors.receivedMessage?.colorFromReadableHex() ?: presetWallpaperTheme?.receivedMessage ?: baseColors.receivedMessage
val receivedQuoteFallback = colors.receivedQuote?.colorFromReadableHex() ?: presetWallpaperTheme?.receivedQuote ?: baseColors.receivedQuote
return baseColors.copy(
title = perChatTheme?.title?.colorFromReadableHex() ?: perUserTheme?.title?.colorFromReadableHex() ?: colors.title?.colorFromReadableHex() ?: presetWallpaperTheme?.title?.colorFromReadableHex() ?: baseColors.title,
primaryVariant2 = perChatTheme?.primaryVariant2?.colorFromReadableHex() ?: perUserTheme?.primaryVariant2?.colorFromReadableHex() ?: colors.primaryVariant2?.colorFromReadableHex() ?: presetWallpaperTheme?.primaryVariant2?.colorFromReadableHex() ?: baseColors.primaryVariant2,
title = perChatTheme?.title?.colorFromReadableHex() ?: perUserTheme?.title?.colorFromReadableHex() ?: colors.title?.colorFromReadableHex() ?: presetWallpaperTheme?.title ?: baseColors.title,
primaryVariant2 = perChatTheme?.primaryVariant2?.colorFromReadableHex() ?: perUserTheme?.primaryVariant2?.colorFromReadableHex() ?: colors.primaryVariant2?.colorFromReadableHex() ?: presetWallpaperTheme?.primaryVariant2 ?: baseColors.primaryVariant2,
sentMessage = if (perChatTheme?.sentMessage != null) perChatTheme.sentMessage.colorFromReadableHex()
else if (perUserTheme != null && (perChatWallpaperType == null || perUserWallpaperType == null || perChatWallpaperType.sameType(perUserWallpaperType))) perUserTheme.sentMessage?.colorFromReadableHex() ?: sentMessageFallback
else sentMessageFallback,
@@ -416,7 +450,7 @@ data class ThemeOverrides (
)
}
fun withFilledColors(base: DefaultTheme, perChatTheme: ThemeColors?, perChatWallpaperType: WallpaperType?, perUserTheme: ThemeColors?, perUserWallpaperType: WallpaperType?, presetWallpaperTheme: ThemeColors?): ThemeColors {
fun withFilledColors(base: DefaultTheme, perChatTheme: ThemeColors?, perChatWallpaperType: WallpaperType?, perUserTheme: ThemeColors?, perUserWallpaperType: WallpaperType?, presetWallpaperTheme: ResolvedColors?): ThemeColors {
val c = toColors(base, perChatTheme, perUserTheme, presetWallpaperTheme)
val ac = toAppColors(base, perChatTheme, perChatWallpaperType, perUserTheme, perUserWallpaperType, presetWallpaperTheme)
return ThemeColors(
@@ -2,10 +2,8 @@ package chat.simplex.common.ui.theme
import androidx.compose.material.Colors
import androidx.compose.runtime.MutableState
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.*
import androidx.compose.ui.graphics.colorspace.ColorSpaces
import androidx.compose.ui.graphics.convert
import androidx.compose.ui.graphics.toArgb
import androidx.compose.ui.text.font.FontFamily
import chat.simplex.common.model.*
import chat.simplex.common.platform.*
@@ -28,7 +28,7 @@ enum class PresetWallpaper(
val scale: Float,
val background: Map<DefaultTheme, Color>,
val tint: Map<DefaultTheme, Color>,
val colors: Map<DefaultTheme, ThemeColors>,
val colors: Map<DefaultTheme, ResolvedColors>,
) {
CATS(MR.images.wallpaper_cats, "cats", 0.63f,
wallpaperBackgrounds(light = "#ffF8F6EA"),
@@ -39,30 +39,30 @@ enum class PresetWallpaper(
DefaultTheme.BLACK to "#ff4b3b0e".colorFromReadableHex()
),
mapOf(
DefaultTheme.LIGHT to ThemeColors(
DefaultTheme.LIGHT to ResolvedColors.fromThemeColors(ThemeColors(
sentMessage = "#fffffaed",
sentQuote = "#fffaf0d6",
receivedMessage = "#ffF8F7F4",
receivedQuote = "#ffefede9",
),
DefaultTheme.DARK to ThemeColors(
)),
DefaultTheme.DARK to ResolvedColors.fromThemeColors(ThemeColors(
sentMessage = "#ff2f2919",
sentQuote = "#ff473a1d",
receivedMessage = "#ff272624",
receivedQuote = "#ff373633",
),
DefaultTheme.SIMPLEX to ThemeColors(
)),
DefaultTheme.SIMPLEX to ResolvedColors.fromThemeColors(ThemeColors(
sentMessage = "#ff41371b",
sentQuote = "#ff654f1c",
receivedMessage = "#ff272624",
receivedQuote = "#ff373633",
),
DefaultTheme.BLACK to ThemeColors(
)),
DefaultTheme.BLACK to ResolvedColors.fromThemeColors(ThemeColors(
sentMessage = "#ff41371b",
sentQuote = "#ff654f1c",
receivedMessage = "#ff1f1e1b",
receivedQuote = "#ff2f2d27",
),
)),
)
),
FLOWERS(MR.images.wallpaper_flowers, "flowers", 0.53f,
@@ -74,30 +74,30 @@ enum class PresetWallpaper(
DefaultTheme.BLACK to "#ff31560D".colorFromReadableHex()
),
mapOf(
DefaultTheme.LIGHT to ThemeColors(
DefaultTheme.LIGHT to ResolvedColors.fromThemeColors(ThemeColors(
sentMessage = "#fff1ffe5",
sentQuote = "#ffdcf9c4",
receivedMessage = "#ffF4F8F2",
receivedQuote = "#ffe7ece7",
),
DefaultTheme.DARK to ThemeColors(
)),
DefaultTheme.DARK to ResolvedColors.fromThemeColors(ThemeColors(
sentMessage = "#ff163521",
sentQuote = "#ff1B5330",
receivedMessage = "#ff242523",
receivedQuote = "#ff353733",
),
DefaultTheme.SIMPLEX to ThemeColors(
)),
DefaultTheme.SIMPLEX to ResolvedColors.fromThemeColors(ThemeColors(
sentMessage = "#ff184739",
sentQuote = "#ff1F6F4B",
receivedMessage = "#ff242523",
receivedQuote = "#ff353733",
),
DefaultTheme.BLACK to ThemeColors(
)),
DefaultTheme.BLACK to ResolvedColors.fromThemeColors(ThemeColors(
sentMessage = "#ff184739",
sentQuote = "#ff1F6F4B",
receivedMessage = "#ff1c1f1a",
receivedQuote = "#ff282b25",
),
)),
)
),
HEARTS(MR.images.wallpaper_hearts, "hearts", 0.59f,
@@ -109,30 +109,30 @@ enum class PresetWallpaper(
DefaultTheme.BLACK to "#ff3C0F0F".colorFromReadableHex()
),
mapOf(
DefaultTheme.LIGHT to ThemeColors(
DefaultTheme.LIGHT to ResolvedColors.fromThemeColors(ThemeColors(
sentMessage = "#fffff4f4",
sentQuote = "#ffffdfdf",
receivedMessage = "#fff8f6f6",
receivedQuote = "#ffefebeb",
),
DefaultTheme.DARK to ThemeColors(
)),
DefaultTheme.DARK to ResolvedColors.fromThemeColors(ThemeColors(
sentMessage = "#ff301515",
sentQuote = "#ff4C1818",
receivedMessage = "#ff242121",
receivedQuote = "#ff3b3535",
),
DefaultTheme.SIMPLEX to ThemeColors(
)),
DefaultTheme.SIMPLEX to ResolvedColors.fromThemeColors(ThemeColors(
sentMessage = "#ff491A28",
sentQuote = "#ff761F29",
receivedMessage = "#ff242121",
receivedQuote = "#ff3b3535",
),
DefaultTheme.BLACK to ThemeColors(
)),
DefaultTheme.BLACK to ResolvedColors.fromThemeColors(ThemeColors(
sentMessage = "#ff491A28",
sentQuote = "#ff761F29",
receivedMessage = "#ff1f1b1b",
receivedQuote = "#ff2e2626",
),
)),
)
),
KIDS(MR.images.wallpaper_kids, "kids", 0.53f,
@@ -144,64 +144,69 @@ enum class PresetWallpaper(
DefaultTheme.BLACK to "#ff16404B".colorFromReadableHex()
),
mapOf(
DefaultTheme.LIGHT to ThemeColors(
DefaultTheme.LIGHT to ResolvedColors.fromThemeColors(ThemeColors(
sentMessage = "#ffeafeff",
sentQuote = "#ffcbf4f7",
receivedMessage = "#fff3fafa",
receivedQuote = "#ffe4efef",
),
DefaultTheme.DARK to ThemeColors(
)),
DefaultTheme.DARK to ResolvedColors.fromThemeColors(ThemeColors(
sentMessage = "#ff16302F",
sentQuote = "#ff1a4a49",
receivedMessage = "#ff252626",
receivedQuote = "#ff373A39",
),
DefaultTheme.SIMPLEX to ThemeColors(
)),
DefaultTheme.SIMPLEX to ResolvedColors.fromThemeColors(ThemeColors(
sentMessage = "#ff1a4745",
sentQuote = "#ff1d6b69",
receivedMessage = "#ff252626",
receivedQuote = "#ff373a39",
),
DefaultTheme.BLACK to ThemeColors(
)),
DefaultTheme.BLACK to ResolvedColors.fromThemeColors(ThemeColors(
sentMessage = "#ff1a4745",
sentQuote = "#ff1d6b69",
receivedMessage = "#ff1e1f1f",
receivedQuote = "#ff262b29",
),
)),
)
),
SCHOOL(MR.images.wallpaper_school, "school", 0.53f,
wallpaperBackgrounds(light = "#ffE7F5FF"),
mapOf(
DefaultTheme.LIGHT to oklch(0.9626785f, 0.02004578f, 238.6614f),
DefaultTheme.DARK to oklch(0.2024453f, 0.03849037f, 273.4875f),
DefaultTheme.SIMPLEX to oklch(0.2024453f, 0.03849037f, 273.4875f),
DefaultTheme.BLACK to oklch(0.1285578f, 0f, 0f)
),
tint = mapOf(
DefaultTheme.LIGHT to "#ffCEEBFF".colorFromReadableHex(),
DefaultTheme.DARK to "#ff0F293B".colorFromReadableHex(),
DefaultTheme.SIMPLEX to "#ff112f43".colorFromReadableHex(),
DefaultTheme.BLACK to "#ff0F293B".colorFromReadableHex()
DefaultTheme.LIGHT to oklch(0.9252349f, 0.04096641f, 238.0518f),
DefaultTheme.DARK to oklch(0.2700986f, 0.04630937f, 241.5568f),
DefaultTheme.SIMPLEX to oklch(0.2929108f, 0.05102392f, 240.8139f),
DefaultTheme.BLACK to oklch(0.2700986f, 0.04630937f, 241.5568f)
),
mapOf(
DefaultTheme.LIGHT to ThemeColors(
sentMessage = "#ffeef9ff",
sentQuote = "#ffD6EDFA",
receivedMessage = "#ffF3F5F9",
receivedQuote = "#ffe4e8ee",
DefaultTheme.LIGHT to ResolvedColors(
sentMessage = oklch(0.9756479f, 0.01416295f, 231.2013f),
sentQuote = oklch(0.9331527f, 0.03006113f, 232.4212f),
receivedMessage = oklch(0.9697657f, 0.005748723f, 264.5325f),
receivedQuote = oklch(0.9296755f, 0.00918803f, 258.3366f),
),
DefaultTheme.DARK to ThemeColors(
sentMessage = "#ff172833",
sentQuote = "#ff1C3E4F",
receivedMessage = "#ff26282c",
receivedQuote = "#ff393c40",
DefaultTheme.DARK to ResolvedColors(
sentMessage = oklch(0.267226f, 0.03061943f, 237.8609f),
sentQuote = oklch(0.3464064f, 0.04943852f, 232.4005f),
receivedMessage = oklch(0.2764251f, 0.007910622f, 264.4375f),
receivedQuote = oklch(0.3548081f, 0.008034593f, 255.5451f),
),
DefaultTheme.SIMPLEX to ThemeColors(
sentMessage = "#ff1A3C5D",
sentQuote = "#ff235b80",
receivedMessage = "#ff26282c",
receivedQuote = "#ff393c40",
DefaultTheme.SIMPLEX to ResolvedColors(
sentMessage = oklch(0.3481476f, 0.07023845f, 249.9259f),
sentQuote = oklch(0.4520089f, 0.08394516f, 241.1934f),
receivedMessage = oklch(0.2764251f, 0.007910622f, 264.4375f),
receivedQuote = oklch(0.3548081f, 0.008034593f, 255.5451f),
),
DefaultTheme.BLACK to ThemeColors(
sentMessage = "#ff1A3C5D",
sentQuote = "#ff235b80",
receivedMessage = "#ff1d1e22",
receivedQuote = "#ff292b2f",
DefaultTheme.BLACK to ResolvedColors(
sentMessage = oklch(0.3481476f, 0.07023845f, 249.9259f),
sentQuote = oklch(0.4520089f, 0.08394516f, 241.1934f),
receivedMessage = oklch(0.2356588f, 0.007789041f, 274.6063f),
receivedQuote = oklch(0.2886546f, 0.007823012f, 264.445f),
),
)
),
@@ -214,30 +219,30 @@ enum class PresetWallpaper(
DefaultTheme.BLACK to "#ff311E48".colorFromReadableHex()
),
mapOf(
DefaultTheme.LIGHT to ThemeColors(
DefaultTheme.LIGHT to ResolvedColors.fromThemeColors(ThemeColors(
sentMessage = "#fffcf6ff",
sentQuote = "#fff2e0fc",
receivedMessage = "#ffF6F4F7",
receivedQuote = "#ffede9ee",
),
DefaultTheme.DARK to ThemeColors(
)),
DefaultTheme.DARK to ResolvedColors.fromThemeColors(ThemeColors(
sentMessage = "#ff33263B",
sentQuote = "#ff53385E",
receivedMessage = "#ff272528",
receivedQuote = "#ff3B373E",
),
DefaultTheme.SIMPLEX to ThemeColors(
)),
DefaultTheme.SIMPLEX to ResolvedColors.fromThemeColors(ThemeColors(
sentMessage = "#ff3C255D",
sentQuote = "#ff623485",
receivedMessage = "#ff26273B",
receivedQuote = "#ff3A394F",
),
DefaultTheme.BLACK to ThemeColors(
)),
DefaultTheme.BLACK to ResolvedColors.fromThemeColors(ThemeColors(
sentMessage = "#ff3C255D",
sentQuote = "#ff623485",
receivedMessage = "#ff231f23",
receivedQuote = "#ff2c2931",
),
)),
)
);