Enhanced button component with customizable gradient border animation
An enhanced version of the Rainbow Button with improved gradient border animations and additional customization options.
Prop | Type | Required | Default | Description |
---|---|---|---|---|
onPress | () => void | Yes | - | Function called when pressed |
colors | string[] | No | ['#1DB954', '#00ff4e', '#333'] | Gradient colors array |
duration | number | No | ANIMATION_DURATION.D30 | Animation duration |
bgColor | string | No | theme.background | Background color |
height | number | No | BUTTON_HEIGHT.md | Button height |
borderRadius | number | No | BORDER_RADIUS.md | Border radius |
m | number | No | - | Margin override |
style | ViewStyle | No | - | Container style |
buttonStyle | ViewStyle | No | - | Inner button style |
Enhanced gradient border animation
Improved performance over RainbowButton
More customization options
Smoother transitions
Better theme integration
Optimized render cycles
The enhanced gradient animation uses:
Reanimated 2’s native driver
Optimized color interpolation
Improved gradient positioning
Smoother rotation transitions
Color Selection:
Use complementary colors for gradients
Maintain proper contrast with content
Consider theme compatibility
Animation Timing:
Keep duration between 2-4 seconds
Use smooth easing functions
Consider reduced motion preferences
Layout:
Maintain consistent spacing with m
prop
Use standard height values
Consider button hierarchy in UI
Uses native thread for animations
Optimized gradient calculations
Minimal JS bridge communication
Efficient rerender prevention