109 lines
3.6 KiB
Kotlin
109 lines
3.6 KiB
Kotlin
package com.taskttl.ui.theme
|
|
|
|
import androidx.compose.foundation.isSystemInDarkTheme
|
|
import androidx.compose.material3.MaterialTheme
|
|
import androidx.compose.material3.darkColorScheme
|
|
import androidx.compose.material3.lightColorScheme
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.ui.graphics.Color
|
|
|
|
/** 浅色方案 */
|
|
private val LightColorScheme = lightColorScheme(
|
|
primary = Color(0xFF667EEA),
|
|
onPrimary = Color(0xFFFFFFFF),
|
|
primaryContainer = Color(0xFFEADDFF),
|
|
onPrimaryContainer = Color(0xFF21005D),
|
|
secondary = Color(0xFF764BA2),
|
|
onSecondary = Color(0xFFFFFFFF),
|
|
secondaryContainer = Color(0xFFE8DEF8),
|
|
onSecondaryContainer = Color(0xFF1D192B),
|
|
tertiary = Color(0xFF7D5260),
|
|
onTertiary = Color(0xFFFFFFFF),
|
|
tertiaryContainer = Color(0xFFFFD8E4),
|
|
onTertiaryContainer = Color(0xFF31111D),
|
|
error = Color(0xFFBA1A1A),
|
|
onError = Color(0xFFFFFFFF),
|
|
errorContainer = Color(0xFFFFDAD6),
|
|
onErrorContainer = Color(0xFF410002),
|
|
background = Color(0xFFF5F5F5),
|
|
onBackground = Color(0xFF1C1B1F),
|
|
surface = Color(0xFFFFFBFE),
|
|
onSurface = Color(0xFF1C1B1F),
|
|
surfaceVariant = Color(0xFFE7E0EC),
|
|
onSurfaceVariant = Color(0xFF49454F),
|
|
outline = Color(0xFF79747E),
|
|
outlineVariant = Color(0xFFCAC4D0),
|
|
scrim = Color(0xFF000000),
|
|
inverseSurface = Color(0xFF313033),
|
|
inverseOnSurface = Color(0xFFF4EFF4),
|
|
inversePrimary = Color(0xFFD0BCFF),
|
|
surfaceDim = Color(0xFFDDD8DD),
|
|
surfaceBright = Color(0xFFFFFBFE),
|
|
surfaceContainerLowest = Color(0xFFFFFFFF),
|
|
surfaceContainerLow = Color(0xFFF7F2FA),
|
|
surfaceContainer = Color(0xFFF1ECF4),
|
|
surfaceContainerHigh = Color(0xFFECE6F0),
|
|
surfaceContainerHighest = Color(0xFFE6E0E9)
|
|
)
|
|
|
|
/** 深色配色方案 */
|
|
private val DarkColorScheme = darkColorScheme(
|
|
primary = Color(0xFFD0BCFF),
|
|
onPrimary = Color(0xFF381E72),
|
|
primaryContainer = Color(0xFF4F378B),
|
|
onPrimaryContainer = Color(0xFFEADDFF),
|
|
secondary = Color(0xFFCCC2DC),
|
|
onSecondary = Color(0xFF332D41),
|
|
secondaryContainer = Color(0xFF4A4458),
|
|
onSecondaryContainer = Color(0xFFE8DEF8),
|
|
tertiary = Color(0xFFEFB8C8),
|
|
onTertiary = Color(0xFF492532),
|
|
tertiaryContainer = Color(0xFF633B48),
|
|
onTertiaryContainer = Color(0xFFFFD8E4),
|
|
error = Color(0xFFFFB4AB),
|
|
onError = Color(0xFF690005),
|
|
errorContainer = Color(0xFF93000A),
|
|
onErrorContainer = Color(0xFFFFDAD6),
|
|
background = Color(0xFF10131C),
|
|
onBackground = Color(0xFFE6E0E9),
|
|
surface = Color(0xFF10131C),
|
|
onSurface = Color(0xFFE6E0E9),
|
|
surfaceVariant = Color(0xFF49454F),
|
|
onSurfaceVariant = Color(0xFFCAC4D0),
|
|
outline = Color(0xFF938F99),
|
|
outlineVariant = Color(0xFF49454F),
|
|
scrim = Color(0xFF000000),
|
|
inverseSurface = Color(0xFFE6E0E9),
|
|
inverseOnSurface = Color(0xFF313033),
|
|
inversePrimary = Color(0xFF6750A4),
|
|
surfaceDim = Color(0xFF10131C),
|
|
surfaceBright = Color(0xFF383B42),
|
|
surfaceContainerLowest = Color(0xFF0B0E17),
|
|
surfaceContainerLow = Color(0xFF191C24),
|
|
surfaceContainer = Color(0xFF1D2028),
|
|
surfaceContainerHigh = Color(0xFF282A32),
|
|
surfaceContainerHighest = Color(0xFF33353D)
|
|
)
|
|
|
|
/**
|
|
* 应用主题
|
|
* @param [darkTheme] 黑暗主题
|
|
* @param [content] 内容
|
|
*/
|
|
@Composable
|
|
fun AppTheme(
|
|
darkTheme: Boolean = isSystemInDarkTheme(),
|
|
content: @Composable () -> Unit
|
|
) {
|
|
val colorScheme = if (darkTheme) {
|
|
DarkColorScheme
|
|
} else {
|
|
LightColorScheme
|
|
}
|
|
|
|
MaterialTheme(
|
|
colorScheme = colorScheme,
|
|
typography = mainTypography(),
|
|
content = content
|
|
)
|
|
} |