diff --git a/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/composables/AnimationRow.kt b/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/composables/AnimationRow.kt
new file mode 100644
index 0000000..488a812
--- /dev/null
+++ b/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/composables/AnimationRow.kt
@@ -0,0 +1,51 @@
+package com.airbnb.lottie.sample.compose.composables
+
+import androidx.compose.foundation.Text
+import androidx.compose.foundation.background
+import androidx.compose.foundation.clickable
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.preferredSize
+import androidx.compose.material.Surface
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.text.style.TextOverflow
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import dev.chrisbanes.accompanist.coil.CoilImage
+
+@Composable
+fun AnimationRow(
+    title: String,
+    previewUrl: String,
+    previewBackgroundColor: Color,
+    onClick: () -> Unit
+) {
+    Surface(
+        modifier = Modifier.clickable(onClick = onClick)
+    ) {
+        Row(
+            verticalGravity = Alignment.CenterVertically,
+            modifier = Modifier
+                .padding(8.dp)
+                .fillMaxWidth()
+        ) {
+            CoilImage(
+                data = previewUrl,
+                modifier = Modifier
+                    .preferredSize(40.dp)
+                    .background(color = previewBackgroundColor)
+                    .padding(end = 16.dp)
+            )
+            Text(
+                title,
+                fontSize = 16.sp,
+                overflow = TextOverflow.Ellipsis
+            )
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/composables/Loader.kt b/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/composables/Loader.kt
new file mode 100644
index 0000000..ee35bdc
--- /dev/null
+++ b/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/composables/Loader.kt
@@ -0,0 +1,19 @@
+package com.airbnb.lottie.sample.compose.composables
+
+import androidx.compose.foundation.layout.preferredSize
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.unit.dp
+import com.airbnb.lottie.sample.compose.R
+
+@Composable
+fun Loader(
+    modifier: Modifier = Modifier
+) {
+    LottieAnimation(
+        LottieAnimationSpec.RawRes(R.raw.loading),
+        modifier = Modifier
+            .preferredSize(100.dp)
+            .then(modifier)
+    )
+}
\ No newline at end of file
diff --git a/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/composables/Marquee.kt b/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/composables/Marquee.kt
new file mode 100644
index 0000000..8ab28bd
--- /dev/null
+++ b/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/composables/Marquee.kt
@@ -0,0 +1,23 @@
+package com.airbnb.lottie.sample.compose.composables
+
+import androidx.compose.foundation.Text
+import androidx.compose.foundation.layout.padding
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.text.font.FontStyle
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import com.airbnb.lottie.sample.compose.ui.textColorDark
+
+@Composable
+fun Marquee(text: String) {
+    Text(
+        text,
+        fontSize = 32.sp,
+        color = textColorDark,
+        fontWeight = FontWeight.Bold,
+        modifier = Modifier
+            .padding(vertical = 24.dp, horizontal = 16.dp)
+    )
+}
\ No newline at end of file
diff --git a/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/composables/Scaffold.kt b/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/composables/Scaffold.kt
index 691bb1b..6589a23 100644
--- a/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/composables/Scaffold.kt
+++ b/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/composables/Scaffold.kt
@@ -3,14 +3,27 @@
 import android.content.Context
 import android.util.Log
 import android.view.View
+import androidx.annotation.DrawableRes
+import androidx.compose.foundation.Icon
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.material.BottomAppBar
+import androidx.compose.material.IconButton
 import androidx.compose.material.MaterialTheme
-import androidx.compose.material.Surface
+import androidx.compose.material.Scaffold
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.Providers
+import androidx.compose.ui.Modifier
 import androidx.compose.ui.platform.ComposeView
+import androidx.compose.ui.res.imageResource
+import androidx.compose.ui.res.vectorResource
 import androidx.fragment.app.Fragment
+import androidx.navigation.NavOptions
+import androidx.navigation.NavOptionsBuilder
 import androidx.navigation.fragment.findNavController
 import com.airbnb.lottie.sample.compose.NavControllerAmbient
+import com.airbnb.lottie.sample.compose.R
 import com.airbnb.lottie.sample.compose.ui.LottieTheme
 
 fun Fragment.LottieComposeScaffoldView(context: Context, Content: @Composable () -> Unit): View {
@@ -18,11 +31,39 @@
         setContent {
             Providers(NavControllerAmbient provides findNavController()) {
                 LottieTheme {
-                    Surface(color = MaterialTheme.colors.background) {
+                    Scaffold(
+                        bottomBar = {
+                            BottomAppBar{
+                                Row(
+                                    horizontalArrangement = Arrangement.SpaceAround,
+                                    modifier = Modifier.fillMaxWidth()
+                                ) {
+                                    BottomBarButton(R.drawable.ic_showcase) {
+                                        findNavController().navigate(R.id.showcase)
+                                    }
+
+                                    BottomBarButton(R.drawable.ic_lottie_files) {
+                                        findNavController().navigate(R.id.lottie_files)
+                                    }
+                                    BottomBarButton(R.drawable.ic_device) {
+                                    }
+                                    BottomBarButton(R.drawable.ic_learn) {
+                                    }
+                                }
+                            }
+                        }
+                    ){
                         Content()
                     }
                 }
             }
         }
     }
+}
+
+@Composable
+fun BottomBarButton(@DrawableRes iconRes: Int, onClick: () -> Unit) {
+    IconButton(onClick = onClick) {
+        Icon(vectorResource(iconRes))
+    }
 }
\ No newline at end of file
diff --git a/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/lottiefiles/LottieFilesPage.kt b/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/lottiefiles/LottieFilesPage.kt
new file mode 100644
index 0000000..af39716
--- /dev/null
+++ b/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/lottiefiles/LottieFilesPage.kt
@@ -0,0 +1,120 @@
+package com.airbnb.lottie.sample.compose.lottiefiles
+
+import android.graphics.drawable.shapes.RoundRectShape
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.annotation.StringRes
+import androidx.compose.foundation.Box
+import androidx.compose.foundation.ScrollableColumn
+import androidx.compose.foundation.Text
+import androidx.compose.foundation.background
+import androidx.compose.foundation.clickable
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.IntrinsicSize
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.preferredHeight
+import androidx.compose.foundation.layout.preferredWidth
+import androidx.compose.foundation.layout.wrapContentWidth
+import androidx.compose.foundation.shape.RoundedCornerShape
+import androidx.compose.material.Divider
+import androidx.compose.material.MaterialTheme
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.draw.clip
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.onPositioned
+import androidx.compose.ui.platform.ConfigurationAmbient
+import androidx.compose.ui.platform.DensityAmbient
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.unit.dp
+import androidx.fragment.app.Fragment
+import com.airbnb.lottie.sample.compose.R
+import com.airbnb.lottie.sample.compose.composables.LottieComposeScaffoldView
+import com.airbnb.lottie.sample.compose.composables.Marquee
+
+class LottieFilesFragment : Fragment() {
+    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
+        return LottieComposeScaffoldView(requireContext()) {
+            LottieFilesPage()
+        }
+    }
+}
+
+enum class LottieFilesTab(@StringRes val stringRes: Int) {
+    Recent(R.string.tab_recent),
+    Popular(R.string.tab_popular),
+    Search(R.string.tab_search)
+}
+
+@Composable
+fun LottieFilesPage() {
+    val tab = remember { mutableStateOf(LottieFilesTab.Recent) }
+
+    ScrollableColumn {
+        Marquee("LottieFiles")
+        LottieFilesTabBar(
+            selectedTab = tab.value,
+            onTabSelected = { tab.value = it },
+        )
+    }
+
+}
+
+@Composable
+fun LottieFilesTabBar(
+    selectedTab: LottieFilesTab,
+    onTabSelected: (LottieFilesTab) -> Unit,
+    modifier: Modifier = Modifier
+) {
+    Row(
+        modifier = Modifier.fillMaxWidth().then(modifier),
+        horizontalArrangement = Arrangement.Start
+    ) {
+        for (tab in LottieFilesTab.values()) {
+            LottieFilesTabBarTab(
+                text = stringResource(tab.stringRes),
+                isSelected = tab == selectedTab,
+                onClick = { onTabSelected(tab) }
+            )
+        }
+    }
+}
+
+@Composable
+fun LottieFilesTabBarTab(
+    text: String,
+    isSelected: Boolean,
+    onClick: () -> Unit
+) {
+    val textWidth = remember { mutableStateOf(0) }
+    val pxRatio = with(DensityAmbient.current) { 1.dp.toPx() }
+    Column(
+        modifier = Modifier
+            .clickable(onClick = onClick)
+            .padding(horizontal = 16.dp, vertical = 8.dp)
+    ) {
+        Text(
+            text,
+            maxLines = 1,
+            modifier = Modifier
+                .onPositioned { textWidth.value = it.size.width }
+                .wrapContentWidth()
+        )
+        if (isSelected) {
+            Box(
+                modifier = Modifier
+                    .preferredHeight(3.dp)
+                    .background(MaterialTheme.colors.primary)
+                    .preferredWidth((textWidth.value / pxRatio).dp)
+            )
+        }
+    }
+}
\ No newline at end of file
diff --git a/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/showcase/ShowcasePage.kt b/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/showcase/ShowcasePage.kt
index 21de3de..d2872ab 100644
--- a/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/showcase/ShowcasePage.kt
+++ b/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/showcase/ShowcasePage.kt
@@ -9,7 +9,6 @@
 import androidx.compose.foundation.ScrollableColumn
 import androidx.compose.foundation.layout.*
 import androidx.compose.material.Divider
-import androidx.compose.material.Surface
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.Providers
 import androidx.compose.runtime.ambientOf
@@ -17,22 +16,13 @@
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.text.style.TextOverflow
-import androidx.compose.ui.unit.dp
-import androidx.compose.ui.unit.sp
-import androidx.compose.ui.viewinterop.viewModel
 import androidx.fragment.app.Fragment
 import androidx.ui.tooling.preview.Preview
 import com.airbnb.lottie.sample.compose.R
-import com.airbnb.lottie.sample.compose.api.FeaturedAnimationsResponse
-import com.airbnb.lottie.sample.compose.composables.LottieAnimation
-import com.airbnb.lottie.sample.compose.composables.LottieAnimationSpec
-import com.airbnb.lottie.sample.compose.composables.LottieComposeScaffoldView
+import com.airbnb.lottie.sample.compose.composables.*
 import com.airbnb.lottie.sample.compose.findNavController
 import com.airbnb.lottie.sample.compose.ui.LottieTheme
-import com.airbnb.lottie.sample.compose.ui.textColorDark
 import com.airbnb.mvrx.*
-import dev.chrisbanes.accompanist.coil.CoilImage
 
 val ShowcaseStateAmbient = ambientOf { ShowcaseState() }
 
@@ -83,62 +73,6 @@
     }
 }
 
