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

seeka

v0.0.1

Published

Low level scroll / overflow API.

Downloads

2

Readme

#Seeka-JS A scrollbar alternative for HTML applications

I bless those who seek a scroll - Inspectah Deck

Overview

Browser scrollbars are hideous and can break layouts when initiated dynamically. There are proven techniques to work around these issues, which can be mixed and matched for the desired effect.

  • Using overflow:hidden, layouts can be locked down. Overflow is hidden outside of the content area.

  • Nested elements can be manipulated relative to their overflow container using DOM positioning. This approach does not work with raw text content, so it is best to wrap all content in a wrapper element.

  • Via the scrollTop and scrollLeft element attributes, the content area of an element, including can be manipulated. The DOM box model provides access to the the relevant measurements. JQuery can be used to provide animated (smooth) scrolling via attributes.

  • DOM elements can be bound to event handlers in order to turn them into replacements for scroll bar controls.

Various libraries / plugins employ these techniques to provided systematic approaches to specific use cases. Most rely on the DOM positioning approach, combined with a generated wrapper and control elements. These approaches tend to require tailoring the content around the design expectations of the library, and customization is limited to that provided by API. Interoperability between solutions is not dubious.

Rather than pick a specific approach, Seeka attempts to provide a general purpose toolkit for convenient initialization and control of the critical positioning operations and the generation of content wrappers.

By extension, common operations, such as pagination and replacement UI controls, will hopefully be simplified and more accessible to developers who want convenience and/or control beyond that provided by other APIs.

Project Status

Currently, the project is in alpha. Features and relevant documentation will be added incrementally. The initial roadmap:

  • Implement pixel scrolling using the scroll(Top|Left) approach.
  • Basic pagination
    • Each page is the size of the content viewport.
    • Pagination information is provided by the library.
    • Scrolling operations can be invoked in either page or pixel mode
  • UI controls
    • Scrollwheel
    • Mouse drag
    • Arrow keys
    • Touch gestures
  • Behavior normalization
    • Detect the type of content and positioning requirements.
    • Inject a wrapper if necessary, or modify stylings
    • Create an event cycle / design pattern by which content changes can be tied to trigger normalization.
  • Animation integration (fade, slide, etc)
  • Add DOM positioning as an alternative operating mode.
    • Implement automatic detection of operating mode
    • Normalize behavior.
  • Complex pagination
    • Pages are wrapped in DOM elements.
    • Automatic detection of viewport overflow and rewrapping of pages.
  • Create customized/dynamic scrolling behavior, using content elements as references. i.e. next(".scrollTarget")