Add dynamic theme (#159)
This commit is contained in:
@@ -1,81 +1,7 @@
|
||||
package it.vfsfitvnm.vimusic.enums
|
||||
|
||||
import androidx.compose.ui.text.ExperimentalTextApi
|
||||
import androidx.compose.ui.text.PlatformTextStyle
|
||||
import androidx.compose.ui.text.TextStyle
|
||||
import androidx.compose.ui.text.font.Font
|
||||
import androidx.compose.ui.text.font.FontFamily
|
||||
import androidx.compose.ui.text.font.FontStyle
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.sp
|
||||
import it.vfsfitvnm.vimusic.R
|
||||
import it.vfsfitvnm.vimusic.ui.styling.BlackColorPalette
|
||||
import it.vfsfitvnm.vimusic.ui.styling.ColorPalette
|
||||
import it.vfsfitvnm.vimusic.ui.styling.DarkColorPalette
|
||||
import it.vfsfitvnm.vimusic.ui.styling.LightColorPalette
|
||||
import it.vfsfitvnm.vimusic.ui.styling.Typography
|
||||
|
||||
enum class ColorPaletteMode {
|
||||
Light,
|
||||
Dark,
|
||||
Black,
|
||||
System;
|
||||
|
||||
fun palette(isSystemInDarkMode: Boolean): ColorPalette {
|
||||
return when (this) {
|
||||
Light -> LightColorPalette
|
||||
Dark -> DarkColorPalette
|
||||
Black -> BlackColorPalette
|
||||
System -> when (isSystemInDarkMode) {
|
||||
true -> DarkColorPalette
|
||||
false -> LightColorPalette
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalTextApi::class)
|
||||
fun typography(isSystemInDarkMode: Boolean): Typography {
|
||||
val color = palette(isSystemInDarkMode).text
|
||||
|
||||
val textStyle = TextStyle(
|
||||
fontFamily = FontFamily(
|
||||
Font(
|
||||
resId = R.font.poppins_w300,
|
||||
weight = FontWeight.Light
|
||||
),
|
||||
Font(
|
||||
resId = R.font.poppins_w400,
|
||||
weight = FontWeight.Normal
|
||||
),
|
||||
Font(
|
||||
resId = R.font.poppins_w400_italic,
|
||||
weight = FontWeight.Normal,
|
||||
style = FontStyle.Italic
|
||||
),
|
||||
Font(
|
||||
resId = R.font.poppins_w500,
|
||||
weight = FontWeight.Medium
|
||||
),
|
||||
Font(
|
||||
resId = R.font.poppins_w600,
|
||||
weight = FontWeight.SemiBold
|
||||
),
|
||||
Font(
|
||||
resId = R.font.poppins_w700,
|
||||
weight = FontWeight.Bold
|
||||
),
|
||||
),
|
||||
fontWeight = FontWeight.Normal,
|
||||
color = color,
|
||||
platformStyle = @Suppress("DEPRECATION") PlatformTextStyle(includeFontPadding = false)
|
||||
)
|
||||
|
||||
return Typography(
|
||||
xxs = textStyle.copy(fontSize = 12.sp),
|
||||
xs = textStyle.copy(fontSize = 14.sp),
|
||||
s = textStyle.copy(fontSize = 16.sp),
|
||||
m = textStyle.copy(fontSize = 18.sp),
|
||||
l = textStyle.copy(fontSize = 20.sp),
|
||||
)
|
||||
}
|
||||
System
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
package it.vfsfitvnm.vimusic.enums
|
||||
|
||||
enum class ColorPaletteName {
|
||||
Default,
|
||||
Dynamic,
|
||||
PureBlack
|
||||
}
|
||||
Reference in New Issue
Block a user