Feat: Verbesserte visuelle Darstellung und Header-Anpassungen

- Dunklere Markierung für ausgewählte Artikel im dunklen Thema.
- Header-Titel im TopAppBar verkleinert.
- Icons in den TopAppBar-Aktionen verkleinert.
This commit is contained in:
2025-10-11 17:48:39 +02:00
parent 2970834778
commit 63da3b4369
4 changed files with 13 additions and 9 deletions

View File

@@ -135,7 +135,7 @@ fun AppShell(
modifier = Modifier.fillMaxSize(),
topBar = {
TopAppBar(
title = { Text(stringResource(id = currentScreen.titleRes)) },
title = { Text(stringResource(id = currentScreen.titleRes), style = MaterialTheme.typography.titleMedium) },
navigationIcon = {
if (currentScreen == Screen.ShoppingListDetail) { // Show back button for detail screen
IconButton(onClick = {

View File

@@ -14,6 +14,7 @@ import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.heightIn
import androidx.compose.foundation.layout.imePadding
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
@@ -100,7 +101,7 @@ fun ShoppingListDetailScreen(
selectedItem = null // Exit selection mode after move
}
}) {
Icon(Icons.Filled.ArrowUpward, contentDescription = stringResource(R.string.move_to_top))
Icon(Icons.Filled.ArrowUpward, contentDescription = stringResource(R.string.move_to_top), modifier = Modifier.size(20.dp))
}
IconButton(onClick = {
coroutineScope.launch {
@@ -108,13 +109,13 @@ fun ShoppingListDetailScreen(
selectedItem = null // Exit selection mode after move
}
}) {
Icon(Icons.Filled.ArrowDownward, contentDescription = stringResource(R.string.move_to_bottom))
Icon(Icons.Filled.ArrowDownward, contentDescription = stringResource(R.string.move_to_bottom), modifier = Modifier.size(20.dp))
}
IconButton(onClick = { showRenameDialog = true }) {
Icon(Icons.Filled.Edit, contentDescription = stringResource(R.string.rename))
Icon(Icons.Filled.Edit, contentDescription = stringResource(R.string.rename), modifier = Modifier.size(20.dp))
}
IconButton(onClick = { showQuantityDialog = true }) {
Icon(Icons.Filled.LooksOne, contentDescription = stringResource(R.string.change_quantity))
Icon(Icons.Filled.LooksOne, contentDescription = stringResource(R.string.change_quantity), modifier = Modifier.size(20.dp))
}
}
)
@@ -300,7 +301,7 @@ fun ShoppingListDetailScreen(
val isSelected = item == selectedItem
Box(
modifier = Modifier
.background(if (isSelected) Color.LightGray else Color.Transparent)
.background(if (isSelected) MaterialTheme.colorScheme.primaryContainer else Color.Transparent)
) {
Row(
modifier = Modifier

View File

@@ -8,4 +8,6 @@ val Pink80 = Color(0xFFEFB8C8)
val Purple40 = Color(0xFF6650a4)
val PurpleGrey40 = Color(0xFF625b71)
val Pink40 = Color(0xFF7D5260)
val Pink40 = Color(0xFF7D5260)
val DarkPrimaryContainer = Color(0xFF6975BC)

View File

@@ -14,7 +14,8 @@ import androidx.compose.ui.platform.LocalContext
private val DarkColorScheme = darkColorScheme(
primary = Purple80,
secondary = PurpleGrey80,
tertiary = Pink80
tertiary = Pink80,
primaryContainer = DarkPrimaryContainer
)
private val LightColorScheme = lightColorScheme(
@@ -37,7 +38,7 @@ private val LightColorScheme = lightColorScheme(
fun NoteshopTheme(
darkTheme: Boolean = isSystemInDarkTheme(),
// Dynamic color is available on Android 12+
dynamicColor: Boolean = true,
dynamicColor: Boolean = false,
content: @Composable () -> Unit
) {
val colorScheme = when {