๐Ÿš€ Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more โ†’
Socket
Sign inDemoInstall
Socket

react-native-auto-skeleton

Package Overview
Dependencies
Maintainers
1
Versions
22
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-native-auto-skeleton

๐Ÿš€ Automatically generates skeleton based on your existing UI layout without manual configuration.

0.1.22
latest
Source
npm
Version published
Weekly downloads
310
58.97%
Maintainers
1
Weekly downloads
ย 
Created
Source

React Native Auto Skeleton โ€“ Lightweight Skeleton Loader for React Native

react-native-auto-skeleton is a modern skeleton loader for React Native, designed to automatically render loading placeholders (shimmer-style) based on your existing layout.

Ideal replacement for react-native-skeleton-placeholder and other manual solutions.

npm version npm downloads iOS Android TypeScript MIT License Bundle size

Demo

react-native-auto-skeleton demo

โœ… Platform Support

PlatformOld ArchFabric
iOSโœ…โœ…
Androidโœ…โœ…

Installation

Using npm:

npm install react-native-auto-skeleton

Using yarn:

yarn add react-native-auto-skeleton

Expo

This library works in Expo (with expo prebuild) without additional configuration.

Usage

โš ๏ธ Warning: On Android, automatic detection of a viewโ€™s border-radius is not supported. You can override it manually via the defaultRadius prop.

Here's a quick example to get started:


import { AutoSkeletonView, AutoSkeletonIgnoreView } from 'react-native-auto-skeleton';
...

<AutoSkeletonView isLoading={isLoading}>
    ...YOUR VIEWS
  <AutoSkeletonIgnoreView> // Content that will be ignored by the skeleton
    ... Views without skeleton
  </AutoSkeletonIgnoreView>
</AutoSkeletonView>

Full example

import { AutoSkeletonView } from 'react-native-auto-skeleton';

interface IProfile {
  name: string;
  jobTitle: string;
  avatar: string;
}

const getProfile = async (): Promise<IProfile> => {
  // Fetch profile data from your API
};

export default function App() {
  const [isLoading, setIsLoading] = useState(true);
  const [profile, setProfile] = useState<IProfile>({} as IProfile);

  useEffect(() => {
    (async () => {
      const res = await getProfile();
      setProfile(res);
      setIsLoading(false);
    })();
  }, []);

  return (
     <AutoSkeletonView isLoading={isLoading}>
      <View style={styles.avatarWithName}>
        <Image style={styles.avatar} source={{ uri: profile.avatar }} />
        <View style={{ flex: 1 }}>
          <Text style={styles.name}>{profile.name}</Text>
          <Text style={styles.jobTitle}>{profile.jobTitle}</Text>
        </View>
      </View>

      {/* This buttons block will have skeleton applied */}
      <View style={styles.buttons}>
        <TouchableOpacity style={styles.button}>
          <Text style={styles.buttonTitle}>Add</Text>
        </TouchableOpacity>
        <TouchableOpacity style={styles.button}>
          <Text style={styles.buttonTitle}>Delete</Text>
        </TouchableOpacity>
      </View>

      {/* Alternatively, to exclude buttons from skeleton rendering: */}
      <AutoSkeletonIgnoreView>
        <View style={styles.buttons}>
           ...
        </View>
      </AutoSkeletonIgnoreView>
    </AutoSkeletonView>
  );
}

API

ProptypeDescription
isLoadingbooleanEnables or disables the skeleton state
shimmerSpeednumberDuration of one shimmer animation cycle in seconds. Lower values = faster shimmer
shimmerBackgroundColorstringBackground color for animation types: pulse and none
gradientColors[string,string]Gradient colors for the skeleton gradient
defaultRadiusnumberDefault corner radius for skeleton elements that don't have a defined borderRadius
animationType"gradient" | "pulse" | "none"Skeleton animation

Best Practices

  • For rapid implementation, wrap entire UI sections with <AutoSkeletonView>.
  • For precise control, wrap individual UI components or groups separately.
  • Ensure components have clearly defined dimensions, backgrounds, or styles for optimal skeleton rendering.
  • To exclude specific components from skeleton rendering, wrap them with <AutoSkeletonIgnoreView>. Any content inside this wrapper will not be processed by the skeleton system.

๐Ÿ” Alternative Solutions

You may also know:

If you're looking for a React Native skeleton loader that works automatically, with Fabric support, and no manual configuration, react-native-auto-skeleton is your go-to solution.

License

MIT

๐Ÿ“Œ Keywords

React Native Skeleton, React Native Placeholder, react-native skeleton loader, react native shimmer, loading indicator React Native, Fabric placeholder view, auto skeleton view, react native content loader.

Keywords

react-native

FAQs

Package last updated on 09 Apr 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts