1
1
package co.nimblehq.sample.compose.ui.theme
2
2
3
3
import androidx.compose.foundation.isSystemInDarkTheme
4
- import androidx.compose.material.*
4
+ import androidx.compose.material3.MaterialTheme
5
5
import androidx.compose.runtime.*
6
6
7
7
@Composable
8
8
fun ComposeTheme (
9
+ colors : AppColors = LocalAppColors .current,
10
+ dimensions : AppDimensions = LocalAppDimensions .current,
11
+ shapes : AppShapes = LocalAppShapes .current,
12
+ styles : AppStyles = LocalAppStyles .current,
13
+ typography : AppTypography = LocalAppTypography .current,
9
14
darkTheme : Boolean = isSystemInDarkTheme(),
10
15
content : @Composable () -> Unit
11
16
) {
12
- val colors = if (darkTheme) {
17
+ val colorScheme = if (darkTheme) {
13
18
DarkColorPalette
14
19
} else {
15
20
LightColorPalette
16
21
}
17
- val typography = LocalAppTypography .current
18
- val shapes = LocalAppShapes .current
22
+ colors.run {
23
+ this .colorScheme = colorScheme
24
+ }
19
25
20
26
CompositionLocalProvider (
21
- LocalAppColors provides colors
27
+ LocalAppColors provides colors,
28
+ LocalAppDimensions provides dimensions,
29
+ LocalAppShapes provides shapes,
30
+ LocalAppTypography provides typography,
31
+ LocalAppStyles provides styles,
22
32
) {
23
33
MaterialTheme (
24
- colors = colors.themeColors,
25
- typography = typography ,
26
- shapes = shapes ,
34
+ colorScheme = colors.themeColors,
35
+ shapes = shapes.themeShapes ,
36
+ typography = typography.themeTypography ,
27
37
content = content
28
38
)
29
39
}
30
40
}
31
41
32
42
/* *
33
43
* Alternate to [MaterialTheme] allowing us to add our own theme systems
34
- * or to extend [MaterialTheme]'s types e.g. return our own [Colors ] extension.
44
+ * or to extend [MaterialTheme]'s types e.g. return our own [AppColors ] extension.
35
45
*/
36
46
object AppTheme {
37
47
@@ -40,12 +50,12 @@ object AppTheme {
40
50
@ReadOnlyComposable
41
51
get() = LocalAppColors .current
42
52
43
- val typography: Typography
53
+ val typography: AppTypography
44
54
@Composable
45
55
@ReadOnlyComposable
46
56
get() = LocalAppTypography .current
47
57
48
- val shapes: Shapes
58
+ val shapes: AppShapes
49
59
@Composable
50
60
@ReadOnlyComposable
51
61
get() = LocalAppShapes .current
0 commit comments