Multimodal

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.

iOS Android React Native
Voice

Voice Input iOSAndroid

Tap-to-speak with animated recording feedback. Three states: idle, recording (pulse rings + waveform), and processing.

9:41
Tap to speak
Hold or tap to start
Idle State
9:41
Recording…
0:07
Recording State
React Native
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

Voice Player iOSAndroid

Playback UI for voice messages. Waveform scrubber with playhead, timestamp, and speed selector.

9:41
0:121x0:31
0:000:18
Voice Message · Received + Sent
Camera

Camera Capture iOSAndroid

Full-screen viewfinder with mode strip, shutter button, flip camera, and flash controls.

9:41
PHOTO
VIDEO PHOTO PORTRAIT
Camera Viewfinder
Camera

QR Scanner iOSAndroid

Camera overlay with crop frame, corner guides, and animated scanning line.

9:41
Scan QR Code
Point your camera at a QR code Enter code manually
QR Scanner
Camera

Photo Picker iOSAndroid

iOS PHPickerViewController / Android Photo Picker as a bottom sheet. Grid of thumbnails with multi-select and badge count.

9:41
Recents
Add (2)
0:15
Photo Picker · Multi-select
Images

Image Upload iOSAndroid

Tap-to-select area with idle, uploading, and complete states. Shows progress per file.

9:41
Tap to upload
PNG, JPG, HEIC up to 20MB
design-tokens.png
68% · 1.2 MB of 1.8 MB
hero-image.jpg
Uploaded · 3.4 MB
Upload States
Images

Image Preview iOSAndroid

Full-screen lightbox with thumbnail strip, counter, and share/download actions.

9:41
2 / 6
Lightbox Viewer
Images

Image Cropper iOSAndroid

Crop handles, aspect ratio presets, rotate and flip controls.

9:41
CancelEdit PhotoDone
Free
1:1
4:3
16:9
9:16
Rotate
Flip
Straighten
Image Cropper
Video

Video Player iOSAndroid

Full-screen player with custom controls: seek bar, playback speed, CC, quality selector, and picture-in-picture.

9:41
HD
1:244:52
10
10
Video Player
Video

Video Upload & Processing iOSAndroid

Multi-step flow: uploading → transcoding → ready. Each step shows clear status and progress.

9:41
demo-walkthrough.mp4
128 MB · 2:34 duration
Upload complete
128 MB uploaded
Generating thumbnail
3
Transcoding
Waiting…
Upload → Processing States
AI Chat

Chat Thread iOSAndroid

Full AI chat interface with message thread, system prompt context, and auto-scroll to bottom.

9:41
M
Nest AI
Online
Today
M
Hello! I'm Nest AI. How can I help you today?
Can you explain design tokens?
M
Design tokens are named values for visual properties:
--primary: #7a5af8;
--spacing-4: 16px;
--radius-md: 8px;
M
Message Nest AI…
Full AI Chat Thread
AI Chat

Chat Bubbles

User, AI, code, and attachment bubble variants. Corners indicate message direction.

Can you write this in Swift?
M
Sure! Here's the Swift implementation:
swiftCopy
let color = UIColor(hex: "#7a5af8")
design-mockup.png · 2.4 MB
AI Chat

Typing Indicator & Streaming Text

Three bouncing dots while the AI generates. Replaced by streaming text character-by-character once the response begins.

Typing Indicator
M
Streaming Text
M
Design tokens are named values
React Native · Streaming
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 }]} />;
};
AI Chat

Prompt Input Bar

Multi-line auto-grow input with attach, voice, and send actions. Attachment chips appear above the field.

figma-export.pdf 246 KB
Summarise the attached PDF and highlight key design decisions
M
Nest AI
62 / 4096
AI Chat

Suggested Prompts

Scrollable horizontal chips that fill the prompt input on tap. Use for empty-state onboarding and quick actions.

✨ Summarise this document
🌍 Translate to Spanish
📸 Write a caption
🔍 Find key insights
💻 Explain this code
📧 Draft a reply
AI Chat

Feedback Row

Thumbs up/down, copy, and regenerate actions shown beneath every AI message. Active states fill with colour.

M
Design tokens decouple your design decisions from implementation, enabling consistent theming across platforms.
AI Chat

Model Switcher

Dropdown to change the active AI model mid-conversation. Shows capability badges per model.

Select Model
M
Nest AI
Best overall · Balanced
Nest Fast NEW
Faster responses · Lighter tasks
Nest Vision
Image & video understanding
Copied!