diff --git a/app/src/main/java/app/closer/ui/dates/DateMatchScreen.kt b/app/src/main/java/app/closer/ui/dates/DateMatchScreen.kt index 760ba833..01d965fc 100644 --- a/app/src/main/java/app/closer/ui/dates/DateMatchScreen.kt +++ b/app/src/main/java/app/closer/ui/dates/DateMatchScreen.kt @@ -63,6 +63,8 @@ import app.closer.domain.model.DateCostLevel import app.closer.domain.model.DateIdea import app.closer.domain.model.DateMatch import app.closer.domain.model.SwipeAction +import app.closer.R +import app.closer.ui.components.BrandIllustration import app.closer.ui.components.EmptyState import app.closer.ui.components.ErrorState import app.closer.ui.components.LoadingState @@ -539,20 +541,11 @@ private fun MatchOverlay( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.spacedBy(16.dp) ) { - Surface( - shape = CircleShape, - color = closerSoftPinkColor(), - modifier = Modifier.size(72.dp) - ) { - Box(contentAlignment = Alignment.Center) { - Icon( - imageVector = Icons.Filled.Favorite, - contentDescription = null, - modifier = Modifier.size(36.dp), - tint = Color(0xFF9B1B5A) - ) - } - } + BrandIllustration( + res = R.drawable.illustration_date_match_success, + contentDescription = null, + modifier = Modifier.size(168.dp) + ) Text( text = "It is a match!", diff --git a/app/src/main/java/app/closer/ui/dates/DateMatchesScreen.kt b/app/src/main/java/app/closer/ui/dates/DateMatchesScreen.kt index af54d7aa..0e8698ce 100644 --- a/app/src/main/java/app/closer/ui/dates/DateMatchesScreen.kt +++ b/app/src/main/java/app/closer/ui/dates/DateMatchesScreen.kt @@ -1,5 +1,6 @@ package app.closer.ui.dates +import app.closer.R import app.closer.ui.theme.closerCardColor import app.closer.ui.theme.closerBackgroundBrush import app.closer.ui.theme.closerSoftPinkColor @@ -133,6 +134,7 @@ private fun DateMatchesContent( append(state.partnerName ?: "your partner") append(" both love the same one, it shows up here as a match.") }, + illustrationResId = R.drawable.illustration_date_match_empty, modifier = Modifier.padding(top = 80.dp) ) } diff --git a/app/src/main/java/app/closer/ui/debug/ArtPreviewScreen.kt b/app/src/main/java/app/closer/ui/debug/ArtPreviewScreen.kt index da606194..c74487de 100644 --- a/app/src/main/java/app/closer/ui/debug/ArtPreviewScreen.kt +++ b/app/src/main/java/app/closer/ui/debug/ArtPreviewScreen.kt @@ -2,6 +2,7 @@ package app.closer.ui.debug import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize @@ -24,6 +25,7 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import app.closer.R +import app.closer.ui.components.BrandIllustration import app.closer.ui.components.CelebrationOverlay import app.closer.ui.components.CloserActionButton import app.closer.ui.components.CloserMarkLoader @@ -96,6 +98,33 @@ fun ArtPreviewScreen(onNavigate: (String) -> Unit = {}) { } } + Text( + text = "New brand illustrations", + style = MaterialTheme.typography.titleMedium, + fontWeight = FontWeight.SemiBold, + color = MaterialTheme.colorScheme.onSurface, + modifier = Modifier.fillMaxWidth().padding(top = 8.dp) + ) + ArtCard("Pairing success (A1)") { + BrandIllustration(R.drawable.illustration_pairing_success, null, Modifier.size(200.dp), tile = false) + } + ArtCard("Connection Challenges header (A3)") { + BrandIllustration( + R.drawable.illustration_connection_challenges_header, null, + Modifier.fillMaxWidth().aspectRatio(16f / 9f) + ) + } + ArtCard("Answer history empty (A2)") { BrandIllustration(R.drawable.illustration_answer_history_empty, null, Modifier.size(160.dp)) } + ArtCard("Memory Lane capsule (A4)") { BrandIllustration(R.drawable.illustration_memory_lane_capsule, null, Modifier.size(160.dp)) } + ArtCard("Date match — empty (A5)") { BrandIllustration(R.drawable.illustration_date_match_empty, null, Modifier.size(160.dp)) } + ArtCard("Date match — it's a match (A5)") { BrandIllustration(R.drawable.illustration_date_match_success, null, Modifier.size(160.dp)) } + ArtCard("Bucket list empty (A6)") { BrandIllustration(R.drawable.illustration_bucket_list_empty, null, Modifier.size(160.dp)) } + ArtCard("Messages empty (A8)") { BrandIllustration(R.drawable.illustration_messages_empty, null, Modifier.size(160.dp)) } + ArtCard("Quiet hours (A9)") { BrandIllustration(R.drawable.illustration_quiet_hours, null, Modifier.size(160.dp)) } + ArtCard("Past games empty (A10)") { BrandIllustration(R.drawable.illustration_past_games_empty, null, Modifier.size(160.dp)) } + ArtCard("Privacy / recovery (A11)") { BrandIllustration(R.drawable.illustration_privacy_recovery, null, Modifier.size(160.dp)) } + ArtCard("Account deletion (A12)") { BrandIllustration(R.drawable.illustration_account_deletion_goodbye, null, Modifier.size(160.dp)) } + CloserActionButton( label = "Play the celebration", onClick = { celebrate = true }, diff --git a/app/src/main/java/app/closer/ui/memorylane/MemoryLaneScreen.kt b/app/src/main/java/app/closer/ui/memorylane/MemoryLaneScreen.kt index 72a12025..6d56aa0c 100644 --- a/app/src/main/java/app/closer/ui/memorylane/MemoryLaneScreen.kt +++ b/app/src/main/java/app/closer/ui/memorylane/MemoryLaneScreen.kt @@ -36,6 +36,8 @@ import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.Card import androidx.compose.material3.CardDefaults +import app.closer.R +import app.closer.ui.components.BrandIllustration import app.closer.ui.components.CloserHeartLoader import androidx.compose.material3.DatePicker import androidx.compose.material3.DatePickerDialog @@ -549,7 +551,11 @@ private fun CapsuleListScreen( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.spacedBy(12.dp) ) { - Text("📦", style = MaterialTheme.typography.displayMedium) + BrandIllustration( + res = R.drawable.illustration_memory_lane_capsule, + contentDescription = null, + modifier = Modifier.size(150.dp) + ) Text("No capsules yet", style = MaterialTheme.typography.titleMedium.copy(fontWeight = FontWeight.SemiBold), color = MaterialTheme.colorScheme.onSurface) Text("Write a note to your future selves — it'll stay sealed until the date you choose.", style = MaterialTheme.typography.bodyMedium, color = MaterialTheme.colorScheme.onSurfaceVariant, textAlign = TextAlign.Center) Spacer(Modifier.height(8.dp))