Primary Action Button
Standard action button with various size and theme presets.
Component Features and Props
How to Use Primary Action Button Component
Installation Guide for Primary Action Button
Props
| Property | Type | Default | Description |
|---|---|---|---|
| label | string | - | Button label text |
| onPress | () => void | - | Function to call on press |
| theme | 'glass' | 'brutal' | 'gradient' | 'dark' | 'minimal' | minimal | Visual theme |
| size | 'sm' | 'md' | 'lg' | md | Button size preset |
| accentColor | string | #6366f1 | Accent color |
| style | ViewStyle | - | Custom container styles |
Install
TERMINAL
$ npx expo install react-native-reanimated expo-blur expo-linear-gradient react-native-svgComponent Code
Component.tsx
1import React, { useEffect } from 'react';
2import { StyleSheet, Text, Pressable, View, ViewStyle, TextStyle } from 'react-native';
3import Animated, {
4 useAnimatedStyle,
5 useSharedValue,
6 withSpring,
7 Easing,
8} from 'react-native-reanimated';
9import { BlurView } from 'expo-blur';
10import { LinearGradient } from 'expo-linear-gradient';
11import Svg, { Rect, Defs, LinearGradient as SvgGradient, Stop } from 'react-native-svg';
12
13type ButtonTheme = 'glass' | 'brutal' | 'gradient' | 'dark' | 'minimal';
14type ButtonSize = 'sm' | 'md' | 'lg';
15
16interface Props {
17 label: string;
18 onPress?: () => void;
19 theme?: ButtonTheme;
20 size?: ButtonSize;Usage
Usage.tsx
import React from 'react';
import { StyleSheet, View, ScrollView, Text, SafeAreaView } from 'react-native';
import PrimaryActionButton from './components/PrimaryActionButton';
export default function App() {
return (
<SafeAreaView style={styles.container}>
<ScrollView contentContainerStyle={styles.scroll}>
<Text style={styles.title}>Themes Buttons</Text>
{/* 1. GLASS - High Tech / SaaS */}
<Text style={styles.sectionLabel}>Glass Theme</Text>
<PrimaryActionButton
label="Join Waitlist"
theme="glass"
accentColor="#00f2fe"
/>
{/* 2. BRUTAL - Trendy / Gen-Z Apps */}
<Text style={styles.sectionLabel}>Neo-Brutalism Theme</Text>100%
Interactive Preview running on Expo Web.
Gestures and animations are simulated.
100%
