Carousel

The carousel component allows a series of content to cycle horizontally.

bpk-component-carousel

Backpack React Native carousel component.

Default

Day Night
bpk-component-carousel default iPhone 8 simulator bpk-component-carousel default iPhone 8 simulator - dark mode
bpk-component-carousel default Google Pixel emulator bpk-component-carousel default Google Pixel emulator - dark mode

Installation

Check the main Readme for a complete installation guide.

Usage


                                                
                                                import React, { Component } from 'react';
                                                import { Image, View, StyleSheet } from 'react-native';
                                                import { spacingXl } from '@skyscanner/bpk-foundations-react-native/tokens/base.react.native';
                                                import BpkCarousel, { BpkCarouselItem } from 'backpack-react-native/bpk-component-carousel';
                                                import BpkImage, { withLoadingBehaviour } from 'backpack-react-native/bpk-component-image';
                                                
                                                const WithLoadingBpkImage = withLoadingBehaviour(BpkImage);
                                                
                                                const styles = StyleSheet.create({
                                                  carousel: {
                                                    width: spacingXl * 10,
                                                    height: spacingXl * 10
                                                  },
                                                  image: {
                                                    width: '100%',
                                                    height: '100%'
                                                  }
                                                })
                                                
                                                export default () => (
                                                  <BpkCarousel
                                                    accessibilityLabel={(page, total) => `${page + 1} of ${total}`}
                                                    style={styles.carousel}
                                                  >
                                                    <BpkCarouselItem>
                                                      <WithLoadingBpkImage
                                                        rounded={false}
                                                        alt="Description of image"
                                                        style={styles.image}
                                                        source={require('./path/to/image.jpg')}
                                                      />
                                                    </BpkCarouselItem>
                                                    <BpkCarouselItem>
                                                      <WithLoadingBpkImage
                                                        rounded={false}
                                                        alt="Description of image"
                                                        style={styles.image}
                                                        source={require('./path/to/image.jpg')}
                                                      />
                                                    </BpkCarouselItem>
                                                  </BpkCarousel>
                                                );

Props

Property PropType Required Default Value
accessibilityLabel oneOfType(string, func) true -
children node true -
showIndicator bool false true

BpkCarouselItem props

Property PropType Required Default Value
children node true -

bpk-component-carousel-indicator

Backpack React Native carousel indicators component.

Default

Day Night
bpk-component-carousel-indicator default iPhone 8 simulator bpk-component-carousel-indicator default iPhone 8 simulator - dark mode
bpk-component-carousel-indicator default Google Pixel emulator bpk-component-carousel-indicator default Google Pixel emulator - dark mode

With overlay

Day Night
bpk-component-carousel-indicator with-overlay iPhone 8 simulator bpk-component-carousel-indicator with-overlay iPhone 8 simulator - dark mode
bpk-component-carousel-indicator with-overlay Google Pixel emulator bpk-component-carousel-indicator with-overlay Google Pixel emulator - dark mode

Installation

Check the main Readme for a complete installation guide.

Usage


                                                
                                                import React, { Component } from 'react';
                                                import { View, StyleSheet } from 'react-native';
                                                import { spacingBase } from '@skyscanner/bpk-foundations-react-native/tokens/base.react.native';
                                                import BpkCarouselIndicator from 'backpack-react-native/bpk-component-carousel-indicator';
                                                
                                                const styles = StyleSheet.create({
                                                  container: {
                                                    flex: 1,
                                                    justifyContent: 'center',
                                                    padding: spacingBase,
                                                  },
                                                });
                                                
                                                export default class App extends Component {
                                                  render() {
                                                    return (
                                                      <View style={styles.container}>
                                                        <BpkCarouselIndicator pageCount="10" selectedIndex="0" />
                                                        <BpkCarouselIndicator pageCount="3" selectedIndex="2" />
                                                        <BpkCarouselIndicator pageCount="5" selectedIndex="1" />
                                                      </View>
                                                    );
                                                  }
                                                }

Props

Property PropType Required Default Value
pageCount number true -
selectedIndex number true -