awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
mciastek avatar

mciastek/sal

0
View on GitHub↗
3,693 stars·176 forks·HTML·MIT·15 viewsmciastek.github.io/sal↗

Sal

Sal is a lightweight vanilla JavaScript library designed to trigger CSS animations and execute custom logic as elements enter the browser viewport. It serves as a programmatic wrapper for the Intersection Observer API, providing a viewport trigger system to handle visibility thresholds and scroll-based animations.

The library operates as a dependency-free frontend tool that manages animations through a class-based trigger mechanism and the injection of CSS custom properties. It includes a system for tracking dynamic content, allowing the observer to be updated to include new elements injected into the document at runtime.

The project covers viewport visibility tracking and animation playback control, enabling the definition of visibility thresholds and the execution of events when elements enter or exit the visible screen area.

Features

  • Scroll-Triggered Animations - Activates CSS animations when elements enter the viewport using configurable durations and easing.
  • Visibility Event Hooks - Dispatches custom events when elements enter or exit the viewport to allow external logic integration.
  • Viewport Transition Handlers - Executes CSS transitions and custom logic based on element visibility thresholds in the viewport.
  • DOM Element Re-scanning - Refreshes the monitored target list at runtime to include newly injected DOM elements.
  • Element Visibility Detection - Executes custom JavaScript logic or events when specific page elements enter or exit the visible screen.
  • Class-Based Animation Triggers - Initiates predefined stylesheet transitions by toggling specific CSS classes on elements.
  • Viewport Visibility Observers - Executes custom logic when animated elements enter or exit the visible screen area.
  • Dynamic Element Observation - Detects and tracks new elements added to the DOM asynchronously to apply scroll animations.
  • Intersection Observer Wrappers - Provides a programmatic wrapper for the Intersection Observer API to handle visibility thresholds.
  • Scroll Trigger Libraries - A lightweight vanilla JavaScript library that triggers CSS animations upon viewport entry.
  • CSS Variable Animators - Controls animation timing and easing by dynamically updating CSS custom properties on target elements.
  • Animation Playback Controls - Provides controls to determine if animations play once or repeat upon each viewport entry.
  • Animation State Tracking - Tracks playback status and iteration counts for individual animation instances during scrolling.
  • Dynamic Content Animation Tools - Adds animation observers to new elements injected into the DOM without reloading the page.
  • Visibility Trigger Configurators - Defines the percentage of an element's area or root margin required to trigger animations.
  • Dependency-Free Frontend Libraries - Provides a dependency-free, small-footprint utility for adding scroll-triggered visual effects.
  • Scroll-Based Animations - Performance-focused, lightweight scroll animation library.

Star history

Star history chart for mciastek/salStar history chart for mciastek/sal

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Sal

These projects share indexed features with Sal. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • camwiegert/in-viewcamwiegert avatar

    camwiegert/in-view

    4,611View on GitHub↗

    in-view is a DOM visibility detector and intersection observer wrapper. It serves as a viewport transition handler that triggers callbacks and events when specific screen elements enter or exit the browser window. The library provides a system for configuring visibility criteria using pixel offsets, percentages, or custom test functions. It includes utilities for observing visibility changes, performing manual visibility evaluations, and checking the current status of an element within the visible area. These capabilities support application patterns such as lazy loading, infinite scrolling,

    JavaScriptjavascriptutilityviewport
    View on GitHub↗4,611
  • rombohq/tailwindcss-motionromboHQ avatar

    romboHQ/tailwindcss-motion

    3,295View on GitHub↗

    This project is a Tailwind CSS animation library and accessibility-aware motion framework. It provides a collection of utility classes for adding high-performance keyframe animations and motion effects to web projects, while automatically respecting user-defined reduced motion preferences. The system includes a browser-based animation designer for creating and exporting custom presets as CSS styles or utility classes. It also functions as a scroll-triggered animation framework, enabling entrance and exit transitions that execute as elements enter the viewport, including support for staggered

    TypeScriptanimateanimationcss
    View on GitHub↗3,295
  • civiccc/react-waypointciviccc avatar

    civiccc/react-waypoint

    4,046View on GitHub↗

    react-waypoint is a React component and viewport tracking tool that executes functions based on the visibility of a DOM node within a scrollable area. It monitors when elements enter or leave the browser viewport or a specified scroll container to trigger callbacks. The project enables the implementation of infinite scrolling, asset lazy loading, and scroll-triggered animations. It allows for custom scroll container definitions and viewport boundary configurations using offsets to determine exactly when events fire. The tool provides element position tracking and visibility monitoring for bo

    JavaScript
    View on GitHub↗4,046
  • matthieua/wowmatthieua avatar

    matthieua/WOW

    9,903View on GitHub↗

    WOW is a JavaScript library and frontend animation controller that triggers CSS animations when elements enter the browser viewport during scrolling. It functions as a viewport trigger engine, managing the timing and execution of visual transitions for both static and dynamic page content. The library integrates scroll events with CSS animations and effects from libraries such as Animate.css. It utilizes intersection observers to monitor viewport entry and mutation observers to track and apply animation triggers to new elements added to the DOM after the initial setup.

    JavaScript
    View on GitHub↗9,903
Compare all 30 related projects→

Frequently asked questions

What does mciastek/sal do?

Sal is a lightweight vanilla JavaScript library designed to trigger CSS animations and execute custom logic as elements enter the browser viewport. It serves as a programmatic wrapper for the Intersection Observer API, providing a viewport trigger system to handle visibility thresholds and scroll-based animations.

What are the main features of mciastek/sal?

The main features of mciastek/sal are: Scroll-Triggered Animations, Visibility Event Hooks, Viewport Transition Handlers, DOM Element Re-scanning, Element Visibility Detection, Class-Based Animation Triggers, Viewport Visibility Observers, Dynamic Element Observation.

Which projects share features with mciastek/sal?

Projects with overlapping indexed features include: camwiegert/in-view — in-view is a DOM visibility detector and intersection observer wrapper. It serves as a viewport transition handler… rombohq/tailwindcss-motion — This project is a Tailwind CSS animation library and accessibility-aware motion framework. It provides a collection of… civiccc/react-waypoint — react-waypoint is a React component and viewport tracking tool that executes functions based on the visibility of a… matthieua/wow — WOW is a JavaScript library and frontend animation controller that triggers CSS animations when elements enter the… michalsnik/aos — AOS is a scroll-triggered animation library that controls the execution, timing, and mapping of CSS transitions based… brigade/react-waypoint — react-waypoint is a set of React components and wrappers designed to execute callbacks when specific DOM elements…