Star rating

Star Ratings are used for displaying a score within a given range.

Star Rating

Maven Central Class reference Source code

Default

Day Night
Star Rating component Star Rating component - dark mode

Interactive

Day Night
Interactive Star Rating component Interactive Star Rating component - dark mode

Installation

Backpack Compose is available through Maven Central. Check the main Readme for a complete installation guide.

Usage

Example of a BpkStarRating with full star rating:


                                                
                                                import net.skyscanner.backpack.compose.starrating.BpkStarRating
                                                import net.skyscanner.backpack.compose.starrating.BpkStarRatingSize
                                                import net.skyscanner.backpack.compose.starrating.BpkRatingRounding
                                                
                                                
                                                BpkStarRating(
                                                  rating = 2f,
                                                  contentDescription = { value, max ->
                                                    stringResource(R.string.star_rating_accessibility_status, value, max)
                                                  },
                                                  rounding = BpkRatingRounding.Up,
                                                  size = BpkStarRatingSize.Small,
                                                )

Example of a BpkStarRating with half star rating:


                                                
                                                import net.skyscanner.backpack.compose.starrating.BpkStarRating
                                                import net.skyscanner.backpack.compose.starrating.BpkStarRatingSize
                                                import net.skyscanner.backpack.compose.starrating.BpkRatingRounding
                                                
                                                
                                                BpkStarRating(
                                                  rating = 3.5f,
                                                  contentDescription = { value, max ->
                                                    stringResource(R.string.star_rating_accessibility_status, value, max)
                                                  },
                                                  rounding = BpkRatingRounding.Down,
                                                  size = BpkStarRatingSize.Large,
                                                )

Example of a BpkHotelRating:


                                                
                                                import net.skyscanner.backpack.compose.starrating.BpkStarRating
                                                import net.skyscanner.backpack.compose.starrating.BpkStarRatingSize
                                                
                                                
                                                BpkHotelRating(
                                                  rating = 3,
                                                  contentDescription = { value, max ->
                                                    stringResource(R.string.star_rating_accessibility_status, value, max)
                                                  },
                                                  size = BpkStarRatingSize.Small,
                                                )

Example of a BpkInteractiveStarRating:


                                                
                                                import androidx.compose.runtime.remember
                                                import androidx.compose.runtime.getValue
                                                import androidx.compose.runtime.setValue
                                                import androidx.compose.runtime.remember
                                                import androidx.compose.runtime.mutableStateOf
                                                import net.skyscanner.backpack.compose.starrating.BpkInteractiveStarRating
                                                import net.skyscanner.backpack.compose.starrating.BpkStarRatingSize
                                                
                                                var rating by remember { mutableStateOf(0) }
                                                
                                                BpkInteractiveStarRating(
                                                  rating = rating,
                                                  onRatingChanged = { rating = it },
                                                  contentDescription = { value, max ->
                                                    stringResource(R.string.star_rating_accessibility_status, value, max)
                                                  },
                                                  size = BpkStarRatingSize.Small,
                                                )