This guide covers all the premium UI components created for your travel app. Each component is designed with modern design principles including glassmorphism, neumorphism, advanced animations, and premium interactions.
- AdvancedTheme (
src/styles/advancedTheme.ts)- Advanced color palettes with gradients
- Sophisticated shadows with colored variants
- Comprehensive spacing and typography scales
- Animation configurations and component styles
import { PremiumButton } from '../components/advanced';
<PremiumButton
title="Premium Action"
variant="ai"
size="lg"
loading={isLoading}
onPress={handlePress}
/>Variants: primary, secondary, ai, glass, outline, ghost, gradient
import { PremiumCard } from '../components/advanced';
<PremiumCard variant="glass" size="lg" onPress={handlePress}>
<Text>Card content with glassmorphism</Text>
</PremiumCard>Variants: default, gradient, glass, premium, ai, hero, floating
import { LoadingSpinner } from '../components/advanced';
<LoadingSpinner variant="gradient" size="lg" />Variants: spinner, dots, pulse, wave, gradient
import { AnimatedHeader } from '../components/advanced';
<AnimatedHeader
title="Welcome"
subtitle="Your premium experience"
scrollY={scrollY}
height={250}
gradientColors={AdvancedTheme.colors.primary.gradient}
/>import { BottomNavigation } from '../components/advanced';
<BottomNavigation
items={navigationItems}
activeKey={currentRoute}
variant="premium"
/>import { TabNavigator } from '../components/advanced';
<TabNavigator
tabs={tabItems}
variant="premium"
onTabChange={handleTabChange}
/>import { SwipeableCard } from '../components/advanced';
<SwipeableCard
leftAction={{
icon: 'archive',
color: 'white',
backgroundColor: '#ff9500',
onPress: handleArchive,
}}
rightAction={{
icon: 'favorite',
color: 'white',
backgroundColor: '#ff3b30',
onPress: handleFavorite,
}}
>
<YourCardContent />
</SwipeableCard>import { AnimatedInput } from '../components/advanced';
<AnimatedInput
label="Email Address"
icon="email"
variant="premium"
error={emailError}
onChangeText={setEmail}
/>import { PullToRefresh } from '../components/advanced';
<PullToRefresh onRefresh={handleRefresh} refreshing={isRefreshing}>
<YourContent />
</PullToRefresh>import { NeumorphicCard } from '../components/advanced';
<NeumorphicCard variant="raised" size="lg" onPress={handlePress}>
<YourContent />
</NeumorphicCard>Variants: raised, pressed, flat
import { GlassmorphicContainer } from '../components/advanced';
<GlassmorphicContainer
intensity="high"
tint="primary"
borderRadius={20}
>
<YourContent />
</GlassmorphicContainer>Intensities: low, medium, high
Tints: light, dark, primary, secondary
import { ParallaxScrollView } from '../components/advanced';
<ParallaxScrollView
headerHeight={300}
headerComponent={<YourHeader />}
parallaxLayers={[
{ component: <Layer1 />, speed: 0.5 },
{ component: <Layer2 />, speed: 0.8 },
]}
gradientColors={gradientColors}
>
<YourContent />
</ParallaxScrollView>import { FloatingActionButton } from '../components/advanced';
<FloatingActionButton
icon="add"
variant="ai"
size="lg"
badge={3}
position={{ bottom: 24, right: 24 }}
onPress={handlePress}
/>import { FloatingMenu } from '../components/advanced';
<FloatingMenu
items={menuItems}
mainIcon="menu"
variant="primary"
position={{ bottom: 24, right: 24 }}
/>import { ActionSheet } from '../components/advanced';
<ActionSheet
visible={isVisible}
onClose={handleClose}
title="Choose Action"
actions={actionItems}
variant="premium"
/>import React from 'react';
import { View } from 'react-native';
import {
ParallaxScrollView,
PremiumCard,
PremiumButton,
FloatingActionButton,
BottomNavigation,
} from '../components/advanced';
export default function PremiumScreen() {
return (
<View style={{ flex: 1 }}>
<ParallaxScrollView
headerHeight={250}
headerComponent={<YourHeader />}
gradientColors={['#667eea', '#764ba2']}
>
<View style={{ padding: 16 }}>
<PremiumCard variant="hero" size="lg">
<PremiumButton
title="Book Now"
variant="ai"
size="lg"
fullWidth
/>
</PremiumCard>
</View>
</ParallaxScrollView>
<FloatingActionButton
icon="search"
variant="secondary"
position={{ bottom: 100, right: 24 }}
/>
<BottomNavigation
items={navItems}
activeKey="home"
variant="premium"
/>
</View>
);
}<View>
<AnimatedInput
label="Destination"
icon="place"
variant="premium"
value={destination}
onChangeText={setDestination}
/>
<AnimatedInput
label="Travel Dates"
icon="date-range"
variant="glass"
value={dates}
onChangeText={setDates}
/>
<PremiumButton
title="Search Flights"
variant="gradient"
size="lg"
fullWidth
loading={isSearching}
onPress={handleSearch}
/>
</View>- Hero Elements: Use
herovariant cards for main CTAs - Content Cards: Use
premiumorglassfor content sections - Interactive Elements: Use animated buttons with appropriate variants
- Primary: Main brand actions and navigation
- Secondary: Supporting actions and information
- AI: Special AI-powered features and recommendations
- Success/Warning/Danger: Status and feedback indicators
- Entrance: Use staggered animations with appropriate delays
- Interaction: Spring-based animations for natural feel
- Scroll: Parallax and scroll-based animations for engagement
- Micro-interactions: Subtle feedback for all touch interactions
- All components include proper touch targets (minimum 44px)
- Color contrast meets WCAG guidelines
- VoiceOver/TalkBack support included
- Proper semantic labeling for screen readers
// Replace basic HomeScreen with PremiumHomeScreen
import { PremiumHomeScreen } from '../screens/premium';// Use PremiumAuthScreen for login/signup
import { PremiumAuthScreen } from '../screens/premium';// Demo all components
import AdvancedComponentsDemo from '../screens/AdvancedComponentsDemo';-
Animation Performance
- Use
runOnUIfor complex calculations - Minimize re-renders with proper memoization
- Use
useSharedValuefor animation values
- Use
-
Memory Management
- Lazy load heavy components
- Clean up animations on unmount
- Use
InteractionManagerfor delayed operations
-
Rendering Optimization
- Use
FlatListfor large datasets - Implement proper
keyExtractorfunctions - Optimize image loading and caching
- Use
- Integration: Replace existing screens with premium versions
- Customization: Adjust colors and spacing to match brand
- Testing: Test on different devices and screen sizes
- Performance: Profile and optimize animations
- Accessibility: Test with screen readers and accessibility tools
This advanced UI system transforms your Vacafy app into a premium, modern travel application with sophisticated design and smooth interactions that will significantly enhance user engagement and satisfaction.