mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-09-01 20:08:57 +00:00
Recolor the built-in chat wallpaper schemes (light, dark, black)
Replace the six presets' light/dark/black colors with the new oklch-based scheme: incoming and outgoing bubbles are made clearly distinct — incoming get maximum contrast for readability, outgoing carry the theme's color (deeper and more saturated on dark and black). Preset colors are now Color values instead of hex strings, so they render in Display P3; user theme overrides and theme export are unchanged (still hex). Second of two commits for the new wallpaper schemes, paired with the pattern commit — the colors are tuned to those patterns. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
4f5b982a5e
commit
98ac977cb3
+37
-15
@@ -219,6 +219,14 @@ data class ThemeColors(
|
||||
}
|
||||
}
|
||||
|
||||
/** Resolved preset colors — Color objects, not strings. Used for presets defined in code. */
|
||||
data class ThemeColorsP3(
|
||||
val sentMessage: Color? = null,
|
||||
val sentQuote: Color? = null,
|
||||
val receivedMessage: Color? = null,
|
||||
val receivedQuote: Color? = null,
|
||||
)
|
||||
|
||||
// Spec: spec/services/theme.md#ThemeWallpaper
|
||||
@Serializable
|
||||
data class ThemeWallpaper (
|
||||
@@ -299,6 +307,20 @@ data class ThemesFile(
|
||||
val themes: List<ThemeOverrides> = emptyList()
|
||||
)
|
||||
|
||||
// Theme color priority: per-chat → per-user → this override's own colors →
|
||||
// preset-wallpaper-derived theme → base palette. Used by toColors / toAppColors
|
||||
// for every non-bubble field; bubble colors have wallpaper-aware logic that
|
||||
// can't share this chain.
|
||||
private fun resolveColor(
|
||||
perChatColor: String?,
|
||||
perUserColor: String?,
|
||||
ownColor: String?,
|
||||
baseColor: Color,
|
||||
): Color = perChatColor?.colorFromReadableHex()
|
||||
?: perUserColor?.colorFromReadableHex()
|
||||
?: ownColor?.colorFromReadableHex()
|
||||
?: baseColor
|
||||
|
||||
// Spec: spec/services/theme.md#ThemeOverrides
|
||||
@Serializable
|
||||
data class ThemeOverrides (
|
||||
@@ -340,7 +362,7 @@ data class ThemeOverrides (
|
||||
)
|
||||
}
|
||||
|
||||
fun toColors(base: DefaultTheme, perChatTheme: ThemeColors?, perUserTheme: ThemeColors?, presetWallpaperTheme: ThemeColors?): Colors {
|
||||
fun toColors(base: DefaultTheme, perChatTheme: ThemeColors?, perUserTheme: ThemeColors?, presetWallpaperTheme: ThemeColorsP3?): Colors {
|
||||
val baseColors = when (base) {
|
||||
DefaultTheme.LIGHT -> LightColorPalette
|
||||
DefaultTheme.DARK -> DarkColorPalette
|
||||
@@ -348,16 +370,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 = resolveColor(perChatTheme?.primary, perUserTheme?.primary, colors.primary, baseColors.primary),
|
||||
primaryVariant = resolveColor(perChatTheme?.primaryVariant, perUserTheme?.primaryVariant, colors.primaryVariant, baseColors.primaryVariant),
|
||||
secondary = resolveColor(perChatTheme?.secondary, perUserTheme?.secondary, colors.secondary, baseColors.secondary),
|
||||
secondaryVariant = resolveColor(perChatTheme?.secondaryVariant, perUserTheme?.secondaryVariant, colors.secondaryVariant, baseColors.secondaryVariant),
|
||||
background = resolveColor(perChatTheme?.background, perUserTheme?.background, colors.background, baseColors.background),
|
||||
surface = resolveColor(perChatTheme?.surface, perUserTheme?.surface, colors.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: ThemeColorsP3?): AppColors {
|
||||
val baseColors = when (base) {
|
||||
DefaultTheme.LIGHT -> LightColorPaletteApp
|
||||
DefaultTheme.DARK -> DarkColorPaletteApp
|
||||
@@ -365,13 +387,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 = resolveColor(perChatTheme?.title, perUserTheme?.title, colors.title, baseColors.title),
|
||||
primaryVariant2 = resolveColor(perChatTheme?.primaryVariant2, perUserTheme?.primaryVariant2, colors.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 +438,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: ThemeColorsP3?): ThemeColors {
|
||||
val c = toColors(base, perChatTheme, perUserTheme, presetWallpaperTheme)
|
||||
val ac = toAppColors(base, perChatTheme, perChatWallpaperType, perUserTheme, perUserWallpaperType, presetWallpaperTheme)
|
||||
return ThemeColors(
|
||||
|
||||
+183
-163
@@ -13,7 +13,6 @@ import androidx.compose.ui.unit.*
|
||||
import chat.simplex.common.model.ChatController.appPrefs
|
||||
import chat.simplex.common.platform.*
|
||||
import chat.simplex.common.ui.theme.*
|
||||
import chat.simplex.common.ui.theme.ThemeManager.colorFromReadableHex
|
||||
import chat.simplex.res.MR
|
||||
import dev.icerock.moko.resources.ImageResource
|
||||
import dev.icerock.moko.resources.StringResource
|
||||
@@ -30,215 +29,233 @@ enum class PresetWallpaper(
|
||||
val scaleDesktop: Float,
|
||||
val background: Map<DefaultTheme, Color>,
|
||||
val tint: Map<DefaultTheme, Color>,
|
||||
val colors: Map<DefaultTheme, ThemeColors>,
|
||||
val colors: Map<DefaultTheme, ThemeColorsP3>,
|
||||
) {
|
||||
CATS(MR.images.wallpaper_cats, MR.images.wallpaper_cats_desktop, "cats", 0.5f, 0.8f,
|
||||
wallpaperBackgrounds(light = "#ffF8F6EA"),
|
||||
CATS(res = MR.images.wallpaper_cats, resDesktop = MR.images.wallpaper_cats_desktop, filename = "cats", scale = 0.5f, scaleDesktop = 0.8f,
|
||||
wallpaperBackgrounds(
|
||||
light = oklch(0.9838867f, 0.021334622f, 95.39152f),
|
||||
dark = oklch(0.1800f, 0.0250f, 77f),
|
||||
),
|
||||
tint = mapOf(
|
||||
DefaultTheme.LIGHT to "#ffefdca6".colorFromReadableHex(),
|
||||
DefaultTheme.DARK to "#ff4b3b0e".colorFromReadableHex(),
|
||||
DefaultTheme.SIMPLEX to "#ff51400f".colorFromReadableHex(),
|
||||
DefaultTheme.BLACK to "#ff4b3b0e".colorFromReadableHex()
|
||||
DefaultTheme.LIGHT to oklch(0.92822266f, 0.05571678f, 95.39152f),
|
||||
DefaultTheme.DARK to oklch(0.2940f, 0.0567f, 77f),
|
||||
DefaultTheme.SIMPLEX to oklch(0.3797781f, 0.06842897f, 88.88896f), // #ff51400f
|
||||
DefaultTheme.BLACK to oklch(0.36010742f, 0.07737845f, 64.32541f)
|
||||
),
|
||||
mapOf(
|
||||
DefaultTheme.LIGHT to ThemeColors(
|
||||
sentMessage = "#fffffaed",
|
||||
sentQuote = "#fffaf0d6",
|
||||
receivedMessage = "#ffF8F7F4",
|
||||
receivedQuote = "#ffefede9",
|
||||
DefaultTheme.LIGHT to ThemeColorsP3(
|
||||
sentMessage = oklch(0.95458984f, 0.05769427f, 95.39152f),
|
||||
sentQuote = oklch(0.9350586f, 0.081934035f, 95.39152f),
|
||||
receivedMessage = oklch(0.9941406f, 0.009641647f, 95.39152f),
|
||||
receivedQuote = oklch(0.9741211f, 0.033454504f, 95.39152f),
|
||||
),
|
||||
DefaultTheme.DARK to ThemeColors(
|
||||
sentMessage = "#ff2f2919",
|
||||
sentQuote = "#ff473a1d",
|
||||
receivedMessage = "#ff272624",
|
||||
receivedQuote = "#ff373633",
|
||||
DefaultTheme.DARK to ThemeColorsP3(
|
||||
sentMessage = oklch(0.3130f, 0.0630f, 77f),
|
||||
sentQuote = oklch(0.3700f, 0.0725f, 77f),
|
||||
receivedMessage = oklch(0.2560f, 0.0278f, 77f),
|
||||
receivedQuote = oklch(0.2940f, 0.0320f, 77f),
|
||||
),
|
||||
DefaultTheme.SIMPLEX to ThemeColors(
|
||||
sentMessage = "#ff41371b",
|
||||
sentQuote = "#ff654f1c",
|
||||
receivedMessage = "#ff272624",
|
||||
receivedQuote = "#ff373633",
|
||||
DefaultTheme.SIMPLEX to ThemeColorsP3(
|
||||
sentMessage = oklch(0.3402031f, 0.04537511f, 90.2498f), // #ff41371b
|
||||
sentQuote = oklch(0.4398707f, 0.0737883f, 85.23908f), // #ff654f1c
|
||||
receivedMessage = oklch(0.2689313f, 0.003935312f, 84.58291f), // #ff272624
|
||||
receivedQuote = oklch(0.332832f, 0.005361989f, 91.54412f), // #ff373633
|
||||
),
|
||||
DefaultTheme.BLACK to ThemeColors(
|
||||
sentMessage = "#ff41371b",
|
||||
sentQuote = "#ff654f1c",
|
||||
receivedMessage = "#ff1f1e1b",
|
||||
receivedQuote = "#ff2f2d27",
|
||||
DefaultTheme.BLACK to ThemeColorsP3(
|
||||
sentMessage = oklch(0.24145508f, 0.054447953f, 64.32541f),
|
||||
sentQuote = oklch(0.33200073f, 0.07415811f, 64.32541f),
|
||||
receivedMessage = oklch(0.12072754f, 0.0f, 64.32541f),
|
||||
receivedQuote = oklch(0.22133382f, 0.0f, 64.32541f),
|
||||
),
|
||||
)
|
||||
),
|
||||
FLOWERS(MR.images.wallpaper_flowers, MR.images.wallpaper_flowers_desktop, "flowers", 0.5f, 0.8f,
|
||||
wallpaperBackgrounds(light = "#ffE2FFE4"),
|
||||
FLOWERS(res = MR.images.wallpaper_flowers, resDesktop = MR.images.wallpaper_flowers_desktop, filename = "flowers", scale = 0.5f, scaleDesktop = 0.8f,
|
||||
wallpaperBackgrounds(
|
||||
light = oklch(0.9838867f, 0.02136218f, 130.21953f),
|
||||
dark = oklch(0.1800f, 0.0250f, 130f),
|
||||
),
|
||||
tint = mapOf(
|
||||
DefaultTheme.LIGHT to "#ff9CEA59".colorFromReadableHex(),
|
||||
DefaultTheme.DARK to "#ff31560D".colorFromReadableHex(),
|
||||
DefaultTheme.SIMPLEX to "#ff36600f".colorFromReadableHex(),
|
||||
DefaultTheme.BLACK to "#ff31560D".colorFromReadableHex()
|
||||
DefaultTheme.LIGHT to oklch(0.91506225f, 0.054591343f, 130.21953f),
|
||||
DefaultTheme.DARK to oklch(0.3130f, 0.0567f, 130f),
|
||||
DefaultTheme.SIMPLEX to oklch(0.4415422f, 0.1170956f, 133.8571f), // #ff36600f
|
||||
DefaultTheme.BLACK to oklch(0.36254883f, 0.10072228f, 132.04506f)
|
||||
),
|
||||
mapOf(
|
||||
DefaultTheme.LIGHT to ThemeColors(
|
||||
sentMessage = "#fff1ffe5",
|
||||
sentQuote = "#ffdcf9c4",
|
||||
receivedMessage = "#ffF4F8F2",
|
||||
receivedQuote = "#ffe7ece7",
|
||||
DefaultTheme.LIGHT to ThemeColorsP3(
|
||||
sentMessage = oklch(0.9542969f, 0.067714185f, 130.21953f),
|
||||
sentQuote = oklch(0.9345703f, 0.09861551f, 130.21953f),
|
||||
receivedMessage = oklch(0.9951172f, 0.010222077f, 130.21953f),
|
||||
receivedQuote = oklch(0.97402346f, 0.036812846f, 130.21953f),
|
||||
),
|
||||
DefaultTheme.DARK to ThemeColors(
|
||||
sentMessage = "#ff163521",
|
||||
sentQuote = "#ff1B5330",
|
||||
receivedMessage = "#ff242523",
|
||||
receivedQuote = "#ff353733",
|
||||
DefaultTheme.DARK to ThemeColorsP3(
|
||||
sentMessage = oklch(0.3130f, 0.0630f, 130f),
|
||||
sentQuote = oklch(0.3700f, 0.0725f, 130f),
|
||||
receivedMessage = oklch(0.2560f, 0.0278f, 130f),
|
||||
receivedQuote = oklch(0.2940f, 0.0320f, 130f),
|
||||
),
|
||||
DefaultTheme.SIMPLEX to ThemeColors(
|
||||
sentMessage = "#ff184739",
|
||||
sentQuote = "#ff1F6F4B",
|
||||
receivedMessage = "#ff242523",
|
||||
receivedQuote = "#ff353733",
|
||||
DefaultTheme.SIMPLEX to ThemeColorsP3(
|
||||
sentMessage = oklch(0.3611755f, 0.05678164f, 170.3752f), // #ff184739
|
||||
sentQuote = oklch(0.484029f, 0.09629127f, 159.5568f), // #ff1F6F4B
|
||||
receivedMessage = oklch(0.2626721f, 0.003936427f, 128.6285f), // #ff242523
|
||||
receivedQuote = oklch(0.3334174f, 0.007411477f, 128.7105f), // #ff353733
|
||||
),
|
||||
DefaultTheme.BLACK to ThemeColors(
|
||||
sentMessage = "#ff184739",
|
||||
sentQuote = "#ff1F6F4B",
|
||||
receivedMessage = "#ff1c1f1a",
|
||||
receivedQuote = "#ff282b25",
|
||||
DefaultTheme.BLACK to ThemeColorsP3(
|
||||
sentMessage = oklch(0.24267578f, 0.06739509f, 132.04506f),
|
||||
sentQuote = oklch(0.3336792f, 0.091792114f, 132.04506f),
|
||||
receivedMessage = oklch(0.12133789f, 0.0f, 132.04506f),
|
||||
receivedQuote = oklch(0.2224528f, 0.0f, 132.04506f),
|
||||
),
|
||||
)
|
||||
),
|
||||
HEARTS(MR.images.wallpaper_hearts, MR.images.wallpaper_hearts_desktop, "hearts", 0.5f, 0.8f,
|
||||
wallpaperBackgrounds(light = "#ffFDECEC"),
|
||||
HEARTS(res = MR.images.wallpaper_hearts, resDesktop = MR.images.wallpaper_hearts_desktop, filename = "hearts", scale = 0.5f, scaleDesktop = 0.8f,
|
||||
wallpaperBackgrounds(
|
||||
light = oklch(0.9780521f, 0.010869741f, 10.569774f),
|
||||
dark = oklch(0.1800f, 0.0250f, 5f),
|
||||
),
|
||||
tint = mapOf(
|
||||
DefaultTheme.LIGHT to "#fffde0e0".colorFromReadableHex(),
|
||||
DefaultTheme.DARK to "#ff3c0f0f".colorFromReadableHex(),
|
||||
DefaultTheme.SIMPLEX to "#ff411010".colorFromReadableHex(),
|
||||
DefaultTheme.BLACK to "#ff3C0F0F".colorFromReadableHex()
|
||||
DefaultTheme.LIGHT to oklch(0.9399476f, 0.030744314f, 10.569774f),
|
||||
DefaultTheme.DARK to oklch(0.2940f, 0.0567f, 5f),
|
||||
DefaultTheme.SIMPLEX to oklch(0.2574974f, 0.07614605f, 24.19117f), // #ff411010
|
||||
DefaultTheme.BLACK to oklch(0.30926332f, 0.12386322f, 7.8465395f)
|
||||
),
|
||||
mapOf(
|
||||
DefaultTheme.LIGHT to ThemeColors(
|
||||
sentMessage = "#fffff4f4",
|
||||
sentQuote = "#ffffdfdf",
|
||||
receivedMessage = "#fff8f6f6",
|
||||
receivedQuote = "#ffefebeb",
|
||||
DefaultTheme.LIGHT to ThemeColorsP3(
|
||||
sentMessage = oklch(0.95283204f, 0.023875237f, 10.569774f),
|
||||
sentQuote = oklch(0.9364258f, 0.032649755f, 10.569774f),
|
||||
receivedMessage = oklch(0.99121094f, 0.004304409f, 10.569774f),
|
||||
receivedQuote = oklch(0.9665039f, 0.016754389f, 10.569774f),
|
||||
),
|
||||
DefaultTheme.DARK to ThemeColors(
|
||||
sentMessage = "#ff301515",
|
||||
sentQuote = "#ff4C1818",
|
||||
receivedMessage = "#ff242121",
|
||||
receivedQuote = "#ff3b3535",
|
||||
DefaultTheme.DARK to ThemeColorsP3(
|
||||
sentMessage = oklch(0.3130f, 0.0630f, 5f),
|
||||
sentQuote = oklch(0.3700f, 0.0725f, 5f),
|
||||
receivedMessage = oklch(0.2560f, 0.0278f, 5f),
|
||||
receivedQuote = oklch(0.2940f, 0.0320f, 5f),
|
||||
),
|
||||
DefaultTheme.SIMPLEX to ThemeColors(
|
||||
sentMessage = "#ff491A28",
|
||||
sentQuote = "#ff761F29",
|
||||
receivedMessage = "#ff242121",
|
||||
receivedQuote = "#ff3b3535",
|
||||
DefaultTheme.SIMPLEX to ThemeColorsP3(
|
||||
sentMessage = oklch(0.2941874f, 0.07322977f, 4.102547f), // #ff491A28
|
||||
sentQuote = oklch(0.3831088f, 0.1201278f, 18.61089f), // #ff761F29
|
||||
receivedMessage = oklch(0.2510736f, 0.004554155f, 17.46058f), // #ff242121
|
||||
receivedQuote = oklch(0.3352158f, 0.008515606f, 17.58481f), // #ff3b3535
|
||||
),
|
||||
DefaultTheme.BLACK to ThemeColors(
|
||||
sentMessage = "#ff491A28",
|
||||
sentQuote = "#ff761F29",
|
||||
receivedMessage = "#ff1f1b1b",
|
||||
receivedQuote = "#ff2e2626",
|
||||
DefaultTheme.BLACK to ThemeColorsP3(
|
||||
sentMessage = oklch(0.24780273f, 0.085917726f, 7.8465395f),
|
||||
sentQuote = oklch(0.34072876f, 0.117019944f, 7.8465395f),
|
||||
receivedMessage = oklch(0.12390137f, 0.0f, 7.8465395f),
|
||||
receivedQuote = oklch(0.22715251f, 0.0f, 7.8465395f),
|
||||
),
|
||||
)
|
||||
),
|
||||
KIDS(MR.images.wallpaper_kids, MR.images.wallpaper_kids_desktop, "kids", 0.5f, 0.8f,
|
||||
wallpaperBackgrounds(light = "#ffdbfdfb"),
|
||||
KIDS(res = MR.images.wallpaper_kids, resDesktop = MR.images.wallpaper_kids_desktop, filename = "kids", scale = 0.5f, scaleDesktop = 0.8f,
|
||||
wallpaperBackgrounds(
|
||||
light = oklch(0.98472977f, 0.01831758f, 200.66322f),
|
||||
dark = oklch(0.18017578f, 0.025585549f, 199.76416f),
|
||||
),
|
||||
tint = mapOf(
|
||||
DefaultTheme.LIGHT to "#ffadeffc".colorFromReadableHex(),
|
||||
DefaultTheme.DARK to "#ff16404B".colorFromReadableHex(),
|
||||
DefaultTheme.SIMPLEX to "#ff184753".colorFromReadableHex(),
|
||||
DefaultTheme.BLACK to "#ff16404B".colorFromReadableHex()
|
||||
DefaultTheme.LIGHT to oklch(0.9382386f, 0.035245255f, 200.66322f),
|
||||
DefaultTheme.DARK to oklch(0.2585798f, 0.043961763f, 199.76416f),
|
||||
DefaultTheme.SIMPLEX to oklch(0.3716418f, 0.05389406f, 217.7104f), // #ff184753
|
||||
DefaultTheme.BLACK to oklch(0.2880891f, 0.049433947f, 192.22177f)
|
||||
),
|
||||
mapOf(
|
||||
DefaultTheme.LIGHT to ThemeColors(
|
||||
sentMessage = "#ffeafeff",
|
||||
sentQuote = "#ffcbf4f7",
|
||||
receivedMessage = "#fff3fafa",
|
||||
receivedQuote = "#ffe4efef",
|
||||
DefaultTheme.LIGHT to ThemeColorsP3(
|
||||
sentMessage = oklch(0.9599414f, 0.029920436f, 200.66322f),
|
||||
sentQuote = oklch(0.9388867f, 0.038093355f, 200.66322f),
|
||||
receivedMessage = oklch(0.9941406f, 0.007004261f, 200.66322f),
|
||||
receivedQuote = oklch(0.97333986f, 0.024719488f, 200.66322f),
|
||||
),
|
||||
DefaultTheme.DARK to ThemeColors(
|
||||
sentMessage = "#ff16302F",
|
||||
sentQuote = "#ff1a4a49",
|
||||
receivedMessage = "#ff252626",
|
||||
receivedQuote = "#ff373A39",
|
||||
DefaultTheme.DARK to ThemeColorsP3(
|
||||
sentMessage = oklch(0.3173828f, 0.05395502f, 199.76416f),
|
||||
sentQuote = oklch(0.37618583f, 0.062117502f, 199.76416f),
|
||||
receivedMessage = oklch(0.2585798f, 0.028428389f, 199.76416f),
|
||||
receivedQuote = oklch(0.29778183f, 0.032692645f, 199.76416f),
|
||||
),
|
||||
DefaultTheme.SIMPLEX to ThemeColors(
|
||||
sentMessage = "#ff1a4745",
|
||||
sentQuote = "#ff1d6b69",
|
||||
receivedMessage = "#ff252626",
|
||||
receivedQuote = "#ff373a39",
|
||||
DefaultTheme.SIMPLEX to ThemeColorsP3(
|
||||
sentMessage = oklch(0.3662882f, 0.04909204f, 191.2229f), // #ff1a4745
|
||||
sentQuote = oklch(0.4817563f, 0.07299667f, 192.4874f), // #ff1d6b69
|
||||
receivedMessage = oklch(0.2675764f, 0.001466786f, 197.0692f), // #ff252626
|
||||
receivedQuote = oklch(0.3451987f, 0.004436687f, 174.2088f), // #ff373a39
|
||||
),
|
||||
DefaultTheme.BLACK to ThemeColors(
|
||||
sentMessage = "#ff1a4745",
|
||||
sentQuote = "#ff1d6b69",
|
||||
receivedMessage = "#ff1e1f1f",
|
||||
receivedQuote = "#ff262b29",
|
||||
DefaultTheme.BLACK to ThemeColorsP3(
|
||||
sentMessage = oklch(0.24645996f, 0.042290688f, 192.22177f),
|
||||
sentQuote = oklch(0.33888245f, 0.057626568f, 192.22177f),
|
||||
receivedMessage = oklch(0.12322998f, 0.0f, 192.22177f),
|
||||
receivedQuote = oklch(0.22592163f, 0.0f, 192.22177f),
|
||||
),
|
||||
)
|
||||
),
|
||||
SCHOOL(MR.images.wallpaper_school, MR.images.wallpaper_school_desktop, "school", 0.5f, 0.8f,
|
||||
wallpaperBackgrounds(light = "#ffE7F5FF"),
|
||||
SCHOOL(res = MR.images.wallpaper_school, resDesktop = MR.images.wallpaper_school_desktop, filename = "school", scale = 0.5f, scaleDesktop = 0.8f,
|
||||
wallpaperBackgrounds(
|
||||
light = oklch(0.9837532f, 0.010169387f, 225.85442f),
|
||||
dark = oklch(0.17883301f, 0.024886385f, 251.75946f),
|
||||
),
|
||||
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.94544077f, 0.029549051f, 225.85442f),
|
||||
DefaultTheme.DARK to oklch(0.2515276f, 0.05627329f, 251.75946f),
|
||||
DefaultTheme.SIMPLEX to oklch(0.2929108f, 0.05102392f, 240.8139f), // #ff112f43
|
||||
DefaultTheme.BLACK to oklch(0.27668023f, 0.09167254f, 255.17474f)
|
||||
),
|
||||
mapOf(
|
||||
DefaultTheme.LIGHT to ThemeColors(
|
||||
sentMessage = "#ffeef9ff",
|
||||
sentQuote = "#ffD6EDFA",
|
||||
receivedMessage = "#ffF3F5F9",
|
||||
receivedQuote = "#ffe4e8ee",
|
||||
DefaultTheme.LIGHT to ThemeColorsP3(
|
||||
sentMessage = oklch(0.95765626f, 0.026757836f, 225.85442f),
|
||||
sentQuote = oklch(0.93779296f, 0.038093355f, 225.85442f),
|
||||
receivedMessage = oklch(0.9941406f, 0.0036548972f, 225.85442f),
|
||||
receivedQuote = oklch(0.9731055f, 0.016901612f, 225.85442f),
|
||||
),
|
||||
DefaultTheme.DARK to ThemeColors(
|
||||
sentMessage = "#ff172833",
|
||||
sentQuote = "#ff1C3E4F",
|
||||
receivedMessage = "#ff26282c",
|
||||
receivedQuote = "#ff393c40",
|
||||
DefaultTheme.DARK to ThemeColorsP3(
|
||||
sentMessage = oklch(0.31274414f, 0.06245613f, 251.75946f),
|
||||
sentQuote = oklch(0.37013462f, 0.07182455f, 251.75946f),
|
||||
receivedMessage = oklch(0.25535366f, 0.02765154f, 251.75946f),
|
||||
receivedQuote = oklch(0.29361397f, 0.031799268f, 251.75946f),
|
||||
),
|
||||
DefaultTheme.SIMPLEX to ThemeColors(
|
||||
sentMessage = "#ff1A3C5D",
|
||||
sentQuote = "#ff235b80",
|
||||
receivedMessage = "#ff26282c",
|
||||
receivedQuote = "#ff393c40",
|
||||
DefaultTheme.SIMPLEX to ThemeColorsP3(
|
||||
sentMessage = oklch(0.3481476f, 0.07023843f, 249.9258f), // #ff1A3C5D
|
||||
sentQuote = oklch(0.4520089f, 0.08394515f, 241.1934f), // #ff235b80
|
||||
receivedMessage = oklch(0.2764251f, 0.007910611f, 264.4375f), // #ff26282c
|
||||
receivedQuote = oklch(0.3548081f, 0.00803458f, 255.5451f), // #ff393c40
|
||||
),
|
||||
DefaultTheme.BLACK to ThemeColors(
|
||||
sentMessage = "#ff1A3C5D",
|
||||
sentQuote = "#ff235b80",
|
||||
receivedMessage = "#ff1d1e22",
|
||||
receivedQuote = "#ff292b2f",
|
||||
DefaultTheme.BLACK to ThemeColorsP3(
|
||||
sentMessage = oklch(0.24328613f, 0.08060831f, 255.17474f),
|
||||
sentQuote = oklch(0.33451843f, 0.10981243f, 255.17474f),
|
||||
receivedMessage = oklch(0.12164307f, 0.0f, 255.17474f),
|
||||
receivedQuote = oklch(0.22301228f, 0.0f, 255.17474f),
|
||||
),
|
||||
)
|
||||
),
|
||||
TRAVEL(MR.images.wallpaper_travel, MR.images.wallpaper_travel_desktop, "travel", 0.5f, 0.8f,
|
||||
wallpaperBackgrounds(light = "#fff9eeff"),
|
||||
TRAVEL(res = MR.images.wallpaper_travel, resDesktop = MR.images.wallpaper_travel_desktop, filename = "travel", scale = 0.5f, scaleDesktop = 0.8f,
|
||||
wallpaperBackgrounds(
|
||||
light = oklch(0.9835678f, 0.01424849f, 325.37686f),
|
||||
dark = oklch(0.17980957f, 0.025278661f, 316.56534f),
|
||||
),
|
||||
tint = mapOf(
|
||||
DefaultTheme.LIGHT to "#ffeedbfe".colorFromReadableHex(),
|
||||
DefaultTheme.DARK to "#ff311E48".colorFromReadableHex(),
|
||||
DefaultTheme.SIMPLEX to "#ff35204e".colorFromReadableHex(),
|
||||
DefaultTheme.BLACK to "#ff311E48".colorFromReadableHex()
|
||||
DefaultTheme.LIGHT to oklch(0.9464822f, 0.035007913f, 325.37686f),
|
||||
DefaultTheme.DARK to oklch(0.27441406f, 0.0701345f, 316.56534f),
|
||||
DefaultTheme.SIMPLEX to oklch(0.2948376f, 0.08277514f, 302.7197f), // #ff35204e
|
||||
DefaultTheme.BLACK to oklch(0.2714336f, 0.1344262f, 313.97916f)
|
||||
),
|
||||
mapOf(
|
||||
DefaultTheme.LIGHT to ThemeColors(
|
||||
sentMessage = "#fffcf6ff",
|
||||
sentQuote = "#fff2e0fc",
|
||||
receivedMessage = "#ffF6F4F7",
|
||||
receivedQuote = "#ffede9ee",
|
||||
DefaultTheme.LIGHT to ThemeColorsP3(
|
||||
sentMessage = oklch(0.9571094f, 0.032885246f, 325.37686f),
|
||||
sentQuote = oklch(0.9408496f, 0.043789558f, 325.37686f),
|
||||
receivedMessage = oklch(0.9921875f, 0.0067495108f, 325.37686f),
|
||||
receivedQuote = oklch(0.9701172f, 0.024161799f, 325.37686f),
|
||||
),
|
||||
DefaultTheme.DARK to ThemeColors(
|
||||
sentMessage = "#ff33263B",
|
||||
sentQuote = "#ff53385E",
|
||||
receivedMessage = "#ff272528",
|
||||
receivedQuote = "#ff3B373E",
|
||||
DefaultTheme.DARK to ThemeColorsP3(
|
||||
sentMessage = oklch(0.31201172f, 0.066930376f, 316.56534f),
|
||||
sentQuote = oklch(0.36866978f, 0.07696993f, 316.56534f),
|
||||
receivedMessage = oklch(0.25535366f, 0.028087402f, 316.56534f),
|
||||
receivedQuote = oklch(0.2931257f, 0.03230051f, 316.56534f),
|
||||
),
|
||||
DefaultTheme.SIMPLEX to ThemeColors(
|
||||
sentMessage = "#ff3C255D",
|
||||
sentQuote = "#ff623485",
|
||||
receivedMessage = "#ff26273B",
|
||||
receivedQuote = "#ff3A394F",
|
||||
DefaultTheme.SIMPLEX to ThemeColorsP3(
|
||||
sentMessage = oklch(0.3234681f, 0.09690244f, 299.9634f), // #ff3C255D
|
||||
sentQuote = oklch(0.4226042f, 0.1341495f, 307.8573f), // #ff623485
|
||||
receivedMessage = oklch(0.2812692f, 0.03669397f, 281.5485f), // #ff26273B
|
||||
receivedQuote = oklch(0.355058f, 0.03791292f, 286.3773f), // #ff3A394F
|
||||
),
|
||||
DefaultTheme.BLACK to ThemeColors(
|
||||
sentMessage = "#ff3C255D",
|
||||
sentQuote = "#ff623485",
|
||||
receivedMessage = "#ff231f23",
|
||||
receivedQuote = "#ff2c2931",
|
||||
DefaultTheme.BLACK to ThemeColorsP3(
|
||||
sentMessage = oklch(0.2446289f, 0.09382912f, 313.97916f),
|
||||
sentQuote = oklch(0.33636475f, 0.12779526f, 313.97916f),
|
||||
receivedMessage = oklch(0.12231445f, 0.0f, 313.97916f),
|
||||
receivedQuote = oklch(0.22424316f, 0.0f, 313.97916f),
|
||||
),
|
||||
)
|
||||
);
|
||||
@@ -255,12 +272,15 @@ enum class PresetWallpaper(
|
||||
}
|
||||
}
|
||||
|
||||
fun wallpaperBackgrounds(light: String): Map<DefaultTheme, Color> =
|
||||
fun wallpaperBackgrounds(
|
||||
light: Color,
|
||||
dark: Color,
|
||||
): Map<DefaultTheme, Color> =
|
||||
mapOf(
|
||||
DefaultTheme.LIGHT to light.colorFromReadableHex(),
|
||||
DefaultTheme.DARK to "#ff121212".colorFromReadableHex(),
|
||||
DefaultTheme.SIMPLEX to "#ff111528".colorFromReadableHex(),
|
||||
DefaultTheme.BLACK to "#ff070707".colorFromReadableHex()
|
||||
DefaultTheme.LIGHT to light,
|
||||
DefaultTheme.DARK to dark,
|
||||
DefaultTheme.SIMPLEX to oklch(0.2024453f, 0.03849037f, 273.4875f), // #ff111528
|
||||
DefaultTheme.BLACK to oklch(0f, 0f, 0f) // #ff000000 — pure black for hyper-contrast theme
|
||||
)
|
||||
|
||||
@Serializable
|
||||
|
||||
Reference in New Issue
Block a user