1.0.0 • Published 1 year ago

solid-loading-skeleton v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

solidjs card

pnpm NPM package bundle size package version npm downloads

Light and customizable Solid component to create skeleton screens that automatically adapt to your app!

Quick start

Install it:

npm i solid-marquee
# or
yarn add solid-marquee
# or
pnpm add solid-marquee

Usage

import Skeleton from "solid-loading-skeleton"
import "solid-loading-skeleton/dist/skeleton.css"

const App = () => {
  return (
    <Skeleton /> // A simple, single-line loading skeleton
    <Skeleton count={5} /> // Fie-line loading skeleton
  )
}

Principles

1. Adapts to the styles you have defined

The Skeleton component should be used directly in your components in place of content that is loading. While other libraries require you to meticulously craft a skeleton screen that matches the font size, line height, and margins of your content, the Skeleton component is automatically sized to the correct dimensions.

For example:

const BlogPost = (props) => {
  return(
    <div>
      <h1>{props.title || <Skeleton />}</h1>
      {props.body || <Skeleton count={10} />}
    </div>
  )
}

...will produce correctly-sized skeletons for the heading and body without any further configuration.

This ensures the loading state remains up-to-date with any changes to your layout or typography.

2. Don't make dedicated skeleton screens

Instead, make components with built-in skeleton states.

This approach is beneficial because:

  1. It keeps styles in sync.
  2. Components should represent all possible states — loading included.
  3. It allows for more flexible loading patterns. In the blog post example above, it's possible to have the title load before the body, while having both pieces of content show loading skeletons at the right time.

Theming

Customize individual skeletons with props, or render a SkeletonTheme to style all skeletons below it in the React hierarchy:

import Skeleton, { SkeletonTheme } from "solid-loading-skeleton";

return (
  <SkeletonTheme baseColor="#202020" highlightColor="#444">
    <p>
      <Skeleton count={3} />
    </p>
  </SkeletonTheme>
);

Props Reference

Skeleton only

Skeleton and SkeletonTheme

Contributors

contributors

Licence

MIT

1.0.0

1 year ago