-@Composable
-fun Marquee(text: String) {
-    Text(
-        text,
-        fontSize = 16.sp,
-        color = textColorDark,
-        modifier = Modifier
-            .padding(vertical = 24.dp, horizontal = 16.dp)
-    )
-}
-
-@Composable
-fun Loader(
-    modifier: Modifier = Modifier
-) {
-    LottieAnimation(
-        LottieAnimationSpec.RawRes(R.raw.loading),
-        modifier = Modifier
-            .preferredSize(100.dp)
-            .then(modifier)
-    )
-}
-
-@Composable
-fun AnimationRow(
-    title: String,
-    previewUrl: String,
-    previewBackgroundColor: Color,
-    onClick: () -> Unit
-) {
-    Surface(
-        modifier = Modifier.clickable(onClick = onClick)
-    ) {
-        Row(
-            verticalGravity = Alignment.CenterVertically,
-            modifier = Modifier
-                .padding(8.dp)
-                .fillMaxWidth()
-        ) {
-            CoilImage(
-                data = previewUrl,
-                modifier = Modifier
-                    .preferredSize(40.dp)
-                    .background(color = previewBackgroundColor)
-                    .padding(end = 16.dp)
-            )
-            Text(
-                title,
-                fontSize = 16.sp,
-                overflow = TextOverflow.Ellipsis
-            )
-        }
-
-    }
-}
-
 @Preview(showBackground = true)
 @Composable
 fun DefaultPreview() {
diff --git a/sample-compose/src/main/res/drawable/ic_device.xml b/sample-compose/src/main/res/drawable/ic_device.xml
new file mode 100644
index 0000000..d8bcbb4
--- /dev/null
+++ b/sample-compose/src/main/res/drawable/ic_device.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24.0"
+    android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF4C4C4C"
+        android:pathData="M17,1.01L7,1c-1.1,0 -1.99,0.9 -1.99,2v18c0,1.1 0.89,2 1.99,2h10c1.1,0 2,-0.9 2,-2V3c0,-1.1 -0.9,-1.99 -2,-1.99zM17,19H7V5h10v14z"/>
+</vector>
diff --git a/sample-compose/src/main/res/drawable/ic_learn.xml b/sample-compose/src/main/res/drawable/ic_learn.xml
new file mode 100644
index 0000000..bfebdd4
--- /dev/null
+++ b/sample-compose/src/main/res/drawable/ic_learn.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24"
+    android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,19h-2v-2h2v2zM15.07,11.25l-0.9,0.92C13.45,12.9 13,13.5 13,15h-2v-0.5c0,-1.1 0.45,-2.1 1.17,-2.83l1.24,-1.26c0.37,-0.36 0.59,-0.86 0.59,-1.41 0,-1.1 -0.9,-2 -2,-2s-2,0.9 -2,2L8,9c0,-2.21 1.79,-4 4,-4s4,1.79 4,4c0,0.88 -0.36,1.68 -0.93,2.25z"/>
+</vector>
diff --git a/sample-compose/src/main/res/drawable/ic_lottie_files.xml b/sample-compose/src/main/res/drawable/ic_lottie_files.xml
new file mode 100644
index 0000000..fc847b3
--- /dev/null
+++ b/sample-compose/src/main/res/drawable/ic_lottie_files.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24"
+    android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M19.36,10.04C18.67,6.59 15.64,4 12,4 9.11,4 6.6,5.64 5.35,8.04 2.34,8.36 0,10.91 0,14c0,3.31 2.69,6 6,6h13c2.76,0 5,-2.24 5,-5 0,-2.64 -2.05,-4.78 -4.64,-4.96z"/>
+</vector>
diff --git a/sample-compose/src/main/res/drawable/ic_showcase.xml b/sample-compose/src/main/res/drawable/ic_showcase.xml
new file mode 100644
index 0000000..ee61005
--- /dev/null
+++ b/sample-compose/src/main/res/drawable/ic_showcase.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24.0"
+    android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM16.23,18L12,15.45 7.77,18l1.12,-4.81 -3.73,-3.23 4.92,-0.42L12,5l1.92,4.53 4.92,0.42 -3.73,3.23L16.23,18z"/>
+</vector>
diff --git a/sample-compose/src/main/res/navigation/nav_graph.xml b/sample-compose/src/main/res/navigation/nav_graph.xml
index 9aa1733..8fb8859 100644
--- a/sample-compose/src/main/res/navigation/nav_graph.xml
+++ b/sample-compose/src/main/res/navigation/nav_graph.xml
@@ -10,4 +10,8 @@
     <fragment
         android:id="@+id/showcase"
         android:name="com.airbnb.lottie.sample.compose.showcase.ShowcaseFragment" />
+
+    <fragment
+        android:id="@+id/lottie_files"
+        android:name="com.airbnb.lottie.sample.compose.lottiefiles.LottieFilesFragment" />
 </navigation>
\ No newline at end of file
diff --git a/sample-compose/src/main/res/values/strings.xml b/sample-compose/src/main/res/values/strings.xml
index a7e068d..54037d2 100644
--- a/sample-compose/src/main/res/values/strings.xml
+++ b/sample-compose/src/main/res/values/strings.xml
@@ -1,3 +1,7 @@
 <resources>
     <string name="app_name">LottieCompose</string>
+
+    <string name="tab_recent">Recent</string>
+    <string name="tab_popular">Popular</string>
+    <string name="tab_search">Search</string>
 </resources>
\ No newline at end of file
