PHPackages                             swissup/module-stickyfill - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. swissup/module-stickyfill

ActiveMagento2-module[Utility &amp; Helpers](/categories/utility)

swissup/module-stickyfill
=========================

The most accurate sticky polyfill out in the wild for Magento 2

1.2.2(5y ago)3320.1k↓48.5%31MITJavaScript

Since Aug 15Pushed 5y ago7 watchersCompare

[ Source](https://github.com/swissup/module-stickyfill)[ Packagist](https://packagist.org/packages/swissup/module-stickyfill)[ RSS](/packages/swissup-module-stickyfill/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (1)DependenciesVersions (6)Used By (1)

Stickyfill
==========

[](#stickyfill)

Stickyfill - is a Magento2 module that integrates [Stickyfill library](https://github.com/wilddeer/stickyfill) into Magento.

The module also provides [additional features](#additional-features): it may add `sticky-active` class, when element is actually stuck at the moment.

### Installation

[](#installation)

```
cd
composer require swissup/module-stickyfill
bin/magento module:enable Swissup_Stickyfill
bin/magento setup:upgrade
```

### Usage

[](#usage)

Basic example:

```
require(['stickyfill'], function (Stickyfill) {
    Stickyfill.add(document.querySelectorAll('.sidebar'));
});
```

> See all available methods at official site:

Advanced example (works for dynamically added elements):

```
require([
    'Magento_Ui/js/lib/view/utils/async',
    'stickyfill'
], function ($, Stickyfill) {
    $.async('.sidebar', function (el) {
        Stickyfill.add(el);
    });
});
```

### Additional features

[](#additional-features)

`Swissup_Stickyfill/js/sticky` - is a proxy to stickyfill library that adds `sticky-active` class name when element is stuck. It has the following methods:

MethodDescriptionaddProxy to `Stickyfill.add`removeProxy to `Stickyfill.remove`stickyfillReturns `Stickyfill` objectBasic usage:

```
require([
    'Swissup_Stickyfill/js/sticky'
], function (sticky) {
    sticky.add(document.querySelectorAll('.sidebar'))
});
```

Using with matchMedia library:

```
require([
    'matchMedia',
    'Swissup_Stickyfill/js/sticky'
], function (mediaCheck, sticky) {
    'use strict';

    var sidebar = document.querySelectorAll('.sidebar');

    mediaCheck({
        media: '(min-width: 768px)',
        entry: function () {
            sticky.add(sidebar);
        },
        exit: function () {
            sticky.remove(sidebar);
        }
    });
});
```

###  Health Score

40

—

FairBetter than 86% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity39

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 64.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~179 days

Total

5

Last Release

2165d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/1108bccc259ec1b0fc93f04a182965faf1213460894ee297f1acf3482e3296ac?d=identicon)[vovayatsyuk](/maintainers/vovayatsyuk)

![](https://www.gravatar.com/avatar/33aea824c2948821ee367ad65fab9d355c71d86ce4ff021a40882a410f14ef94?d=identicon)[swissup](/maintainers/swissup)

---

Top Contributors

[![vovayatsyuk](https://avatars.githubusercontent.com/u/306080?v=4)](https://github.com/vovayatsyuk "vovayatsyuk (9 commits)")[![ci-swissuplabs](https://avatars.githubusercontent.com/u/40459861?v=4)](https://github.com/ci-swissuplabs "ci-swissuplabs (2 commits)")[![snowcore](https://avatars.githubusercontent.com/u/933169?v=4)](https://github.com/snowcore "snowcore (2 commits)")[![tangar76](https://avatars.githubusercontent.com/u/13131588?v=4)](https://github.com/tangar76 "tangar76 (1 commits)")

### Embed Badge

![Health badge](/badges/swissup-module-stickyfill/health.svg)

```
[![Health](https://phpackages.com/badges/swissup-module-stickyfill/health.svg)](https://phpackages.com/packages/swissup-module-stickyfill)
```

###  Alternatives

[tempest/highlight

Fast, extensible, server-side code highlighting

696889.5k77](/packages/tempest-highlight)[ichhabrecht/content-defender

Define allowed or denied content element types in your backend layouts

953.2M25](/packages/ichhabrecht-content-defender)[mageplaza/magento-2-seo-extension

Magento 2 SEO extension

141527.1k2](/packages/mageplaza-magento-2-seo-extension)[cmsmaxinc/filament-system-versions

A comprehensive Filament plugin that provides real-time visibility into all package versions within your Filament PHP application. This essential developer tool creates a centralized dashboard where you can instantly view, monitor, and track the current versions of all installed packages in your project and what the latest version is.

1330.9k](/packages/cmsmaxinc-filament-system-versions)[refinery29/league-lazy-event

Provides a LazyListener for use with league/event which allows for lazy fetching of actual listeners.

1423.3k](/packages/refinery29-league-lazy-event)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
