Beyond Text
Voice, camera, image, video, and AI chat components for next-generation mobile apps. Every component is designed for native iOS and Android with React Native implementations.
Voice Input iOSAndroid
Tap-to-speak with animated recording feedback. Three states: idle, recording (pulse rings + waveform), and processing.
import Voice from '@react-native-voice/voice'; import Animated from 'react-native-reanimated'; const VoiceInput = ({ onResult }) => { const [recording, setRecording] = useState(false); const scale = useSharedValue(1); const start = async () => { setRecording(true); scale.value = withRepeat(withTiming(1.8, { duration: 800 }), -1, true); await Voice.start('en-US'); }; Voice.onSpeechResults = (e) => { onResult(e.value[0]); setRecording(false); }; return ( <TouchableOpacity onPress={recording ? Voice.stop : start} style={[styles.mic, recording && styles.micActive]}> <MicIcon size={32} color={recording ? '#fff' : '#7a5af8'} /> </TouchableOpacity> ); };
Voice Player iOSAndroid
Playback UI for voice messages. Waveform scrubber with playhead, timestamp, and speed selector.
Camera Capture iOSAndroid
Full-screen viewfinder with mode strip, shutter button, flip camera, and flash controls.
QR Scanner iOSAndroid
Camera overlay with crop frame, corner guides, and animated scanning line.
Photo Picker iOSAndroid
iOS PHPickerViewController / Android Photo Picker as a bottom sheet. Grid of thumbnails with multi-select and badge count.
Image Upload iOSAndroid
Tap-to-select area with idle, uploading, and complete states. Shows progress per file.
Image Preview iOSAndroid
Full-screen lightbox with thumbnail strip, counter, and share/download actions.
Image Cropper iOSAndroid
Crop handles, aspect ratio presets, rotate and flip controls.
Video Player iOSAndroid
Full-screen player with custom controls: seek bar, playback speed, CC, quality selector, and picture-in-picture.
Video Upload & Processing iOSAndroid
Multi-step flow: uploading → transcoding → ready. Each step shows clear status and progress.
Chat Thread iOSAndroid
Full AI chat interface with message thread, system prompt context, and auto-scroll to bottom.
Chat Bubbles
User, AI, code, and attachment bubble variants. Corners indicate message direction.
Typing Indicator & Streaming Text
Three bouncing dots while the AI generates. Replaced by streaming text character-by-character once the response begins.
const StreamingMessage = ({ text, isStreaming }) => { return ( <View style={styles.bubble}> <Text style={styles.text}>{text}</Text> {isStreaming && <BlinkingCursor />} </View> ); }; const BlinkingCursor = () => { const opacity = useSharedValue(1); useEffect(() => { opacity.value = withRepeat( withTiming(0, { duration: 400 }), -1, true ); }, []); return <Animated.View style={[styles.cursor, { opacity }]} />; };
Prompt Input Bar
Multi-line auto-grow input with attach, voice, and send actions. Attachment chips appear above the field.
Suggested Prompts
Scrollable horizontal chips that fill the prompt input on tap. Use for empty-state onboarding and quick actions.
Feedback Row
Thumbs up/down, copy, and regenerate actions shown beneath every AI message. Active states fill with colour.
Model Switcher
Dropdown to change the active AI model mid-conversation. Shows capability badges per model.