vue-shimmer

1.0.0 • Public • Published

Shimmer

A placeholder shimmer for vuejs, unlike other placeholder modules Shimmer inherits basic styles from computed styles. Take the following example.

<p class="red-text" v-if="loading">
  <textShimmer />
</p>
<p class="red-text" v-else>
  Tortor Etiam Vestibulum Inceptos Ornare
</p>

Assuming the class red-text has the property color: red, textShimmer will render with a red background to match the text color. This feature of inheritance also applies to font-size, to roughly mimic the height of that font.

Installation

npm install vue-shimmer babel-loader css-loader vue-style-loader vue-template-compiler

Usage

import {
  blockShimmer,
  circleShimmer,
  imageShimmer,
  paragraphsShimmer,
  sentencesShimmer,
  textShimmer
} from 'shimmer'

// ...

components: {
  'blockShimmer': blockShimmer,
  'circleShimmer': circleShimmer,
  'imageShimmer': imageShimmer,
  'paragraphsShimmer': paragraphsShimmer.
  'sentencesShimmer': sentencesShimmer,
  'textShimmer': textShimmer
},
<div class="col-1">
  <circleShimmer size="40px" />
</div>
<div class="col-2">
  <h1>
    <textShimmer />
  </h1>
  <small>
    <textShimmer />
  </small>
  <p>
    <sentencesShimmer lines="6" />
  </p>
</div>

Components

Block

Provides a basic block placeholder to the dimensions specified.

<blockShimmer height="50px" width="60px" />

Props

height
  • Type: String
  • Required
width
  • Type: String
  • Required

Circle

Provides a circle placeholder to the size specified by the property or inheriting the fontsize, making this ideal for avatar and icon placeholders.

<circleShimmer size="30px" />

<!-- or -->

<div style="font-size:20px">
  <circleShimmer />
</div>

Props

size
  • Type: String

Image

Provides a image block placeholder similar to blockShimmer. However imageShimmer maintains an aspect ratio at various window sizes.

<imageShimmer height="50" width="60" />

Props

height

Specifies the height of the image placeholder.

  • Type: String
  • Required
width

Specifies the width of the image placeholder.

  • Type: String
  • Required

Text

Provides a text placeholder to mimic text.

<textShimmer width="60%" />

<!-- or -->

<h1>
  <textShimmer />
</h1>

Props

width
  • Type: String
  • Default: 45%

Sentences

Provides a sentences placeholder to mimic lines in a paragraph.

<p>
  <sentencesShimmer lines=5 />
</p>

Props

lines
  • Type: Number
  • Default: 4

Paragraphs

Provides a paragraghs placeholder to mimic paragraghs.

<paragraghsShimmer total=5 />

Props

total
  • Type: Number
  • Default: 4

Styling

Although styling is mainly inherited from computed styles. There are some styles that can be re-defined.

Below are a few examples of how they can be applied and variables available.

CSS example (Recommended)

.root {
  --shimmer-color: red;
}

Inline example

<textShimmer style="--shimmer-color: red"></textShimmer>

--shimmer-color

Defines the color of placeholders.

  • Default: currentColor

--shimmer-shine-color

Defines the color of the shine effect on placeholders.

  • Default: rgba(255, 255, 255, 0.8)

--shimmer-duration

Defines the animation duration of placeholders.

  • Default: 1.5s

--shimmer-timing-function

Defines the animation timing function of placeholders.

  • Default: linear

--shimmer-radius

Defines default border radius of placeholders.

  • Default: none

Package Sidebar

Install

npm i vue-shimmer

Weekly Downloads

43

Version

1.0.0

License

BSD-3-Clause

Unpacked Size

13 kB

Total Files

14

Last publish

Collaborators

  • gorriecoe