taler-android

Android apps for GNU Taler (wallet, PoS, cashier)
Log | Files | Refs | README | LICENSE

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 }