git.iko.soy/opencode-android
on 29df003 help sign in
66 lines 2.2 kB history raw
1package soy.iko.opencode.ui.theme
3import android.os.Build
4import androidx.compose.foundation.isSystemInDarkTheme
5import androidx.compose.material3.MaterialTheme
6import androidx.compose.material3.darkColorScheme
7import androidx.compose.material3.dynamicDarkColorScheme
8import androidx.compose.material3.dynamicLightColorScheme
9import androidx.compose.material3.lightColorScheme
10import androidx.compose.runtime.Composable
11import androidx.compose.ui.graphics.Color
12import androidx.compose.ui.platform.LocalContext
14private val DarkColors = darkColorScheme(
15 primary = Emerald,
16 onPrimary = Color(0xFF0F1115),
17 primaryContainer = Color(0xFF1A3D2A),
18 onPrimaryContainer = Color(0xFFA8E6C1),
19 secondary = EmeraldDark,
20 tertiaryContainer = Color(0xFF2A2A3D),
21 onTertiaryContainer = Color(0xFFC5C5E6),
22 errorContainer = Color(0xFF4D2626),
23 onErrorContainer = Color(0xFFFFB4B4),
24 background = DarkBackground,
25 surface = DarkSurface,
26 surfaceVariant = DarkSurfaceVariant,
27 onSurface = DarkOnSurface,
28 outline = DarkOutline,
31private val LightColors = lightColorScheme(
32 primary = EmeraldDark,
33 primaryContainer = Color(0xFFD7F5E3),
34 onPrimaryContainer = Color(0xFF0A3D22),
35 secondary = Emerald,
36 tertiaryContainer = Color(0xFFE8E8F5),
37 onTertiaryContainer = Color(0xFF2A2A4D),
38 errorContainer = Color(0xFFFFE0E0),
39 onErrorContainer = Color(0xFF660000),
40 background = LightBackground,
41 surface = LightSurface,
42 surfaceVariant = LightSurfaceVariant,
43 onSurface = LightOnSurface,
44 outline = LightOutline,
47@Composable
48fun OpencodeTheme(
49 darkTheme: Boolean = isSystemInDarkTheme(),
50 dynamicColor: Boolean = false,
51 content: @Composable () -> Unit,
52) {
53 val context = LocalContext.current
54 val colorScheme = when {
55 dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S ->
56 if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context)
57 darkTheme -> DarkColors
58 else -> LightColors
59 }
61 MaterialTheme(
62 colorScheme = colorScheme,
63 typography = AppTypography,
64 content = content,
65 )