SpotlightOnboarding

Library facilitates guided onboarding by highlighting UI elements, offering customizable animations, scrim color, and support for multiple pages with optional Material 3 BottomSheet integration.

Android JVMJVMKotlin/NativeWasmJS
GitHub stars13
Authorss4nchouz
Open issues0
LicenseApache License 2.0
Creation dateabout 1 year ago

Last activityabout 1 year ago
Latest release1.1.1 (about 1 year ago)

Spotlight Onboarding

compose-mp-version kotlin-version

badge-iOS badge-Android badge-JVM badge-macOS badge-web

Spotlight Onboarding is a library for Compose Multiplatform that helps you create guided onboarding experiences by highlighting key UI elements. It allows users to focus on specific parts of your interface while dimming the rest of the screen.

Screenshots

screenshot

Features

  • Highlight specific UI elements.
  • Smooth enter/exit animations.
  • Customizable scrim color and shape.
  • Optional Material 3 BottomSheet support.
  • Support for multiple pages in onboarding flow.

Installation

Maven Central

Add the dependency to your build.gradle.kts:

implementation("io.github.s4nchouz:spotlight-onboarding:1.1.1")

For the Material 3 BottomSheet version:

implementation("io.github.s4nchouz:spotlight-onboarding-bottomsheet:1.1.1")

Usage

Basic Spotlight Onboarding

@Composable
fun MyScreen() {
    val spotlightState = rememberSpotlightOnboardingState()

    SpotlightOnboarding(
        isVisible = true,
        spotlightState = spotlightState
    ) {
        // Your content here
    }
}

Highlighting Items

Use spotlightItem modifier to mark elements to be highlighted:

Text(
    text = "Highlighted Item",
    modifier = Modifier.spotlightItem()
)

Using BottomSheet (Material 3)

SpotlightOnboarding(
    isVisible = true,
    spotlightState = spotlightState,
    onDismissRequest = { /* Handle dismiss */ },
    sheetContent = {
        Text("Additional Information")
    }
) {
    // Your content here
}

Customization

  • scrimColor: Customize the background overlay color.
  • spotlightEnterTransition: Define how the spotlight appears.
  • spotlightExitTransition: Define how the spotlight disappears.

License

Copyright 2025 Aleksandr Anokhin

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Android JVMJVMKotlin/NativeWasmJS
GitHub stars13
Authorss4nchouz
Open issues0
LicenseApache License 2.0
Creation dateabout 1 year ago

Last activityabout 1 year ago
Latest release1.1.1 (about 1 year ago)

Spotlight Onboarding

compose-mp-version kotlin-version

badge-iOS badge-Android badge-JVM badge-macOS badge-web

Spotlight Onboarding is a library for Compose Multiplatform that helps you create guided onboarding experiences by highlighting key UI elements. It allows users to focus on specific parts of your interface while dimming the rest of the screen.

Screenshots

screenshot

Features

  • Highlight specific UI elements.
  • Smooth enter/exit animations.
  • Customizable scrim color and shape.
  • Optional Material 3 BottomSheet support.
  • Support for multiple pages in onboarding flow.

Installation

Maven Central

Add the dependency to your build.gradle.kts:

implementation("io.github.s4nchouz:spotlight-onboarding:1.1.1")

For the Material 3 BottomSheet version:

implementation("io.github.s4nchouz:spotlight-onboarding-bottomsheet:1.1.1")

Usage

Basic Spotlight Onboarding

@Composable
fun MyScreen() {
    val spotlightState = rememberSpotlightOnboardingState()

    SpotlightOnboarding(
        isVisible = true,
        spotlightState = spotlightState
    ) {
        // Your content here
    }
}

Highlighting Items

Use spotlightItem modifier to mark elements to be highlighted:

Text(
    text = "Highlighted Item",
    modifier = Modifier.spotlightItem()
)

Using BottomSheet (Material 3)

SpotlightOnboarding(
    isVisible = true,
    spotlightState = spotlightState,
    onDismissRequest = { /* Handle dismiss */ },
    sheetContent = {
        Text("Additional Information")
    }
) {
    // Your content here
}

Customization

  • scrimColor: Customize the background overlay color.
  • spotlightEnterTransition: Define how the spotlight appears.
  • spotlightExitTransition: Define how the spotlight disappears.

License

Copyright 2025 Aleksandr Anokhin

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.