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
barbajs avatar

barbajs/barba

0
View on GitHub↗
12,940 stars·494 forks·TypeScript·MIT·11 viewsbarba.js.org↗

Barba

Barba is a JavaScript page transition library that intercepts browser navigation to swap page content and animate transitions without a full page refresh. It functions as an AJAX page loader and client-side navigation manager, coordinating the lifecycle of transitions through hooks and custom logic during view changes.

The library distinguishes itself as a frontend animation orchestrator that triggers specific visual effects and scripts based on the source and destination of a website page. It employs a rules-based system to resolve which specific animation or transition to execute by matching the current and target page namespaces.

The system covers broader capabilities for dynamic content loading, history state synchronization, and page-specific logic execution to initialize or clean up components during a transition. It also provides a plugin-based mechanism for extending core navigation behavior through the integration of third-party modules.

Features

  • Page Transition Controls - Intercepts browser navigation to create seamless animations and content replacements between website pages.
  • Hook and Event Orchestration - Orchestrates a sequence of predefined events to coordinate logic between exiting and entering views.
  • Transition Lifecycle Hooks - Triggers specific logic at defined stages of the navigation process to synchronize leaving and entering views.
  • Animation Orchestrators - Manages the timing and execution of visual effects during page changes using entry and exit lifecycle hooks.
  • DOM View Management - Provides the ability to track and replace specific HTML containers while maintaining a persistent site shell.
  • AJAX Content Swapping - Implements the core mechanism for fetching and replacing page content without full browser refreshes.
  • AJAX Page Loaders - Functions as an AJAX page loader to fetch new content and update the DOM dynamically.
  • Custom Client-Side Routing - Enables specialized routing behavior that triggers unique scripts and animations based on page source and destination.
  • Dynamic Content Loading - Swaps page sections and updates the URL dynamically to maintain a fluid user experience.
  • Navigation History Providers - Synchronizes the browser URL and history state with dynamically loaded content to support native navigation.
  • Page-Specific Script Execution - Runs custom scripts attached to specific views to initialize or clean up components during page transitions.
  • Rule-Based Transition Resolution - Implements a rules-based system to determine which specific animation to execute based on the current and target page namespaces.
  • Client-Side Navigation Management - Coordinates the lifecycle of page transitions through hooks and custom logic during view changes.
  • Extensibility - Provides an extensibility mechanism to integrate third-party plugins that add new behaviors to the navigation lifecycle.
  • Single Page Applications - Implements an application-like navigation workflow in traditional websites to eliminate jarring white flashes.
  • Hook-Based Plugin Systems - Allows extending the navigation lifecycle by registering custom logic into specific lifecycle events via plugins.
  • Transition Resolution Rules - Employs a rules-based system to resolve which specific transition animation to execute based on page namespaces.
  • Animations and Motion - Creates fluid transitions between website pages.

Star history

Star history chart for barbajs/barbaStar history chart for barbajs/barba

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. 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

Frequently asked questions

What does barbajs/barba do?

Barba is a JavaScript page transition library that intercepts browser navigation to swap page content and animate transitions without a full page refresh. It functions as an AJAX page loader and client-side navigation manager, coordinating the lifecycle of transitions through hooks and custom logic during view changes.

What are the main features of barbajs/barba?

The main features of barbajs/barba are: Page Transition Controls, Hook and Event Orchestration, Transition Lifecycle Hooks, Animation Orchestrators, DOM View Management, AJAX Content Swapping, AJAX Page Loaders, Custom Client-Side Routing.

What are some open-source alternatives to barbajs/barba?

Open-source alternatives to barbajs/barba include: swup/swup — Swup is a page transition library and AJAX page loader designed to create seamless, animated transitions between pages… turbolinks/turbolinks — Turbolinks is a JavaScript library that accelerates HTML page transitions by replacing the page body via network… vuejs/vue-router — Vue.js Client-Side Router is a routing library that maps browser URLs to Vue.js components to enable the creation of… miguel-perez/smoothstate.js — smoothState.js is an AJAX navigation manager and jQuery page transition library designed to create seamless… orchidsoftware/platform — This project is a rapid application development framework for building back-office interfaces and dashboards within… inertiajs/inertia — Inertia is a server-driven frontend framework designed to create monolithic single page applications. It acts as a…

Open-source alternatives to Barba

Similar open-source projects, ranked by how many features they share with Barba.
  • swup/swupswup avatar

    swup/swup

    5,191View on GitHub↗

    Swup is a page transition library and AJAX page loader designed to create seamless, animated transitions between pages on server-rendered websites. It functions as a DOM content orchestrator and browser history manager, intercepting navigation to replace page content dynamically and simulate a single-page application experience. The project differentiates itself through a hook-based lifecycle system and a plugin architecture that allows for the injection of custom logic and animation effects. It supports advanced visual methods including DOM content morphing, parallel-DOM rendering for overla

    TypeScriptanimationjavascriptpage-transitions
    View on GitHub↗5,191
  • turbolinks/turbolinksturbolinks avatar

    turbolinks/turbolinks

    12,591View on GitHub↗

    Turbolinks is a JavaScript library that accelerates HTML page transitions by replacing the page body via network requests instead of performing full browser refreshes. It functions as a client-side navigation manager that intercepts link clicks and controls the page visit lifecycle to simulate a single-page application experience. The library synchronizes the browser URL and history stack with partial page updates and utilizes a caching mechanism to store visited page states. This allow for instant previews and restoration of state when navigating backward or forward. It also includes a tool

    TypeScript
    View on GitHub↗12,591
  • vuejs/vue-routervuejs avatar

    vuejs/vue-router

    18,898View on GitHub↗

    Vue.js Client-Side Router is a routing library that maps browser URLs to Vue.js components to enable the creation of single-page applications. It functions as a navigation engine that manages browser history and URL state to allow page transitions without full browser reloads. The system utilizes a nested route manager to render hierarchical views that match complex URL structures. It includes navigation guard middleware to intercept, validate, or redirect route transitions before components are rendered. A client-side history handler synchronizes application state with the browser URL using

    JavaScript
    View on GitHub↗18,898
  • miguel-perez/smoothstate.jsmiguel-perez avatar

    miguel-perez/smoothState.js

    4,377View on GitHub↗

    smoothState.js is an AJAX navigation manager and jQuery page transition library designed to create seamless transitions between pages by loading remote content asynchronously. It functions as a browser history state manager that attaches custom serializable data to history entries and handles URL redirects without requiring full browser refreshes. The library includes a client-side page cache that stores previously visited pages in memory for instant reloading. It further reduces perceived load times through a content prefetching system that initiates network requests when a user hovers over

    CSS
    View on GitHub↗4,377
  • See all 30 alternatives to Barba→