mmusaib / react-native-skeleton-loading

React Native's Skeleton Loading Component
https://www.npmjs.com/package/react-native-skeleton-loading
MIT License
13 stars 2 forks source link
expo expo-skeleton-loader expo-skeleton-loading loading react-native react-native-skeleton-loader react-native-skeleton-loading skeleton skeleton-loader skeleton-loading skeletonloader
NPM VERSION NPM WEEKLY DOWNLOADS GITHUB STAR YOUTUBE VIEWS NPM LIFETIME DOWNLOADS

🏳️‍🌈 React Native Skeleton Loading

🟢 Skeleton Loading Component for React Native powered apps

Light Weight and Robust Skeleton Loader.

Compatibility

iOS Android React Native Cli

Expo Equivalent

For Expo Loader (Click Here)

🔌 Installation

$ npm install react-native-skeleton-loading

OR

$ yarn add react-native-skeleton-loading

Setup

This package is based on react-natve-reanimated 3 so according to their documentation, you need to initialize that in babel.config.js. To do that stop the metro bundler and then add following line of code to the return object of babel.config.js

plugins: ['react-native-reanimated/plugin']

After adding the line of code, start the bundler or project with --clear tag like,

npx expo start --clear

This will clear the bundler cache and you are ready to go.

😎 Displaying the skeleton loading

All you need is to just import the skeleton loading component, and in between the closing and ending tags, you can design the UI of your skeleton loading screen as shown in the code snippet below:

import SkeletonLoading from 'react-native-skeleton-loading'

const App = () => {

  return(
    <SkeletonLoading background={"#adadad"} highlight={"#ffffff"}>
        <View style={{ flexDirection: 'row', justifyContent: 'space-between' }}>
          <View style={{ width: 100, height: 100, backgroundColor: "#adadad", borderRadius: 10 }} />

          <View style={{ flex:1, marginLeft: 10 }}>
              <View style={{ backgroundColor: "#adadad", width: "50%", height: 10, marginBottom: 3, borderRadius: 5 }} />
              <View style={{ backgroundColor: "#adadad", width: '20%', height: 8, borderRadius: 5 }} />
              <View style={{ backgroundColor: "#adadad", width: '15%', height: 8, borderRadius: 5, marginTop: 3 }} />
          </View>
        </View>
    </SkeletonLoading>
  )

};

For Live Demo (Expo Snack)

⭐ Props for the component

Name Type Description
background hex color string Hex color string for the background of loading component
highlight hex color string Hex color string for the highlight of loading component

💲 Would you like to support me?

If you would like me come up with similar packages, buy me a cup of coffee to boost my energy.

Paypal

▶️ Watch Tutorial Video

Watch video