Skip to content

Commit e94fd62

Browse files
committed
Add a custom theme
1 parent 99628f9 commit e94fd62

File tree

3 files changed

+52
-3
lines changed

3 files changed

+52
-3
lines changed

composeApp/src/commonMain/kotlin/diruptio/aquarium/ui/App.kt

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,12 @@ import androidx.compose.foundation.background
55
import androidx.compose.foundation.layout.*
66
import androidx.compose.material.icons.Icons
77
import androidx.compose.material.icons.filled.ArrowUpward
8-
import androidx.compose.material3.*
8+
import androidx.compose.material3.Icon
9+
import androidx.compose.material3.LocalContentColor
10+
import androidx.compose.material3.MaterialTheme
11+
import androidx.compose.material3.Tab
12+
import androidx.compose.material3.TabRow
13+
import androidx.compose.material3.Text
914
import androidx.compose.runtime.*
1015
import androidx.compose.ui.Alignment
1116
import androidx.compose.ui.Modifier
@@ -14,11 +19,21 @@ import androidx.compose.ui.input.pointer.pointerHoverIcon
1419
import androidx.compose.ui.unit.dp
1520
import androidx.lifecycle.compose.LocalLifecycleOwner
1621
import diruptio.aquarium.core.getPlatform
22+
import diruptio.aquarium.ui.component.Button
1723
import diruptio.verticallyspinningfish.VerticallySpinningFishApi
1824
import kotlinx.coroutines.cancel
1925
import kotlinx.coroutines.launch
2026
import org.jetbrains.compose.ui.tooling.preview.Preview
2127

28+
@Composable
29+
fun Providers(content: @Composable () -> Unit) {
30+
MaterialTheme(colorScheme = appColorScheme, typography = appTypography) {
31+
CompositionLocalProvider(LocalContentColor provides MaterialTheme.colorScheme.onSurface) {
32+
content()
33+
}
34+
}
35+
}
36+
2237
@Preview
2338
@Composable
2439
fun App() {
@@ -38,7 +53,7 @@ fun App() {
3853
}
3954
}
4055

41-
MaterialTheme {
56+
Providers {
4257
Column(
4358
modifier = Modifier
4459
.background(MaterialTheme.colorScheme.primaryContainer)
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package diruptio.aquarium.ui
2+
3+
import androidx.compose.material3.MaterialTheme
4+
import androidx.compose.runtime.Composable
5+
import androidx.compose.ui.graphics.Color
6+
7+
val appColorScheme
8+
@Composable get() = MaterialTheme.colorScheme.copy(
9+
primary = Color(0xFFAA00DD),
10+
onPrimary = Color(0xFFFFFFFF),
11+
primaryContainer = Color(0xFF111122),
12+
surface = Color(0xFF333355),
13+
onSurface = Color(0xFFDDDDDD),
14+
surfaceContainer = Color(0xFF333355),
15+
outlineVariant = Color(0xFF888888))
16+
17+
val appTypography
18+
@Composable get() = MaterialTheme.typography.copy(
19+
headlineLarge = MaterialTheme.typography.headlineLarge.copy(color = appColorScheme.onPrimary),
20+
headlineMedium = MaterialTheme.typography.headlineMedium.copy(color = appColorScheme.onPrimary),
21+
headlineSmall = MaterialTheme.typography.headlineSmall.copy(color = appColorScheme.onPrimary),
22+
titleLarge = MaterialTheme.typography.titleLarge.copy(color = appColorScheme.onPrimary),
23+
titleMedium = MaterialTheme.typography.titleMedium.copy(color = appColorScheme.onPrimary),
24+
titleSmall = MaterialTheme.typography.titleSmall.copy(color = appColorScheme.onPrimary),
25+
bodyLarge = MaterialTheme.typography.bodyLarge.copy(color = appColorScheme.onSurface),
26+
bodyMedium = MaterialTheme.typography.bodyMedium.copy(color = appColorScheme.onSurface),
27+
bodySmall = MaterialTheme.typography.bodySmall.copy(color = appColorScheme.onSurface),
28+
labelLarge = MaterialTheme.typography.labelLarge.copy(color = appColorScheme.onPrimary),
29+
labelMedium = MaterialTheme.typography.labelMedium.copy(color = appColorScheme.onPrimary),
30+
labelSmall = MaterialTheme.typography.labelSmall.copy(color = appColorScheme.onPrimary))

composeApp/src/commonMain/kotlin/diruptio/aquarium/ui/component/StatusChip.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ fun StatusChip(status: Status) {
2121
Status.UNAVAILABLE -> Color(0xFFDDDD66)
2222
}
2323
) {
24-
Text(status.name, Modifier.padding(4.dp, 0.dp))
24+
Text(
25+
text = status.name,
26+
modifier = Modifier.padding(4.dp, 0.dp),
27+
color = MaterialTheme.colorScheme.primaryContainer,
28+
style = MaterialTheme.typography.labelLarge)
2529
}
2630
}

0 commit comments

Comments
 (0)