I wrote some notes below (https://news.ycombinator.com/item?id=19740475) but TL;DR is that this lets us support a lot of features that that the legacy version never could. If you’re looking for an embedded form, Elements work great (https://stripe.com/docs/stripe-js/elements/quickstart) — you can of course pair Elements with a lightbox/modal library to get a similar experience to the legacy version of Checkout.
A modal with Elements could support all the features that old modal Checkout supports. It would not be able to do all the things that new non-modal Checkout will be able to do in the near future.
The Stripe 3DS and SCA page says a modal in combination with Elements is fully supported:
Pre-built modal: The Payment Intents API integrates tightly with Stripe.js and Elements to simplify the authentication process. If your Stripe integration uses handleCardPayment or handleCardAction, Stripe.js automatically handles the authentication process—displaying a modal dialog where the customer can provide the requisite information.
This makes it look like we can build a modal version via Elements which fully supports SCA and 3DS through another modal. All on one page.
Also, the Paymentintent docs say we have to set the viewport to mobile on our page so that the UI of Elements can handle 3DS, this makes it also look like it works on our page through a model without redirects. Otherwise Stripe would set the viewport.
Does Elements fully support 3DS and SCA all on our page through modals or not?