Responsive viewports
Argos lets you capture the same page at multiple breakpoints with a single test. Configure viewports once and get consistent responsive coverage across Playwright, Cypress and Puppeteer.
Prerequisites
This feature works seamlessly with Playwright, Cypress and Puppeteer.
If you use Storybook, see the dedicated guide on Storybook modes.
Viewport Configuration
Pass a viewports array to argosScreenshot() to generate screenshots for each dimension or preset you define. You can mix explicit sizes and device presets.
await argosScreenshot(..., {
viewports: [
"iphone-4",
{ width: 800, height: 600 },
{ preset: "ipad-2", orientation: "landscape" },
],
});Available Presets
pro-display
3008
1962
studio-display
2560
1440
imac-24
2240
1260
macbook-16
1536
960
macbook-15
1440
900
macbook-13
1280
800
macbook-11
1366
768
ipad-12-pro
1024
1366
ipad-11-pro
834
1194
ipad-10
810
1080
ipad-10-pro
834
1112
ipad-9-pro
768
1024
ipad-2
768
1024
ipad-mini
768
1024
iphone-air
420
912
iphone-17
402
874
iphone-17-pro
402
873
iphone-17-pro-max
440
956
iphone-16
393
852
iphone-16e
390
844
iphone-16-plus
430
932
iphone-16-pro
402
874
iphone-16-pro-max
440
956
iphone-15
393
852
iphone-15-plus
430
932
iphone-15-pro
393
852
iphone-15-pro-max
430
932
iphone-14
390
844
iphone-14-plus
428
926
iphone-14-pro
393
852
iphone-14-pro-max
490
932
iphone-13
390
844
iphone-13-mini
360
780
iphone-13-pro
390
844
iphone-13-pro-max
428
926
iphone-12
390
844
iphone-12-mini
360
780
iphone-12-pro
390
844
iphone-12-pro-max
428
926
iphone-11
414
896
iphone-11-pro
375
812
iphone-11-pro-max
414
896
iphone-xr
414
896
iphone-x
375
812
iphone-6+
414
736
iphone-se2
375
667
iphone-8
375
667
iphone-7
375
667
iphone-6
375
667
iphone-5
320
568
iphone-4
320
480
iphone-3
320
480
samsung-s10
360
760
samsung-note9
414
846
Troubleshooting and Best Practices
Many sites compute layout at load time and will not adapt cleanly if the viewport changes later. If you notice issues, you may want to run your test suite entirely for each viewport instead of changing the viewport before taking each screenshot.
For example, in Playwright you can create a separate browser context for each viewport size.
You can also run page.setViewportSize() before navigating to the page to ensure the layout is computed correctly.
Was this helpful?