├── .gitignore ├── .idea ├── .gitignore ├── .name ├── compiler.xml ├── deploymentTargetDropDown.xml ├── gradle.xml └── misc.xml ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── uistack │ │ └── onboarding │ │ └── ExampleInstrumentedTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── uistack │ │ │ └── onboarding │ │ │ ├── MainActivity.kt │ │ │ ├── OnBoardingData.kt │ │ │ └── ui │ │ │ └── theme │ │ │ ├── Color.kt │ │ │ ├── Shape.kt │ │ │ ├── Theme.kt │ │ │ └── Type.kt │ └── res │ │ ├── drawable-v24 │ │ ├── cooking.jpg │ │ ├── food.jpg │ │ ├── fruit.jpg │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ ├── ic_launcher_background.xml │ │ └── ic_right_arrow.xml │ │ ├── font │ │ ├── poppins.ttf │ │ └── reemkufi.ttf │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── values-night │ │ └── themes.xml │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml │ └── test │ └── java │ └── com │ └── uistack │ └── onboarding │ └── ExampleUnitTest.kt ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | /.idea/navEditor.xml 9 | /.idea/assetWizardSettings.xml 10 | .DS_Store 11 | /build 12 | /captures 13 | .externalNativeBuild 14 | .cxx 15 | local.properties 16 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /.idea/.name: -------------------------------------------------------------------------------- 1 | Onboarding Demo -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/deploymentTargetDropDown.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 19 | 20 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | 12 | 13 | 14 | 16 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.application' 3 | id 'kotlin-android' 4 | } 5 | 6 | android { 7 | compileSdk 31 8 | 9 | defaultConfig { 10 | applicationId "com.uistack.onboarding" 11 | minSdk 24 12 | targetSdk 31 13 | versionCode 1 14 | versionName "1.0" 15 | 16 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 17 | vectorDrawables { 18 | useSupportLibrary true 19 | } 20 | } 21 | 22 | buildTypes { 23 | release { 24 | minifyEnabled false 25 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 26 | } 27 | } 28 | compileOptions { 29 | sourceCompatibility JavaVersion.VERSION_1_8 30 | targetCompatibility JavaVersion.VERSION_1_8 31 | } 32 | kotlinOptions { 33 | jvmTarget = '1.8' 34 | useIR = true 35 | } 36 | buildFeatures { 37 | compose true 38 | } 39 | composeOptions { 40 | kotlinCompilerExtensionVersion compose_version 41 | kotlinCompilerVersion '1.5.21' 42 | } 43 | packagingOptions { 44 | resources { 45 | excludes += '/META-INF/{AL2.0,LGPL2.1}' 46 | } 47 | } 48 | } 49 | 50 | dependencies { 51 | 52 | implementation 'androidx.core:core-ktx:1.7.0' 53 | implementation 'androidx.appcompat:appcompat:1.4.1' 54 | implementation 'com.google.android.material:material:1.5.0' 55 | implementation "androidx.compose.ui:ui:$compose_version" 56 | implementation "androidx.compose.material:material:$compose_version" 57 | implementation "androidx.compose.ui:ui-tooling-preview:$compose_version" 58 | implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.0' 59 | implementation 'androidx.activity:activity-compose:1.4.0' 60 | testImplementation 'junit:junit:4.+' 61 | androidTestImplementation 'androidx.test.ext:junit:1.1.3' 62 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' 63 | androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_version" 64 | debugImplementation "androidx.compose.ui:ui-tooling:$compose_version" 65 | implementation "com.google.accompanist:accompanist-systemuicontroller:0.17.0" 66 | implementation "com.google.accompanist:accompanist-pager:0.12.0" //This dependency is used for Horizontal Pager. 67 | } -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /app/src/androidTest/java/com/uistack/onboarding/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package com.uistack.onboarding 2 | 3 | import androidx.test.platform.app.InstrumentationRegistry 4 | import androidx.test.ext.junit.runners.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext 22 | assertEquals("com.uistack.onboarding", appContext.packageName) 23 | } 24 | } -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/java/com/uistack/onboarding/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.uistack.onboarding 2 | 3 | import android.os.Bundle 4 | import android.util.Log 5 | import android.widget.Toast 6 | import androidx.activity.ComponentActivity 7 | import androidx.activity.compose.setContent 8 | import androidx.annotation.FloatRange 9 | import androidx.compose.animation.core.animateDpAsState 10 | import androidx.compose.foundation.BorderStroke 11 | import androidx.compose.foundation.Image 12 | import androidx.compose.foundation.background 13 | import androidx.compose.foundation.layout.* 14 | import androidx.compose.foundation.shape.CircleShape 15 | import androidx.compose.foundation.shape.RoundedCornerShape 16 | import androidx.compose.material.* 17 | import androidx.compose.runtime.Composable 18 | import androidx.compose.runtime.saveable.rememberSaveable 19 | import androidx.compose.ui.Alignment 20 | import androidx.compose.ui.Modifier 21 | import androidx.compose.ui.draw.clip 22 | import androidx.compose.ui.graphics.Color 23 | import androidx.compose.ui.platform.LocalContext 24 | import androidx.compose.ui.res.painterResource 25 | import androidx.compose.ui.text.font.FontWeight 26 | import androidx.compose.ui.text.style.TextAlign 27 | import androidx.compose.ui.unit.dp 28 | import androidx.compose.ui.unit.sp 29 | import androidx.core.content.ContextCompat 30 | import com.google.accompanist.pager.ExperimentalPagerApi 31 | import com.google.accompanist.pager.HorizontalPager 32 | import com.google.accompanist.pager.PagerState 33 | import com.google.accompanist.pager.rememberPagerState 34 | import com.uistack.onboarding.ui.theme.* 35 | import kotlinx.coroutines.DelicateCoroutinesApi 36 | import kotlinx.coroutines.GlobalScope 37 | import kotlinx.coroutines.coroutineScope 38 | import kotlinx.coroutines.launch 39 | 40 | class MainActivity : ComponentActivity() { 41 | @ExperimentalPagerApi 42 | override fun onCreate(savedInstanceState: Bundle?) { 43 | super.onCreate(savedInstanceState) 44 | setContent { 45 | OnboardingDemoTheme { 46 | // A surface container using the 'background' color from the theme 47 | Surface(modifier = Modifier.fillMaxSize()) { 48 | 49 | val items = ArrayList() 50 | 51 | items.add( 52 | OnBoardingData( 53 | R.drawable.fruit, 54 | "Hmmm, Healthy Food", 55 | "A variety of healthy foods made by the best chefs. Ingredients are easy to find. all delicious flavors can only be found at cookbunda", 56 | backgroundColor = Color(0xFF0189C5), 57 | mainColor = Color(0xFF00B5EA) 58 | ) 59 | ) 60 | 61 | items.add( 62 | OnBoardingData( 63 | R.drawable.food, 64 | "Fresh Drinks, Stay Fresh", 65 | "Not only food. we provide clear healthy drink options for you. Fresh taste always accompanies you", 66 | backgroundColor = Color(0xFFE4AF19), 67 | mainColor = ColorYellow 68 | ) 69 | ) 70 | 71 | items.add( 72 | OnBoardingData( 73 | R.drawable.cooking, 74 | "Let’s Cooking", 75 | "Are you ready to make a dish for your friends or family? create an account and cook", 76 | backgroundColor = Color(0xFF96E172), 77 | mainColor = ColorGreen 78 | ) 79 | ) 80 | 81 | 82 | val pagerState = com.uistack.onboarding.rememberPagerState( 83 | pageCount = items.size, 84 | initialOffscreenLimit = 2, 85 | infiniteLoop = false, 86 | initialPage = 0, 87 | ) 88 | 89 | 90 | OnBoardingPager( 91 | item = items, pagerState = pagerState, modifier = Modifier 92 | .fillMaxWidth() 93 | .background(color = ColorBlue) 94 | ) 95 | 96 | } 97 | } 98 | } 99 | } 100 | } 101 | 102 | @DelicateCoroutinesApi 103 | @ExperimentalPagerApi 104 | @Composable 105 | fun OnBoardingPager( 106 | item: List, 107 | pagerState: PagerState, 108 | modifier: Modifier = Modifier 109 | ) { 110 | 111 | Box(modifier = modifier) { 112 | Column(horizontalAlignment = Alignment.CenterHorizontally) { 113 | HorizontalPager(state = pagerState) { page -> 114 | Column( 115 | modifier = Modifier 116 | .fillMaxSize() 117 | .background(item[page].backgroundColor), 118 | horizontalAlignment = Alignment.CenterHorizontally, 119 | verticalArrangement = Arrangement.Top 120 | ) { 121 | 122 | Image( 123 | painter = painterResource(id = item[page].image), 124 | contentDescription = item[page].title, 125 | modifier = Modifier 126 | .fillMaxWidth() 127 | ) 128 | 129 | 130 | } 131 | } 132 | 133 | } 134 | 135 | Box(modifier = Modifier.align(Alignment.BottomCenter)) { 136 | Card( 137 | modifier = Modifier 138 | .fillMaxWidth() 139 | .height(340.dp), 140 | backgroundColor = Color.White, 141 | elevation = 0.dp, 142 | shape = BottomCardShape.large 143 | ) { 144 | Box() { 145 | Column( 146 | horizontalAlignment = Alignment.CenterHorizontally 147 | ) { 148 | PagerIndicator(items = item, currentPage = pagerState.currentPage) 149 | Text( 150 | text = item[pagerState.currentPage].title, 151 | modifier = Modifier 152 | .fillMaxWidth() 153 | .padding(top = 20.dp, end = 30.dp), 154 | // color = Color(0xFF292D32), 155 | color = item[pagerState.currentPage].mainColor, 156 | fontFamily = Poppins, 157 | textAlign = TextAlign.Right, 158 | fontSize = 20.sp, 159 | fontWeight = FontWeight.ExtraBold 160 | ) 161 | 162 | Text( 163 | text = item[pagerState.currentPage].desc, 164 | modifier = Modifier.padding(top = 20.dp, start = 40.dp, end = 20.dp), 165 | color = Color.Gray, 166 | fontFamily = Poppins, 167 | fontSize = 17.sp, 168 | textAlign = TextAlign.Center, 169 | fontWeight = FontWeight.ExtraLight 170 | ) 171 | 172 | } 173 | Box( 174 | modifier = Modifier 175 | .align(Alignment.BottomCenter) 176 | .padding(30.dp) 177 | ) { 178 | Row( 179 | modifier = Modifier.fillMaxWidth(), 180 | verticalAlignment = Alignment.CenterVertically, 181 | horizontalArrangement = Arrangement.SpaceBetween 182 | ) { 183 | 184 | 185 | if (pagerState.currentPage != 2) { 186 | TextButton(onClick = { 187 | //skip 188 | }) { 189 | Text( 190 | text = "Skip Now", 191 | color = Color(0xFF292D32), 192 | fontFamily = Poppins, 193 | textAlign = TextAlign.Right, 194 | fontSize = 14.sp, 195 | fontWeight = FontWeight.SemiBold 196 | ) 197 | } 198 | 199 | OutlinedButton( 200 | onClick = { 201 | GlobalScope.launch { 202 | pagerState.scrollToPage( 203 | pagerState.currentPage + 1, 204 | pageOffset = 0f 205 | ) 206 | } 207 | }, 208 | border = BorderStroke( 209 | 14.dp, 210 | item[pagerState.currentPage].mainColor 211 | ), 212 | shape = RoundedCornerShape(50), // = 50% percent 213 | //or shape = CircleShape 214 | colors = ButtonDefaults.outlinedButtonColors(contentColor = item[pagerState.currentPage].mainColor), 215 | modifier = Modifier.size(65.dp) 216 | ) { 217 | Icon( 218 | painter = painterResource(id = R.drawable.ic_right_arrow), 219 | contentDescription = "", 220 | tint = item[pagerState.currentPage].mainColor, 221 | modifier = Modifier.size(20.dp) 222 | ) 223 | } 224 | } else { 225 | Button( 226 | onClick = { 227 | //show home screen 228 | }, 229 | modifier = Modifier.fillMaxWidth(), 230 | colors = ButtonDefaults.buttonColors( 231 | backgroundColor = item[pagerState.currentPage].mainColor 232 | ), 233 | contentPadding = PaddingValues(vertical = 12.dp), 234 | elevation = ButtonDefaults.elevation( 235 | defaultElevation = 0.dp 236 | ) 237 | ) { 238 | Text( 239 | text = "Get Started", 240 | color = Color.White, 241 | fontSize = 16.sp 242 | ) 243 | } 244 | } 245 | } 246 | } 247 | } 248 | } 249 | 250 | } 251 | } 252 | } 253 | 254 | @Composable 255 | fun PagerIndicator(currentPage: Int, items: List) { 256 | Row( 257 | horizontalArrangement = Arrangement.SpaceBetween, 258 | modifier = Modifier.padding(top = 20.dp) 259 | ) { 260 | repeat(items.size) { 261 | Indicator(isSelected = it == currentPage, color = items[it].mainColor) 262 | } 263 | } 264 | } 265 | 266 | @Composable 267 | fun Indicator(isSelected: Boolean, color: Color) { 268 | val width = animateDpAsState(targetValue = if (isSelected) 40.dp else 10.dp) 269 | 270 | Box( 271 | modifier = Modifier 272 | .padding(4.dp) 273 | .height(10.dp) 274 | .width(width.value) 275 | .clip(CircleShape) 276 | .background( 277 | if (isSelected) color else Color.Gray.copy(alpha = 0.5f) 278 | ) 279 | ) 280 | } 281 | 282 | @ExperimentalPagerApi 283 | @Composable 284 | fun rememberPagerState( 285 | @androidx.annotation.IntRange(from = 0) pageCount: Int, 286 | @androidx.annotation.IntRange(from = 0) initialPage: Int = 0, 287 | @FloatRange(from = 0.0, to = 1.0) initialPageOffset: Float = 0f, 288 | @androidx.annotation.IntRange(from = 1) initialOffscreenLimit: Int = 1, 289 | infiniteLoop: Boolean = false 290 | ): PagerState = rememberSaveable(saver = PagerState.Saver) { 291 | PagerState( 292 | pageCount = pageCount, 293 | currentPage = initialPage, 294 | currentPageOffset = initialPageOffset, 295 | offscreenLimit = initialOffscreenLimit, 296 | infiniteLoop = infiniteLoop 297 | ) 298 | } 299 | -------------------------------------------------------------------------------- /app/src/main/java/com/uistack/onboarding/OnBoardingData.kt: -------------------------------------------------------------------------------- 1 | package com.uistack.onboarding 2 | 3 | import androidx.compose.ui.graphics.Color 4 | import com.uistack.onboarding.ui.theme.ColorBlue 5 | 6 | data class OnBoardingData( 7 | val image: Int, val title: String, 8 | val desc: String, 9 | val backgroundColor:Color, 10 | val mainColor:Color = ColorBlue 11 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/uistack/onboarding/ui/theme/Color.kt: -------------------------------------------------------------------------------- 1 | package com.uistack.onboarding.ui.theme 2 | 3 | import androidx.compose.ui.graphics.Color 4 | 5 | val Purple200 = Color(0xFFBB86FC) 6 | val Purple500 = Color(0xFF6200EE) 7 | val Purple700 = Color(0xFF3700B3) 8 | val Teal200 = Color(0xFF03DAC5) 9 | 10 | 11 | val ColorBlue = Color(0xFF008AC3) 12 | val ColorYellow = Color(0xFFFAD206) 13 | val ColorGreen = Color(0xFF8DDD66) -------------------------------------------------------------------------------- /app/src/main/java/com/uistack/onboarding/ui/theme/Shape.kt: -------------------------------------------------------------------------------- 1 | package com.uistack.onboarding.ui.theme 2 | 3 | import androidx.compose.foundation.shape.RoundedCornerShape 4 | import androidx.compose.material.Shapes 5 | import androidx.compose.ui.unit.dp 6 | 7 | val Shapes = Shapes( 8 | small = RoundedCornerShape(4.dp), 9 | medium = RoundedCornerShape(4.dp), 10 | large = RoundedCornerShape(0.dp) 11 | ) 12 | 13 | val BottomCardShape = Shapes( 14 | large = RoundedCornerShape(topStart = 80.dp) 15 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/uistack/onboarding/ui/theme/Theme.kt: -------------------------------------------------------------------------------- 1 | package com.uistack.onboarding.ui.theme 2 | 3 | import androidx.compose.foundation.isSystemInDarkTheme 4 | import androidx.compose.material.MaterialTheme 5 | import androidx.compose.material.darkColors 6 | import androidx.compose.material.lightColors 7 | import androidx.compose.runtime.Composable 8 | import com.google.accompanist.systemuicontroller.SystemUiController 9 | import com.google.accompanist.systemuicontroller.rememberSystemUiController 10 | 11 | private val DarkColorPalette = darkColors( 12 | primary = Purple200, 13 | primaryVariant = Purple700, 14 | secondary = Teal200 15 | ) 16 | 17 | private val LightColorPalette = lightColors( 18 | primary = Purple500, 19 | primaryVariant = Purple700, 20 | secondary = Teal200 21 | 22 | /* Other default colors to override 23 | background = Color.White, 24 | surface = Color.White, 25 | onPrimary = Color.White, 26 | onSecondary = Color.Black, 27 | onBackground = Color.Black, 28 | onSurface = Color.Black, 29 | */ 30 | ) 31 | 32 | @Composable 33 | fun OnboardingDemoTheme( 34 | darkTheme: Boolean = isSystemInDarkTheme(), 35 | content: @Composable() () -> Unit 36 | ) { 37 | val systemUiController: SystemUiController = rememberSystemUiController() 38 | 39 | systemUiController.isStatusBarVisible = false // Status bar 40 | 41 | val colors = LightColorPalette 42 | MaterialTheme( 43 | colors = colors, 44 | typography = Typography, 45 | shapes = Shapes, 46 | content = content 47 | ) 48 | } -------------------------------------------------------------------------------- /app/src/main/java/com/uistack/onboarding/ui/theme/Type.kt: -------------------------------------------------------------------------------- 1 | package com.uistack.onboarding.ui.theme 2 | 3 | import androidx.compose.material.Typography 4 | import androidx.compose.ui.text.TextStyle 5 | import androidx.compose.ui.text.font.Font 6 | import androidx.compose.ui.text.font.FontFamily 7 | import androidx.compose.ui.text.font.FontWeight 8 | import androidx.compose.ui.unit.sp 9 | import com.uistack.onboarding.R 10 | 11 | // Set of Material typography styles to start with 12 | 13 | val Poppins = FontFamily(Font(R.font.poppins)) 14 | val ReemKufi = FontFamily(Font(R.font.reemkufi)) 15 | 16 | val Typography = Typography( 17 | body1 = TextStyle( 18 | fontFamily = FontFamily.Default, 19 | fontWeight = FontWeight.Normal, 20 | fontSize = 16.sp 21 | ) 22 | /* Other default text styles to override 23 | button = TextStyle( 24 | fontFamily = FontFamily.Default, 25 | fontWeight = FontWeight.W500, 26 | fontSize = 14.sp 27 | ), 28 | caption = TextStyle( 29 | fontFamily = FontFamily.Default, 30 | fontWeight = FontWeight.Normal, 31 | fontSize = 12.sp 32 | ) 33 | */ 34 | ) -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/cooking.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UIStackYT/Onboarding_Screen/f4b8cfc8bee52e3a5c2eb88c335415c97e6f09ec/app/src/main/res/drawable-v24/cooking.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/food.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UIStackYT/Onboarding_Screen/f4b8cfc8bee52e3a5c2eb88c335415c97e6f09ec/app/src/main/res/drawable-v24/food.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/fruit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UIStackYT/Onboarding_Screen/f4b8cfc8bee52e3a5c2eb88c335415c97e6f09ec/app/src/main/res/drawable-v24/fruit.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 15 | 18 | 21 | 22 | 23 | 24 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 | 50 | 55 | 60 | 65 | 70 | 75 | 80 | 85 | 90 | 95 | 100 | 105 | 110 | 115 | 120 | 125 | 130 | 135 | 140 | 145 | 150 | 155 | 160 | 165 | 170 | 171 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_right_arrow.xml: -------------------------------------------------------------------------------- 1 | 6 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/font/poppins.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UIStackYT/Onboarding_Screen/f4b8cfc8bee52e3a5c2eb88c335415c97e6f09ec/app/src/main/res/font/poppins.ttf -------------------------------------------------------------------------------- /app/src/main/res/font/reemkufi.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UIStackYT/Onboarding_Screen/f4b8cfc8bee52e3a5c2eb88c335415c97e6f09ec/app/src/main/res/font/reemkufi.ttf -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UIStackYT/Onboarding_Screen/f4b8cfc8bee52e3a5c2eb88c335415c97e6f09ec/app/src/main/res/mipmap-hdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UIStackYT/Onboarding_Screen/f4b8cfc8bee52e3a5c2eb88c335415c97e6f09ec/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UIStackYT/Onboarding_Screen/f4b8cfc8bee52e3a5c2eb88c335415c97e6f09ec/app/src/main/res/mipmap-mdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UIStackYT/Onboarding_Screen/f4b8cfc8bee52e3a5c2eb88c335415c97e6f09ec/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UIStackYT/Onboarding_Screen/f4b8cfc8bee52e3a5c2eb88c335415c97e6f09ec/app/src/main/res/mipmap-xhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UIStackYT/Onboarding_Screen/f4b8cfc8bee52e3a5c2eb88c335415c97e6f09ec/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UIStackYT/Onboarding_Screen/f4b8cfc8bee52e3a5c2eb88c335415c97e6f09ec/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UIStackYT/Onboarding_Screen/f4b8cfc8bee52e3a5c2eb88c335415c97e6f09ec/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UIStackYT/Onboarding_Screen/f4b8cfc8bee52e3a5c2eb88c335415c97e6f09ec/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UIStackYT/Onboarding_Screen/f4b8cfc8bee52e3a5c2eb88c335415c97e6f09ec/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/values-night/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFBB86FC 4 | #FF6200EE 5 | #FF3700B3 6 | #FF03DAC5 7 | #FF018786 8 | #FF000000 9 | #FFFFFFFF 10 | #FF00B5EA 11 | #FFF7D044 12 | #FF83D15F 13 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Onboarding Demo 3 | -------------------------------------------------------------------------------- /app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | 17 | 21 | 22 |