This tool works with both Expo and React Native CLI projects. Just install and go.
Overlay design mockups directly on your running app to compare against your implementation. Adjust opacity, scale, and position to get pixel-perfect results — no more switching between your design tool and the simulator.

Pick Component Match to pin overlays to tagged elements, or Free Placement to position anywhere on screen.
npm install @buoy-gg/image-overlayThat's it. Image Overlay appears in your FloatingDevTools menu.
To make a component discoverable in Component Mode, add a testID with the image-target: prefix:
<View testID="image-target:LoginCard">
<Text>Welcome back</Text>
<TextInput placeholder="Email" />
<Button title="Sign In" />
</View>
<View testID="image-target:LoginCard">
<Text>Welcome back</Text>
<TextInput placeholder="Email" />
<Button title="Sign In" />
</View>
The text after image-target: becomes the label shown in the target list. Add as many targets as you like throughout your app:
// Header section
<View testID="image-target:Header">
<Logo />
<NavBar />
</View>
// Product card
<View testID="image-target:ProductCard">
<Image source={product.image} />
<Text>{product.name}</Text>
<Text>{product.price}</Text>
</View>
// Bottom tab bar
<View testID="image-target:TabBar">
<TabButton icon="home" />
<TabButton icon="search" />
<TabButton icon="profile" />
</View>
// Header section
<View testID="image-target:Header">
<Logo />
<NavBar />
</View>
// Product card
<View testID="image-target:ProductCard">
<Image source={product.image} />
<Text>{product.name}</Text>
<Text>{product.price}</Text>
</View>
// Bottom tab bar
<View testID="image-target:TabBar">
<TabButton icon="home" />
<TabButton icon="search" />
<TabButton icon="profile" />
</View>
Only image-target: testIDs are scanned — your existing testID props for testing (e.g., testID="login-button") are not affected and won't appear in the target list.
You can load a design mockup in two ways:
Clipboard paste requires Expo. The "Paste from Clipboard" feature uses expo-clipboard to read image data. If you're using bare React Native without Expo, use the URL method instead.
Tap Component Match to scan your app and see all tagged targets. Select one, and the overlay pins to that component — measuring its exact position and size. When the component scrolls or repositions, the overlay follows automatically.
Manually position and resize the overlay anywhere on screen. Drag to move, pinch to scale — useful when you want to compare a full-screen mockup or a section that doesn't map to a single component.