react-skeleton-builder
TypeScript icon, indicating that this package has built-in type declarations

0.6.3 • Public • Published

React Skeleton Builder

A lightweight React component library for building skeletons with TypeScript and Chakra UI.

Installation

npm i react-skeleton-builder

Usage

In the root of your providers

import { ReactSkeletonProvider } from 'react-skeleton-builder';

<ReactSkeletonProvider
    value={{
        // Initialy we can put empty object.
        // Check the props to customize the builder's behaviour
    }} 
>
    {children}
</ReactSkeletonProvider>

Example of Skeleton Component

You can generate the grid structure by visiting the website.

import React from 'react';
import Skeleton from 'react-skeleton-builder';

const ExampleComponent: React.FC = () => {
return (
<Skeleton
    styles={{
        width: '100%',
        height: '60px',
    }}
    grid={{
        children: [
            {
                w: '60px',
                skeletons: [
                    {
                        h: '60px',
                        r: '50%',
                    },
                ],
            },
            {
                direction: 'column',
                gridGap: '.5',
                skeletons: [
                    { r: '.4rem', w: '80%' },
                    { r: '.4rem', w: '60%' },
                    { r: '.4rem', w: '30%' },
                ],
            },
        ],
    }}
    />
);
};

export default ExampleComponent;

The result is this:

API

Props of ReactSkeletonProvider

Props type required defaultValue
children ReactNode true
value Object (check appropriate table) true {}

value prop consist of these:

Props type required defaultValue
isDark boolean false false
colorTheme Object (ColorThemes) (check appropriate table) false DEFAULT_COLOR_THEMES
breakpoints Object (Breakpoints) (check appropriate table) false DEFAULT_BREAKPOINTS
skeletonAnimation string false SKELETON_ANIMATION_VARIANTS.SLIDE

colorTheme prop consist of these:

Props type required defaultValue
dark Object {main: string, gradient: string} true { main: '#282c34', gradient: '#2c303a' }
light Object {main: string, gradient: string} true { main: '#f1f1f1', gradient: '#ececec' }

breakpoints prop consist of these:

Props type required defaultValue
mobile string true 576px
tablet string true 961px
desktop string true 962px >

Props of Skeleton

Props type required defaultValue
styles Object false {}
customContainerWidth number (breakpoints will work with that width instead of window's width) false
grid IGrid (object) true

If you encounter any issues, please visit this link.

If my builder was helpful for you, you can show your support by

You can reach out to me via:

And thanks for using my builder :)

Package Sidebar

Install

npm i react-skeleton-builder

Weekly Downloads

2

Version

0.6.3

License

MIT

Unpacked Size

63.7 kB

Total Files

17

Last publish

Collaborators

  • asahak