Releases: rcaferati/react-native-awesome-button
v3.1.0
🎉 React Native Awesome Button 3.1.0
v3.1.0 is focused on size animation parity, auto-width behavior, and stronger validation coverage across the button system.
This release makes size changes feel more intentional and predictable while keeping the package aligned with the existing 3D press, progress, and theme behaviors.
✨ Highlights
- 📏 Added size animation parity work across width and height transitions
- 🔤 Improved auto-width label behavior for short/long text swaps
- 🎬 Added explicit sizing demos in the example app
- 🧪 Expanded test coverage around size behavior, interactions, and text transitions
- 🧩 Continued tightening of the button state/animation pipeline
🚀 What’s New
📐 Animated size behavior
This release adds a dedicated size-behavior layer to better coordinate:
- fixed width changes
- auto-width growth
- auto-width shrink timing
- height transitions
- text transition choreography during width changes
That means buttons now handle size updates more consistently when labels change, especially in auto-width flows.
🔁 Better auto-width transition flow
For string labels, v3.1.0 improves the grow/shrink choreography:
- grow-first behavior when the next label needs more width
- shrink-last behavior when the next label needs less width
- instant opt-out support with
animateSize={false} - coordinated text + width animation when
textTransitionis enabled
🧪 Validation & Coverage
This release expands automated coverage with stronger tests for:
- size behavior
- interactions
- text transitions
- auto-width scenarios
- snapshot updates for the new rendering paths
📱 Demo App Updates
The example app now includes clearer sizing coverage, including:
- auto width string change
- animated with text transition
- animated without text transition
- instant opt-out
- themed fixed size change
📦 Package
- Package:
@rcaferati/react-native-awesome-button - Version:
3.1.0
🙌 Notes
This release continues the push toward tighter cross-platform behavior and more predictable animation semantics without sacrificing the package’s visual identity.
If you are already using React Native Awesome Button, v3.1.0 is the release to pick up if your app depends on label changes, responsive sizing, or theme-driven size transitions.
v3.0.2
v3.0.2
This patch release hardens the progress button flow and fixes a race condition that could silently drop onPress(next) after a valid press.
Fixed
- Fixed a progress-button race where parent rerenders during the deferred press window could prevent
onPress(next)from being called - Fixed the stuck loading state caused by that dropped press callback
- Added rollback handling when a deferred progress press becomes invalid mid-flight, such as when the button becomes disabled before dispatch
- Preserved the recent gesture protections for blocked loading touches and fast retaps on non-progress buttons
Internal
- Stabilized deferred press and press-out callbacks across rerenders
- Kept debounce behavior intact while preventing accepted presses from being canceled by prop identity changes
- Expanded regression coverage for:
- parent rerenders during the deferred progress window
- mid-flight invalidation of progress presses
v3.0.0
🎉 v3.0.0
Big release for React Native Awesome Button! 🚀
- 📦 New package name:
@rcaferati/react-native-awesome-button - ⚛️ Modernized for
react >= 18.2.0 - 📱 Updated for
react-native >= 0.76.0 - 🎨 Smooth themed variant transitions
- 🔤 New
textTransitionlabel animation ↔️ width="auto"support- ♿ Better accessibility defaults
- 🧪 Stronger tests, typings, docs, and demo
🧭 Install
npm install @rcaferati/react-native-awesome-button💥 Migration
If you were using the old package:
npm uninstall react-native-really-awesome-button
npm install @rcaferati/react-native-awesome-buttonUpdate imports to:
import AwesomeButton, {
ThemedButton,
getTheme,
} from '@rcaferati/react-native-awesome-button';Thanks to everyone who helped shape this release.