react-native-touchable-scale-feedback

1.0.0 • Public • Published

react-native-touchable-scale-feedback

A (re)animated button with scale animation feedback. Animations work at 60fps even when js thread is busy.

Installation

Using npm:

npm install react-native-reanimated (if not already)
npm install react-native-gesture-handler (if not already)
npm install react-native-touchable-scale-feedback

or using yarn:

yarn add react-native-reanimated (if not already)
yarn add react-native-gesture-handler (if not already)
yarn add react-native-touchable-scale-feedback

Basic

Prop Default Type Description
onPress ()=>{ } Function Callback when the button is pressed
inactiveScale 1 Number The scale of the button when it is not pressed
activeScale 0.9 Number The scale of the button when it is not pressed

Usage

import TouchableScaleFeedback from 'react-native-touchable-scale-feedback';

  ...
  <TouchableScaleFeedback
    activeScale={0.9}
    inactiveScale={1}
    onPress={()=>{console.log('Pressed')}}
  >
    // Your view here
  </TouchableScaleFeedback>


  // Example 1
  <TouchableScaleFeedback
    inactiveScale={1}
    activeScale={0.9}
    onPress={() => { console.log('Pressed') }}
  >
    <View style={styles.signupButton}>
      <Text
        style={styles.signupText}
      >
        {'Sign up'}
      </Text>
    </View>
  </TouchableScaleFeedback>

  // Example 2
  <View style={styles.card}>
    <TouchableScaleFeedback
      activeScale={1.2}
      inactiveScale={0.9}
      onPress={() => { console.log('Pressed') }}
    >
      <View style={styles.imageWrapper}>
        <Image
          style={styles.image}
          resizeMode={'contain'}
          source={SUPPORT_BACKGROUND}
        />
      </View>
    </TouchableScaleFeedback>
    <View
      pointerEvents={'none'}
      style={styles.cardAbsView}
    >
      <Text style={styles.cardTitle}>{'Help and Support'}</Text>
    </View>
  </View>
  ...

  ...
  const styles = {
    signupButton: {
      height: 52,
      borderRadius: 6,
      overflow: 'hidden',
      alignItems: 'center',
      marginHorizontal: 10,
      justifyContent: 'center',
      backgroundColor: '#FF403B',
    },
    signupText: {
      color: 'white',
      fontSize: 20
    },
    card: {
      width: '80%',
      aspectRatio: 1.5,
      marginTop: 100,
      borderRadius: 10,
      overflow: 'hidden',
      alignSelf: 'center',
      backgroundColor: '#FFF8E7'
    },
    cardAbsView: {
      top: 0,
      left: 0,
      right: 0,
      bottom: 0,
      padding: 16,
      position: 'absolute',
      justifyContent: 'flex-end'
    },
    cardTitle: {
      fontSize: 24,
      fontWeight: 'bold'
    },
    imageWrapper: {
      width: '100%',
      height: '100%'
    },
    image: {
      flex: 1,
      width: null,
      height: null,
    }
  }
  ...

Package Sidebar

Install

npm i react-native-touchable-scale-feedback

Weekly Downloads

1

Version

1.0.0

License

MIT

Unpacked Size

423 kB

Total Files

8

Last publish

Collaborators

  • andresh