ByJackson McHenry,
a Vulture critic covering theater, film, and TV
Photo-Illustration: Vulture. Photos: A24; HBO; Warner Bros.
If you watch enough movies, then you’ll know the Chrises, Jake Gyllenhaal, Oscar Isaac, and Timothée Chalamet. Their checks have cleared and probably will keep clearing, but this is Hollywood, where there’s always high demand for fresh blood. We’re getting a rebranded James Bond; Marvel is shifting gears from phase four into phase five. Someone’s gotta fill all these key franchise roles — and maybe even fit in an awards-bait drama or two.
So who is in the running to be America’s Next Top Matinee Idol? Here’s a taxonomy of the biggest breakout hunks 35 and under who haven’t (yet) been the lead of a major superhero film (if they’ve had a supporting role, well, they’re still on the rise). Some are aiming to be critical darlings (three are up for Oscars this year), some are trying to book 007, some can even sing — and, yes, all have incredible bone structure.
Likeliest staying power, especially given that the Irish actor has signed up for 20 years of filming Richard Linklater’s Merrily We Roll Along adaptation and the lead in Ridley Scott’s long-gestating Gladiator 2.
Kelvin Harrison Jr.
Age: 28
He’s got upcoming film roles as a famed 18th-century violinist-composer (Chevalier) and Basquiat, and he’ll play MLK in the next Genius series.
Austin Butler
Age: 31
2023 Oscar nominee, Golden Globe winner
His all-in, Oscar-nommed Elvis role may keep winning gold. Regardless, he’s following it up by playing a WWII pilot in the blockbuster miniseries Masters of the Air (from Tom Hanks, Steven Spielberg, and Cary Joji Fukunaga), then baddie Feyd-Rautha in the next Dune. Will he steal the movie from Chalamet, and will he keep doing that voice?
Barry Keoghan
Age: 30
2023 Oscar nominee, Golden Globe nominee, Marvel Universe, DC Universe
Despite having played a lesser-known Eternals mind reader and the (barely seen) Joker to RPatz’s Batman, he still feels nascent, especially propelled by his uncharacteristically tender turn in The Banshees of Inisherin. Look out for him alongside Butler in Masters of the Air and opposite Jacob Elordi and Rosamund Pike inEmerald Fennell’s upcoming film Saltburn.
Harris Dickinson
Age: 26
Loves a grim story, from Beach Rats to Triangle of Sadness to Where the Crawdads Sing, and next up are The Iron Claw, about a wrestling dynasty, and Scrapper, a Sundance tearjerker about a father and daughter.
Diego Calva
Age: 30
Golden Globe nominee
He’s better known in the Mexican film and TV industry, but after Narcos: Mexico and a starring role in the splashy, divisive Babylon, he may break out further in the U.S.
Heartthrobs
Nicholas Galitzine
Age: 28
He has wooed Camila Cabello in Cinderella, played a lovestruck soldier in Netflix’s popular-but-ideologically-confused Purple Hearts, and booked the coveted prince role in the adaptation of TikTok-popular gay romance Red, White & Royal Blue. Plus he’ll be a Harry Styles surrogate in an Anne Hathaway rom-com and Julianne Moore’s son in a period drama.
Glen Powell
Age: 34
He was in Top Gun: Maverick and Devotion, but he’s a love-story guy (Set It Up), and he’ll be back at it in a new rom-com opposite “It” girl Sydney Sweeney.
Jacob Elordi
Age: 25
The Euphoria (and yes, The Kissing Booth movies) bad boy will be the latest actor to swivel his hips in Sofia Coppola’s Elvis film focusing on Priscilla, while exploring some more sexy-yet-dramatic work since the 2022 thriller Deep Water. He’ll star in a movie about obsession (his niche!) by Emerald Fennell and get to actually be Australian in an adaptation of The Narrow Road to the Deep North.
Daryl McCormack
Age: 30
Whether in Good Luck to You, Leo Grande or Bad Sisters, the Irish softy delivers emotional sensitivity. He’ll take a darker turn in a BBC/Showtime drama as a detective across from a possibly murderous Ruth Wilson.
That smolder has carried The Bear to a second season and the star to a role as Zac Efron’s brother in The Iron Claw.
Next-Gen Genre Stars
Harry Lawtey
Age: 26
A breakout on HBO’s banking drama Industry, he will pivot to superhero work via a role in the mysterious Joaquin Phoenix–Lady Gaga Joker 2 musical.
Manny Jacinto
Age: 35
Since breaking out in TV comedy on The Good Place, he has done a classic mix of rom-com (I Want You Back), drama (Nine Perfect Strangers), and action work (Top Gun: Maverick), but nothing quite as memorable as Jason Mendoza (since, seemingly, most of his Top Gun arc was cut). Next up: the Star Wars prequel series The Acolyte.
He’s the new centerpiece of the MCU, as his character, Kang the Conquerer (introduced in Loki), steps up to be the primary antagonist in Ant-Man and the Wasp: Quantumania; simultaneously, he’ll join the Rocky franchise in Michael B. Jordan’s Creed III and be very ripped in Magazine Dreams, which debuted at Sundance.
Joseph Quinn
Age: 29
He’s riding his Stranger Things virality as guitar hero Eddie Munson to a plum role opposite Lupita Nyong’o in a Quiet Place spinoff.
Will Poulter
Age: 30
Marvel Universe
He’s been a recurring face in film and TV and has suddenly gotten swole for his new Marvel role as the Guardians of the Galaxy Vol. 3 antagonist Adam Warlock.
Post–Sex Education, he’s set to be reincarnated in the latest iteration of Doctor Who and will be one of the many names in both Greta Gerwig’s Barbie bonanza and in Masters of the Air.
Double (or More) Threats
Corey Hawkins
Age: 34
Tony nominee
He’s got The Color Purple musical film coming up but also received raves for straight drama onstage in Topdog/Underdog.
Jonathan Bailey
Age: 34
You’ve seen him charm on Bridgerton, but he’ll sing as the dashing prince Fiyero in the Wicked films, putting his Olivier Award–winning West End stage training to use.
Jonah Hauer-King
Age: 27
He hasn’t done much high-profile work but will have to hold his own alongside Halle Bailey’s pipes in The Little Mermaid as her Ariel’s Prince Eric.
Jeremy Pope
Age: 30
Tony nominee, Golden Globe nominee, Emmy nominee
He’s got a buzzy drama (The Inspection)and a Broadway role as Basquiat in The Collaboration that’s been filmed for further buzz. He’ll likely get to dance in a Sammy Davis Jr. biopic from Janet Mock afterward.
Mike Faist
Age: 31
He broke out as Riff in 2021’s West Side Story, and next he’s in a Luca Guadagnino tennis romance with Zendaya. Pretty much anything could come after that.
Josh Andrés Rivera
Age: 27
Made his film debut as Chino in West Side Story; now he’s going to franchise-land via the Hunger Games prequel The Ballad of Songbirds and Snakes with his WSS co-star and girlfriend, Rachel Zegler.
Potential James Bonds
Aaron Taylor-Johnson
Age: 32
Golden Globe winner
Reports claim the vet of Kick-Ass, Tenet, and Bullet Train may just beat out the newcomers (he’s the most established guy on this list). Recently, he showed up in Vanity Fair, abs bared, and said the rumors were “flattering,” which isn’t a “no”!
Regé-Jean Page
Age: 35
Those same reports indicate that the Bridgerton breakout, who left the series to pursue opportunities just like this — stopping off in Netflix’s big dumb The Gray Man along the way — may still be in the running. And if not, there’s the franchise probability of a Dungeons & Dragons film, in which he plays Xenk the Paladin. Xenk!
Lucien Laviscount
Age: 30
There are rumors that Emily in Paris’s petit ami anglais may be a contender. He’d be the first Bond to have once appeared on Celebrity Big Brother (maybe not a point in his favor).
Jack Lowden
Age: 32
The rising Scotsman’s got critical plaudits from Benediction, buzz from your parents’ favorite AppleTV+ spy show Slow Horses and their future favorite BBC heist series The Gold, and he’s dating everyone’s favorite Irishwoman, Saoirse Ronan. He claims he hasn’t auditioned for Bond, but given the secrecy of all this, who knows?
Damson Idris
Age: 31
He’s ending an acclaimed TV run on Snowfall; he’s in Donald Glover’s cryptic upcoming Amazon show, Swarm; he’s a suave and British internet boyfriend (and Lori Harvey’s); and his name might half-satisfy those who long for an Idris Elba Bond.
By submitting your email, you agree to our
Terms and Privacy Notice
and to receive email correspondence from us. This site is protected by reCAPTCHA and the Google
Privacy Policy and
Terms of Service apply.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
Already a subscriber?
Already a subscriber?
`;
// integrate Sub(x) scripts and elements
if (hostname !== 'subs.nymag.com') { // do not integrate on this subdomain
document.head.appendChild(trackingScript);
document.body.insertAdjacentHTML('beforeend', subXAnimationElements);
}
There was an error processing the request. Please try again later."}).catch(e=>console.error("Error verifying email: ",e)))(r.querySelector(".content"),o.bannerCTAVerification)})):(l.remove(),s.remove()),o.dismissable||n.remove(),o.useAlertIcon||a.remove(),r.classList.add("show"),n.addEventListener("click",()=>{u(),r.classList.remove("show")})}else r.remove()}});
}, {"1":1,"6":6,"12":12,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(3),auth=require(12),signInButton=dom.find(".user-signin"),signOutButton=dom.find(".user-signout"),globalNav=dom.find('[class^="global-nav"]'),body=dom.find("body"),dropdownItems=dom.findAll(".dropdown-wrap"),gtm=require(1),appendLandingPageParams=require(136),pageUri=require(124).getPageUri(),subscriptionPromoLinks=dom.findAll(".persist-params"),searchString=window.location.search||"";function closeDropdowns(e){let n=globalNav.querySelectorAll(".dropdown.open");dropdownItems.forEach(function(t){let o=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||o.classList.remove("open")})}function gtmSendReport(e,n,t){let o={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(o.eventLabel=n.href),gtm.reportNow(o)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const o=t.split("?"),i=new URLSearchParams(o[1]);for(let e of n.entries())i.set(e[0],e[1]);t=`${o[0]}?${i.toString()}`,e.href=t}else e.href=`${t}?${n.toString()}`}}function init(e){const n=e.querySelectorAll(".to-landing-page");window.addEventListener("auth:init",()=>{signInButton.addEventListener("click",function(e){e.preventDefault(),auth.showEmbeddedLoginFlow("top navigation")}),signOutButton.addEventListener("click",function(e){e.preventDefault(),gtmSendReport("Sign Out",e.target,"user-info-link"),auth.logout()}),auth.isAuthenticated()&&e.classList.add("signed-in"),auth.isSubscriber()&&e.classList.add("subscribed"),e.querySelectorAll(".user-link").forEach(e=>{e.classList.add("active")}),subscriptionPromoLinks.forEach(e=>{updateElementTargetUrlsIfQueryStrings(e)}),appendLandingPageParams(n)})}dropdownItems.forEach(function(e){e.addEventListener("click",function(){e.querySelector(".dropdown").classList.toggle("open")})}),body.addEventListener("click",closeDropdowns),document.addEventListener("keydown",closeDropdowns),globalNav.addEventListener("click",function(e){let n=e.target;n.classList.contains("global-nav-track")&>mSendReport(n.text,n,"global-nav-link")}),module.exports=init;
}, {"1":1,"3":3,"12":12,"124":124,"136":136}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(408),Fingerprint2=require(407),DS=require(406),Eventify=require(246);function registerGlobals(){window.DS=DS,window.Eventify=Eventify,window.Fingerprint2=Fingerprint2,DS.value("Eventify",Eventify),DS.value("Fingerprint2",Fingerprint2),DS.value("$document",window.document),DS.value("$window",window)}function mountDollarSliceComponents(){DS.service("components",["$document","$module",function(e,n){var o=_pickBy(n.definitions,e=>e.providerStrategy===n.providers.controller),r=Object.keys(o);function t(e){return o=>{try{n.get(e,o)}catch(e){logMountError(o,e)}}}_each(r,n=>{var o=e.querySelectorAll('[data-uri*="/_components/'+n+'/"]'),r=e.querySelectorAll('[data-uri$="/_components/'+n+'"]');_each(o,t(n)),_each(r,t(n))}),this.components=r}]),DS.get("components")}function logMountError(e,n){const o=e.outerHTML.slice(0,e.outerHTML.indexOf(e.innerHTML));console.error("Error attaching controller to "+o,n)}registerGlobals(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{mountDollarSliceComponents()}):mountDollarSliceComponents();
}, {"221":221,"246":246,"406":406,"407":407,"408":408}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(118),_forEach=require(107),_isString=require(268),_intersectionWith=require(409),_isEqual=require(274),_each=require(408),_debounce=require(182),_sortBy=require(205),page=require(124),visit=require(114);DS.service("adService",["Eventify","$cid","$document","$window",function(e,t,a,i){var o,n,s,r,d,c,u,l,g={},p=this,h=[],f=visit.getQueryParamsObject(["utm_campaign"]),m=document.querySelector('script[data-type="ad-a9"]'),b=[],w=!1,v=[],y=document.querySelector('script[data-name="ad-doubleverify"]');document.querySelector('script[data-name="concert-ads"]')||(i.NYM={},i.NYM.analytics={},i.NYM.analytics.adStartTime=i.performance.now(),i.googletag=i.googletag||{},i.googletag.cmd=i.googletag.cmd||[],u=i.googletag,(m||y)&&(i.googletag.cmd=i.googletag.cmd||[],i.googletag.cmd.push(function(){i.googletag.pubads().disableInitialLoad()})),m&&(l=i.setInterval(function(){void 0!==window.apstag&&void 0!==window.apstag.timeout&&(i.clearInterval(l),window.apstag.cleared=!0,l=null)},10),setTimeout(function(){l&&(i.clearInterval(l),i.googletag.pubads().refresh(),window.apstag||console.log("MESSAGE: Timeout for A9 load exceeded, aborting"))},500)),y&&(b.push(new Promise(function(e){w?e():v.push(e)})),c=i.setTimeout(T,2500)),o=function(e){var t,a,o=e.data,n=[];return o.loaded?e:(o.loaded=!0,t=null,(t=o.sizes?u.defineSlot(o.name,o.sizes,o.id).addService(u.pubads()):u.defineOutOfPageSlot(o.name,o.id).addService(u.pubads())).setTargeting("adid",o.id),f.hasOwnProperty("utm_campaign")&&t.setTargeting("utmcamp",f.utm_campaign),a=p.getAdCount(o.label),t.setTargeting("label",o.label+"_"+o.site+"-"+a),u.display(o.id),u.pubads().addEventListener("slotOnload",function(){i.NYM.analytics.firstAdLoadTime||(i.NYM.analytics.firstAdLoadTime=i.performance.now(),i.NYM.analytics.firstAdLoadLabel=e.data.label)}),n=_(o),Promise.all(b).then(function(){n?window.apstag&&window.apstag.cleared?window.apstag.fetchBids({slots:[n],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([t],{changeCorrelator:!1})})}):y&&u.pubads().refresh([t],{changeCorrelator:!1}):u.pubads().refresh([t],{changeCorrelator:!1})}),e.slot=t,e)},n=function(e){var a,i,o,n=t(),s=e.getAttribute("data-name"),r=e.getAttribute("data-sizes"),d=e.getAttribute("data-label"),c=e.getAttribute("data-site");n=e.id,r&&r.length?(r=r.split(","),a=[],_map(r,function(e){e=e.split("x"),i=parseInt(e[0]),o=parseInt(e[1]),a.push([i,o])})):(e.classList.add("oop"),a=!1),this.data={id:n,name:s,sizes:a,loaded:!1,label:d,site:c},g[n]=this},r=function(e){u.cmd.push(function(){var t=o(e);g[e.data.id]=t})},s=function(e){var t=[];e.slot?(t=_(e))&&window.apstag&&window.apstag.cleared&&window.apstag.fetchBids({slots:[t],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([e.slot],{changeCorrelator:!1})})}):e&&r(e)},u.cmd.push(function(){var e,t,o,n=page.getMeta("article:tag"),s=page.getMeta("author"),r=i.location.href,d=(e=a.head.querySelector(".head-gtm"),t=a.body.querySelector(".gtm"),e&&"top"===e.getAttribute("data-gtm")?"gtmtop":t&&"bottom"===t.getAttribute("data-gtm")?"gtmbottom":"");o=[],_forEach([n,s,d],function(e){_forEach(e.split(","),function(e){(e=e.trim().toLowerCase().replace(/\s/g,"-").replace(/\'|\’/g,"")).length&&o.push(e)})}),u.pubads().setTargeting("kw",o),u.pubads().setTargeting("entry_group",o),r=r.slice(r.lastIndexOf("/")+1),u.pubads().setTargeting("pn",r),u.companionAds().setRefreshUnfilledSlots(!0),u.pubads().enableAsyncRendering(),u.enableServices()}),this.load=r,this.create=function(e){return new n(e)},this.refresh=function(e){var t;_isString(e)?(t=this.getById(e),s(t)):s(e)},this.remove=function(e){var t=e.data.id;a.getElementById(t).innerHTML=""},this.getAdCount=function(e){var t,a=0,i=Object.keys(g);return _each(i,function(i){(t=g[i]).data.loaded&&t.data.label===e&&a++}),a},this.getById=function(e){return g[e]},d=_debounce(function(){var e={TopLeaderboard:1,RightColTopMPU:2,outOfPage:99,"homepageTakeover/TopLeaderboard":1},t=_sortBy(h,function(t){return e[t.data.label]||10});_forEach(t,function(e){return e.data.sizes?r(e):i.setTimeout(function(){r(e)},2e3)}),y&&window.PQ.cmd.push(()=>{try{window.PQ.loadSignals(["ids","bsc","vlp"],T)}catch(e){T(),console.error(`There has been an error loading Double Verify signals: ${e}`)}}),h=[]},10),this.addToPageLoadQueue=function(e){h.push(e),d()});function _(e){var t,a=e.sizes;return a=_intersectionWith(a,[[970,250],[970,90],[728,90],[300,600],[300,250],[320,100],[320,50]],_isEqual),e.sizes&&e.sizes.length&&(t={slotID:e.id,sizes:a,slotName:e.label}),t}function T(){i.clearTimeout(c),w=!0,_forEach(v,function(e){e()})}}]);
}, {"107":107,"114":114,"118":118,"124":124,"182":182,"205":205,"268":268,"274":274,"408":408,"409":409}];
window.modules["cid.legacy"] = [function(require,module,exports){"use strict";DS.service("$cid",function(){var r=Math.floor(100*Math.random());return function(){return"cid-"+ ++r}});
}, {}];
window.modules["client.legacy"] = [function(require,module,exports){"use strict";require("cid.legacy"),require("ads.legacy"),require("facebook.legacy"),require("aaa-module-mounting.legacy");
}, {"cid.legacy":"cid.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.legacy"}];
window.modules["facebook.legacy"] = [function(require,module,exports){"use strict";DS.service("facebook",[function(){this.fb=function(i){window.FB&&window.FB[i].apply(this,Array.prototype.slice.call(arguments,1))}}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o typeof key === 'string' && key.match(/\.legacy$/)).forEach(key => window.require(key));
}
function tryToMount(fn, el, name) {
try {
fn(el); // init the controller
} catch (e) {
const elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));
console.error(`Error initializing controller for "${name}" on "${elementTag}"`, e);
}
}
/**
* mount client.js component controllers
*/
function mountComponentModules() {
Object.keys(window.modules).filter(key => typeof key === 'string' && key.match(/\.client$/)).forEach(key => {
let controllerFn = window.require(key);
if (typeof controllerFn === 'function') {
const name = key.replace('.client', ''),
instancesSelector = `[data-uri*="_components/${name}/"]`,
defaultSelector = `[data-uri$="_components${name}"]`,
instances = document.querySelectorAll(instancesSelector),
defaults = document.querySelectorAll(defaultSelector);
for (let el of instances) {
tryToMount(controllerFn, el, name);
}
for (let el of defaults) {
tryToMount(controllerFn, el, name);
}
}
});
}
// Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies,
// services, or components that could require it
// note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js
window.process = window.process || {};
window.process.env = window.process.env || {};
if (!window.process.env.NODE_ENV) {
window.process.env.NODE_ENV = '';
}
// note: legacy controllers that require legacy services (e.g. dollar-slice) must
// wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first
mountLegacyServices();
mountComponentModules();
// ]]