Giter VIP home page Giter VIP logo

svelte-countdown's Introduction

svelte-countdown

A simple css-agnostic countdown component for Svelte 3 with just 1 dependency!

Installation ๐Ÿ”ง

First you need a Svelte 3 project. Its starter template lives at https://github.com/sveltejs/template.

Then install the component by running the following command in your project's directory:

npm install svelte-countdown

Features โค

  • Only 1 dependency! dayjs
  • Support for timezones & DST
  • done key to simplify what to show once the countdown is finished

Why not momentjs ?

dayjs is a modern alternative to momentjs with compatible Api. The main difference is that dayjs is tree shakeable which leaves a really tiny footprint to your bundle (aka loads faster). If you're still using momentjs in your project I'd suggest you take a look at dayjs. In most cases if you just switch packages and import {dayjs as moment} you won't have to change any of your code.

How to use ๐Ÿš€

  1. First import the component on your svelte page's script section.
import Countdown from 'svelte-countdown/src/index.js'
  1. Call the component where you want it to be placed e.g.:
<Countdown from="2020-11-09 09:30:00" dateFormat="YYYY-MM-DD H:m:s" zone="Europe/Athens" let:remaining>
    <div class="whatever">
        {#if remaining.done === false}
        <span>{remaining.years} years</span>
        <span>{remaining.months} months</span>
        <span>{remaining.weeks} weeks</span>
        <span>{remaining.days} days</span>
        <span>{remaining.hours} hours</span>
        <span>{remaining.minutes} minutes</span>
        <span>{remaining.seconds} seconds</span>
        {:else}
        <h2>The time has come!</h2>
        {/if}
    </div>
</Countdown>

In the slot space between <Countdown></Countdown> you can write your template however you like. Use the keys as per the example above.

I recommend not to change the "remaining" object name. If you need to you can do it like so:

let:remaining={yourvariable}

Configuration Options

Name Default Required Description
from none Yes Effect duration in milliseconds
dateFormat YYYY-MM-DD H:m:s No See https://day.js.org/docs/en/parse/string-format
zone none No Use canonical timezones from https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

The Cons โŒ

  • No callback, I suppose the done key is enough. Will update upon request.
  • No milliseconds counting. Will update upon request.
  • Tests - It's pretty straight forward but feel free to contribute.
  • No Demo Page - Will do.

Contribution ๐Ÿ–‡๏ธ

Feel free to fork. If you find a bug or got something great to add make a pull request!

Authors โœ’๏ธ

  • ** John Rallis ** - * Initial Work * - rallisf1

You can also look at the list of all the contributors who have participated in this project.

License ๐Ÿ“„

This project is free to use, edit & distribute under the MIT License.

Expressions of Gratitude ๐ŸŽ

  • Tell others about this project ๐Ÿ“ข
  • Buy me a beer ๐Ÿบ or coffee โ˜• | โ‚ฟ Crypto |๐Ÿ’ฐ Cash
  • Publicly thanks ๐Ÿค“

โŒจ๏ธ with โค๏ธ by rallisf1 ๐Ÿ˜Š

svelte-countdown's People

Contributors

rallisf1 avatar alestry-perez avatar hmaesta avatar treboryx avatar

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.