From 474593dbf7cd311df3c9b606358172b640668dbe Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Wed, 11 Mar 2026 21:25:12 +0530 Subject: [PATCH] adding parallax to hero --- .../com/nuvio/app/features/details/MetaDetailsScreen.kt | 6 ++++-- .../nuvio/app/features/details/components/DetailHero.kt | 7 ++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/details/MetaDetailsScreen.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/details/MetaDetailsScreen.kt index e151d4393..813eeb4f1 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/details/MetaDetailsScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/details/MetaDetailsScreen.kt @@ -19,6 +19,7 @@ import androidx.compose.foundation.layout.windowInsetsPadding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.verticalScroll +import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.rounded.ArrowBack import androidx.compose.material3.CircularProgressIndicator @@ -87,12 +88,13 @@ fun MetaDetailsScreen( uiState.meta != null -> { val meta = uiState.meta!! + val scrollState = rememberScrollState() Column( modifier = Modifier .fillMaxSize() - .verticalScroll(rememberScrollState()), + .verticalScroll(scrollState), ) { - DetailHero(meta = meta) + DetailHero(meta = meta, scrollOffset = scrollState.value) Column( modifier = Modifier diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/details/components/DetailHero.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/details/components/DetailHero.kt index d2f83225b..f28a444e0 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/details/components/DetailHero.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/details/components/DetailHero.kt @@ -19,12 +19,14 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp +import androidx.compose.ui.graphics.graphicsLayer import coil3.compose.AsyncImage import com.nuvio.app.features.details.MetaDetails @Composable fun DetailHero( meta: MetaDetails, + scrollOffset: Int = 0, modifier: Modifier = Modifier, ) { Box( @@ -37,7 +39,10 @@ fun DetailHero( contentDescription = meta.name, modifier = Modifier .fillMaxWidth() - .aspectRatio(0.75f), + .aspectRatio(0.75f) + .graphicsLayer { + translationY = scrollOffset * 0.5f + }, contentScale = ContentScale.Crop, ) } else {