PosTheme.kt (5325B)
1 /* 2 * This file is part of GNU Taler 3 * (C) 2026 Taler Systems S.A. 4 * 5 * GNU Taler is free software; you can redistribute it and/or modify it under the 6 * terms of the GNU General Public License as published by the Free Software 7 * Foundation; either version 3, or (at your option) any later version. 8 * 9 * GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY 10 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 11 * A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 * 13 * You should have received a copy of the GNU General Public License along with 14 * GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> 15 */ 16 17 package net.taler.merchantpos.compose 18 19 import androidx.compose.foundation.isSystemInDarkTheme 20 import androidx.compose.material3.MaterialTheme 21 import androidx.compose.material3.darkColorScheme 22 import androidx.compose.material3.lightColorScheme 23 import androidx.compose.material3.Typography 24 import androidx.compose.runtime.Composable 25 import androidx.compose.ui.graphics.Color 26 27 private val PosLightColorScheme = lightColorScheme( 28 primary = Color(0xFF0042B3), 29 onPrimary = Color(0xFFFFFFFF), 30 primaryContainer = Color(0xFFD3DEFF), 31 onPrimaryContainer = Color(0xFF00134A), 32 inversePrimary = Color(0xFFB4C5FF), 33 secondary = Color(0xFF586A88), 34 onSecondary = Color(0xFFFFFFFF), 35 secondaryContainer = Color(0xFFD9E3F9), 36 onSecondaryContainer = Color(0xFF111C2B), 37 tertiary = Color(0xFF338AF0), 38 onTertiary = Color(0xFFFFFFFF), 39 tertiaryContainer = Color(0xFFD1E4FF), 40 onTertiaryContainer = Color(0xFF001C39), 41 error = Color(0xFFB3261E), 42 onError = Color(0xFFFFFFFF), 43 errorContainer = Color(0xFFF9DEDC), 44 onErrorContainer = Color(0xFF410E0B), 45 background = Color(0xFFFDFDFF), 46 onBackground = Color(0xFF1A1C1F), 47 surface = Color(0xFFFDFDFF), 48 onSurface = Color(0xFF1C1B1F), 49 surfaceVariant = Color(0xFFE0E3EC), 50 onSurfaceVariant = Color(0xFF45474F), 51 outline = Color(0xFF767880), 52 outlineVariant = Color(0xFFC4C6D0), 53 inverseSurface = Color(0xFF2C2F3A), 54 inverseOnSurface = Color(0xFFF0F2FF), 55 primaryFixed = Color(0xFFD3DEFF), 56 onPrimaryFixed = Color(0xFF00134A), 57 primaryFixedDim = Color(0xFFB4C5FF), 58 onPrimaryFixedVariant = Color(0xFF00379C), 59 secondaryFixed = Color(0xFFD9E3F9), 60 onSecondaryFixed = Color(0xFF111C2B), 61 secondaryFixedDim = Color(0xFFB0BDD3), 62 onSecondaryFixedVariant = Color(0xFF445670), 63 tertiaryFixed = Color(0xFFD1E4FF), 64 onTertiaryFixed = Color(0xFF001C39), 65 tertiaryFixedDim = Color(0xFFA2CDFF), 66 onTertiaryFixedVariant = Color(0xFF0C5EA5), 67 surfaceDim = Color(0xFFDADDE5), 68 surfaceBright = Color(0xFFFFFFFF), 69 surfaceContainerLowest = Color(0xFFFFFFFF), 70 surfaceContainerLow = Color(0xFFF5F7FC), 71 surfaceContainer = Color(0xFFF0F2F7), 72 surfaceContainerHigh = Color(0xFFEAECEF), 73 surfaceContainerHighest = Color(0xFFE3E6EB), 74 surfaceTint = Color(0xFF0042B3), 75 scrim = Color(0xFF000000), 76 ) 77 78 private val PosDarkColorScheme = darkColorScheme( 79 primary = Color(0xFFB4C5FF), 80 onPrimary = Color(0xFF002A78), 81 primaryContainer = Color(0xFF0042B3), 82 onPrimaryContainer = Color(0xFFE5EBFF), 83 inversePrimary = Color(0xFF2756C7), 84 secondary = Color(0xFFA4C9FF), 85 onSecondary = Color(0xFF00315D), 86 secondaryContainer = Color(0xFF72A3E5), 87 onSecondaryContainer = Color(0xFF003869), 88 tertiary = Color(0xFF8DD1E5), 89 onTertiary = Color(0xFF003641), 90 tertiaryContainer = Color(0xFF166577), 91 onTertiaryContainer = Color(0xFF9CE0F5), 92 error = Color(0xFFFFB4AA), 93 onError = Color(0xFF690003), 94 errorContainer = Color(0xFFB3261E), 95 onErrorContainer = Color(0xFFFFCBC4), 96 background = Color(0xFF11131A), 97 onBackground = Color(0xFFE2E2EB), 98 surface = Color(0xFF11131A), 99 onSurface = Color(0xFFE5E2E1), 100 surfaceVariant = Color(0xFF45474B), 101 onSurfaceVariant = Color(0xFFC6C6CB), 102 outline = Color(0xFF8F9095), 103 outlineVariant = Color(0xFF45474B), 104 inverseSurface = Color(0xFFE5E2E1), 105 inverseOnSurface = Color(0xFF313030), 106 primaryFixed = Color(0xFFDBE1FF), 107 onPrimaryFixed = Color(0xFF00174B), 108 primaryFixedDim = Color(0xFFB4C5FF), 109 onPrimaryFixedVariant = Color(0xFF003EA8), 110 secondaryFixed = Color(0xFFD4E3FF), 111 onSecondaryFixed = Color(0xFF001C39), 112 secondaryFixedDim = Color(0xFFA4C9FF), 113 onSecondaryFixedVariant = Color(0xFF004883), 114 tertiaryFixed = Color(0xFFAFECFF), 115 onTertiaryFixed = Color(0xFF001F27), 116 tertiaryFixedDim = Color(0xFF8DD1E5), 117 onTertiaryFixedVariant = Color(0xFF004E5D), 118 surfaceDim = Color(0xFF11131A), 119 surfaceBright = Color(0xFF3A3939), 120 surfaceContainerLowest = Color(0xFF0E0E0E), 121 surfaceContainerLow = Color(0xFF1C1B1B), 122 surfaceContainer = Color(0xFF201F1F), 123 surfaceContainerHigh = Color(0xFF2A2A2A), 124 surfaceContainerHighest = Color(0xFF353434), 125 surfaceTint = Color(0xFFB4C5FF), 126 scrim = Color(0xFF000000), 127 ) 128 129 @Composable 130 fun PosTheme( 131 darkTheme: Boolean = isSystemInDarkTheme(), 132 content: @Composable () -> Unit, 133 ) { 134 MaterialTheme( 135 colorScheme = if (darkTheme) PosDarkColorScheme else PosLightColorScheme, 136 typography = Typography(), 137 content = content, 138 ) 139 }