Releases: RamboWasReal/react-native-gleam
Releases · RamboWasReal/react-native-gleam
v1.0.5
Fixed
- iOS: resync visual state on ancestor
display: 'none'removal via KVO observer onself.hidden - Android: resync visual state on ancestor visibility change via
onVisibilityChangedoverride
Context
Fabric maps ancestor display: 'none' to UIView.hidden=YES (iOS) / View.setVisibility(INVISIBLE) (Android). These bypass existing didMoveToWindow / onAttachedToWindow hooks, leaving GleamView stuck in the wrong visual state when the ancestor becomes visible again.
Full Changelog: v1.0.4...v1.0.5
v1.0.4
Fixed
- iOS: resync visual state after
display: 'none'and window changes — Fabric mapsdisplay: 'none'toUIView.hidden=YESwithout triggeringlayoutSubviews, so the v1.0.3 fix was insufficient (#4) - iOS: let loading transitions complete even when the view is hidden or has no window, preventing stuck shimmer state after security lock overlays or app background/foreground cycles
- iOS: add
didMoveToWindowhandler to resync state on window re-attachment, mirroring Android's existingonAttachedToWindowpath
v1.0.3
v1.0.2
Improved
- Claude Code /gleam skill: scans entire codebase for all shimmer/skeleton/loading patterns (moti, reanimated, SkeletonPlaceholder, ActivityIndicator, etc.) before refactoring
v1.0.1
Fixed
- Android: clamp blendColor RGBA channels to 0-255
- Android: clear animator listeners before cancel on detach/cleanup
- Android: snapshot SharedClock views list before frame iteration
- iOS: null check after calloc in shared clock buffer allocation
- iOS: guard against NaN/Infinity in speed, delay, transitionDuration
Added
- JSDoc with @default tags on all NativeProps and GleamLineProps
- Claude Code plugin with /gleam setup command
v1.0.0
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[1.0.0] - 2026-03-22
First stable release.
Added
GleamViewcomponent — native shimmer/skeleton loading for React Native (Fabric)GleamView.Linecompound component for multi-line skeleton layouts- Three animation directions:
LeftToRight,RightToLeft,TopToBottom - Three transition styles:
Fade,Shrink,Collapse intensityprop for subtle shimmer effects (0–1)delayprop for staggered skeleton patternsonTransitionEndcallback withfinishedflag (supports interruption detection)- Shared clock on both platforms — all shimmer instances with the same speed stay in sync
- iOS:
CAGradientLayer+CADisplayLinkdriven animation - Android:
Choreographer+LinearGradientshader viadispatchDraw
Notes
- Fabric-only (New Architecture) — no Paper/old architecture support
- Requires React 19+ and React Native 0.78+
- The shimmer overlay supports uniform
borderRadiusonly — per-corner radii are not applied to the shimmer - When
GleamView.Linechildren are present, the parent renders as a plainView. UseonTransitionEndon individual lines, not the parent.