npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

virchual

v1.0.0-alpha.12

Published

Super-fast, lightweight slider and carousel, written in TypeScript without any dependencies.

Downloads

39

Readme

✨ Highlights

  • Lightweight. Only <2.8kB (gzipped).
  • Virtual slides to keep DOM elements at a minimum (Lighthouse ❤️ it)
  • Instagram like pagination bullets.
  • 0 dependencies. Everything included.
  • Written in TypeScript.

Table of Contents

About

This image swiper/slider/carousel library, written in TypeScript, aims to provide a high-performance slider best used when having many instances on a page (e.g. list of cards where each card has a swiper gallery - like Airbnb or hometogo).

Virchual uses virtual slides to only render visible slides. No unnecessary DOM elements.

Installation

CDN

Just add a link to the css file in your <head>:

<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/virchual@next/dist/virchual.css" />

Then, before your closing <body> tag add:

<script type="text/javascript" src="//cdn.jsdelivr.net/npm/virchual@next/dist/index.bundle.js"></script>

Basic

dist/virchual.js dist/virchual.umd.js dist/virchual.modern.js

Complete

dist/virchual.bundle.js dist/virchual.bundle.umd.js dist/virchual.bundle.modern.js

Modular

dist/virchual.modular.js dist/virchual.modular.umd.js dist/virchual.modular.modern.js

NPM & Yarn

$ npm install virchual

or

$ yarn install virchual

Usage

Use this space to show useful examples of how a project can be used. Additional screenshots, code examples and demos work well in this space. You may also link to more resources.

Example HTML:

<div class="virchual">
  <div class="virchual__frame"></div>
</div>
import 'virchual/dist/index.css';

import { Virchual } from 'virchual';

const slider = new Virchual(document.querySelector('.virchual'), {
  slides: () => {
    return [
      '<img src="image.jpg"/>', // slide 1
      '<img src="image2.jpg"/>', // slide 2
    ];
  },
});

slider.mount();

Options

| Name | Type | Description | Required | Default | | -------------------- | -------- | -------------------------------------------- | -------- | -------- | | slides | Array | Function | Slides | Yes | | speed | Number | Slide transition speed | No | 200 | | easing | String | Slide transition easing | No | ease-out | | transitionDuration | Number | staying duration of per slide/swipe item | No | 200ms | | window | Number | How many slide clones on left and right side | No | 1 |

API

Virchual

Virchual(element: HTMLElement, settings: VirchualSettings): Virchual

Virchual constructor. Creates a new Virchual slider instance.


Virchual#mount


Virchual.mount();

Mount slider and bind DOM events.

Virchual#on


Virchual.on(events: string, handler: () => {}, elm: HTMLElement);

Add event listener for given event(s).

instance.on('mount', () => {
  console.log('Slider mounted.');
});

// multiple events can be defined by seperating with a whitespace

instance.on('mount destroy', () => {
  console.log('Slider mounted/destroy.');
});

Virchual#off


Virchual.off(events: string);

Remove event listener for given event(s).

instance.off('mount');

// multiple events can be defined by seperating with a whitespace

instance.off('mount destroy');

Virchual#prev


Virchual.prev();

Move to previous slide. Rewind in case first slide is currently shown.

Virchual#next


Virchual.next();

Move to next slide. Rewind in case last slide is currently shown.

Virchual#destroy


Virchual.destroy();

Unmount slider, remove DOM events for this instance.

Browser Support

Virchual was tested in the following browsers:

  • Safari
  • Mobile Safari
  • Opera
  • Edge
  • Firefox
  • Internet Explorer 11

Contributing

Getting Started

  1. Clone the repo
git clone github.com/berndartmueller/virchual.git
  1. Install NPM packages
npm install
  1. Run
npm run dev

Running Tests

npm run test

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Related

tbd

Contact

Bernd Artmüller - @berndartmueller - [email protected]

Donate

If you want to support me, you can buy me a coffee to keep me coding -> https://www.buymeacoffee.com/berndartmueller