Hero
by
HeroTransitions

Description: Elegant transition library for iOS & tvOS

View on GitHub ↗

Summary Information

Updated 1 hour ago
Added to GitGenius on June 24th, 2026
Created on November 24th, 2016
Open Issues & Pull Requests: 42 (+0)
Number of forks: 1,734
Total Stargazers: 22,475 (+0)
Total Subscribers: 357 (+0)

Issue Activity (beta)

Open issues: 4
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 740 days
Stale 30+ days: 3
Stale 90+ days: 3

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • confirmed bug (1)
  • good first issue (1)
  • need help (1)
  • reopen if needed (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Repository Insights (GitGenius)

Median issue/PR response: 71.6 days
Mean response time: 234.6 days
90th percentile: 792.0 days
Tracked items: 6

Most active contributors

Related by overlapping contributors

Detailed Description

Hero is an elegant transition library for iOS and tvOS written in Swift that simplifies the creation of custom view controller transitions. The library provides a declarative interface layered on top of UIKit's transition APIs, making it significantly easier for developers to implement sophisticated animations without wrestling with UIKit's complexity. The core concept mirrors Keynote's Magic Move feature, where developers assign heroID properties to views that should animate between view controllers, and Hero automatically transitions matched view pairs from their old state to their new state.

The library's architecture supports both matched and unmatched view animations. Matched views are identified by their heroID properties and animate automatically, while unmatched views can be animated through the heroModifiers property. All animations can be interactively controlled by user gestures, enabling responsive, gesture-driven transitions. At the view controller level, Hero provides template transitions accessible through heroModalAnimationType, heroNavigationAnimationType, and heroTabBarAnimationType properties, which serve as foundations for custom transitions that can be further refined with heroID and heroModifiers combinations.

A distinctive feature of Hero is its dynamic duration calculation based on the Material Design Motion Guide. Rather than requiring developers to manually specify animation durations, Hero automatically determines duration based on changes to distance and size, ensuring consistent and polished animations across the application. The library makes no assumptions about view structure or construction, maintaining compatibility with Auto Layout, programmatic layout, UICollectionView, UITableView, UINavigationController, and UITabBarController without modifying view states beyond hiding them during animations.

Hero supports multiple installation methods including CocoaPods, Carthage, Accio, Swift Package Manager, and manual integration by dragging the Sources folder into projects. The library includes comprehensive documentation through wiki pages, header documentation accessible via alt+click in Xcode, and Dash-compatible API documentation available at HeroTransitions.github.io/Hero. Interactive transition tutorials are available covering advanced topics like gesture-driven animations.

According to GitGenius activity tracking, the repository shows median issue and pull request response latency of 1717.3 hours with a mean of 5631.5 hours across six tracked items. The most active contributors include JoeMatt with six events, lkzhao with three events, and daywalkel2 with two events. The repository maintains active issue labels including good first issue, reopen if needed, and confirmed bug designations. GitGenius classification data indicates the repository overlaps with flutter/flutter through shared contributors, positioning Hero within the broader ecosystem of cross-platform mobile development tools. The repository's topic tags span animation, custom transitions, iOS frameworks, Swift, and material design, reflecting its comprehensive approach to iOS transition animation.

Hero
by
HeroTransitionsHeroTransitions/Hero

Repository Details

Fetching additional details & charts...