πŸš€ Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more β†’
Socket
DemoInstallSign in
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.16
Source
npm
Version published
Weekly downloads
329
-14.99%
Maintainers
1
Weekly downloads
Β 
Created
Source

react-native-auto-skeleton

react-native-auto-skeleton Provides automatic skeleton loading indicators based on your existing UI components, without manual configuration..

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

Usage

⚠️ Warning: 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

PropTypeDefaultDescription
isLoadingbooleanβ€”Enables or disables the skeleton state. When true, skeleton placeholders will be shown.
shimmerSpeedFloat1.0Duration of one shimmer animation cycle in seconds. Lower values = faster shimmer.
shimmerBackgroundColorstring#C7C7CCBackground color of skeleton shapes
gradientColors[string,string][#C7C7CC,'#ffffff']Gradient colors for the skeleton gradient.
defaultRadiusFloat4Default corner radius for skeleton elements that don't have a defined borderRadius.

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.

License

MIT

Keywords

react-native

FAQs

Package last updated on 29 Mar 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