Giter Site home page Giter Site logo

aidanaden / solid-top-loading-bar Goto Github PK

View Code? Open in Web Editor NEW
9.0 2.0 1.0 307 KB

A very simple, highly customisable youtube/githhub-like solid loader component (inspired by react-top-loading-bar)

Home Page: https://solid-top-loading-bar.vercel.app

HTML 2.36% TypeScript 78.51% CSS 18.78% JavaScript 0.35%
loader loading progress-bar solidjs top-bar loading-bar loading-indicator solid-indicator solid-loader solid-loading-bar

solid-top-loading-bar's Introduction

solid-top-loading-bar

size size npm

solid-top-loading-bar

This package was ported to Solid from the react-top-loading-bar package made by Klendi Gocci

Install

  • using npm
npm install --save solid-top-loading-bar
  • using yarn
yarn add solid-top-loading-bar
  • CDN
https://unpkg.com/solid-top-loading-bar

Usage

With ref

import LoadingBar, { LoadingBarRef } from "solid-top-loading-bar";

const App = () => {
  const [loadingBar, setLoadingBar] = createSignal<LoadingBarRef>()

  return (
    <div>
      <LoadingBar color="#f11946" loadingBar={loadingBar()} setLoadingBar={setLoadingBar} />
      <button onClick={() => loadingBar()?.continuousStart()}>
        Start Continuous Loading Bar
      </button>
      <button onClick={() => loadingBar()?.staticStart()}>
        Start Static Loading Bar
      </button>
      <button onClick={() => loadingBar()?.complete()}>Complete</button>
      <br />
    </div>
  );
};

export default App;

With state

import { createSignal } from "solid";
import LoadingBar from "solid-top-loading-bar";

const App = () => {
  const [progress, setProgress] = createSignal(0);

  return (
    <div>
      <LoadingBar
        color="#f11946"
        progress={progress()}
        onLoaderFinished={() => setProgress(0)}
      />
      <button onClick={() => setProgress((p) => p + 10)}>Add 10%</button>
      <button onClick={() => setProgress((p) => p + 20)}>Add 20%</button>
      <button onClick={() => setProgress(100)}>Complete</button>
      <br />
    </div>
  );
};

export default App;

Demo

Click here for demo

Built-in Methods

Methods Parameters Descriptions
add(value) Number Adds a value to the loading indicator.
decrease(value) Number Decreases a value to the loading indicator.
continuousStart(startingValue, refreshRate) Number (optional), Number(optional) Starts the loading indicator with a random starting value between 20-30, then repetitively after an refreshRate, increases it by a random value between 2-10. This continues until it reaches 90% of the indicator's width.
staticStart(startingValue) Number (optional) Starts the loading indicator with a random starting value between 30-50.
complete() Makes the loading indicator reach 100% of his width and then fade.

Properties

Property Type Default Description
progress Number 0 The progress/width indicator, progress prop varies from 0 to 100.
color String red The color of the loading bar, color take values like css property background: do, for example red, #000 rgb(255,0,0) etc.
shadow Boolean true Enables / Disables shadow underneath the loader.
height Number 2 The height of the loading bar in pixels.
background String 3 The loader parent background color.
style CSSProperties The style attribute to loader's div
containerStyle CSSProperties The style attribute to loader's container
shadowStyle CSSProperties The style attribute to loader's shadow
transitionTime Number 300 Fade transition time in miliseconds.
loaderSpeed Number 500 Loader transition speed in miliseconds.
waitingTime Number 1000 The delay we wait when bar reaches 100% before we proceed fading the loader out.
className String You can provide a class you'd like to add to the loading bar to add some styles to it
containerClassName String You can provide a class you'd like to add to the loading bar container to add some css styles
onLoaderFinished Function This is called when the loading bar completes, reaches 100% of his width.

Projects using solid-top-loading-bar

Add your own project. Make a PR

Code Style

js-standard-style

License

MIT © aidanaden

solid-top-loading-bar's People

Contributors

aidanaden avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

sdeed8

solid-top-loading-bar's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.