git.iko.soy/parseable-android
on 0da331f help sign in
67 lines 2.1 kB history raw
1package com.parseable.android.ui.theme
3import android.os.Build
4import androidx.compose.foundation.isSystemInDarkTheme
5import androidx.compose.material3.*
6import androidx.compose.runtime.Composable
7import androidx.compose.ui.graphics.Color
8import androidx.compose.ui.platform.LocalContext
10private val ParseablePrimary = Color(0xFF545BEB)
11private val ParseableOnPrimary = Color(0xFFFFFFFF)
12private val ParseableSecondary = Color(0xFF3D43B0)
13private val ParseableTertiary = Color(0xFF7C82FF)
15private val DarkColorScheme = darkColorScheme(
16 primary = ParseableTertiary, // Lighter variant for dark background readability
17 onPrimary = Color.White,
18 secondary = ParseablePrimary,
19 tertiary = ParseableSecondary,
20 background = Color(0xFF0F1117),
21 surface = Color(0xFF1A1B23),
22 surfaceVariant = Color(0xFF25262F),
23 onBackground = Color(0xFFE3E3E8),
24 onSurface = Color(0xFFE3E3E8),
25 onSurfaceVariant = Color(0xFFA0A1A8),
26 outline = Color(0xFF3A3B44),
27 error = Color(0xFFFF6B6B),
28 onError = Color.White,
31private val LightColorScheme = lightColorScheme(
32 primary = ParseablePrimary,
33 onPrimary = Color.White,
34 secondary = ParseableSecondary,
35 tertiary = ParseableTertiary,
36 background = Color(0xFFF8F8FC),
37 surface = Color.White,
38 surfaceVariant = Color(0xFFF0F0F6),
39 onBackground = Color(0xFF1A1B23),
40 onSurface = Color(0xFF1A1B23),
41 onSurfaceVariant = Color(0xFF5A5B64),
42 outline = Color(0xFFD0D0D8),
43 error = Color(0xFFD32F2F),
44 onError = Color.White,
47@Composable
48fun ParseableTheme(
49 darkTheme: Boolean = isSystemInDarkTheme(),
50 dynamicColor: Boolean = false,
51 content: @Composable () -> Unit,
52) {
53 val colorScheme = when {
54 dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> {
55 val context = LocalContext.current
56 if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context)
57 }
58 darkTheme -> DarkColorScheme
59 else -> LightColorScheme
60 }
62 MaterialTheme(
63 colorScheme = colorScheme,
64 typography = Typography(),
65 content = content,
66 )