Type pairings

Kinetic's skill sets each piece in the type whose voice fits it: Work Sans, its default, or one of fourteen other curated pairings. Each pairing is a display face for titles and a body face for the rest, chosen to look good together at video sizes, all from Google Fonts.

You can let the assistant pick the type, or choose your own. To let it pick, describe the voice you want, or say nothing, and it chooses from this list; name a pairing in your prompt to have that one. To use your own fonts, name them in your prompt. They need to be free to use, from a place like Google Fonts, or installed on the device that plays and renders the video.

Each pairing on a card

Each card sets one pairing on a ground from the default palette, at the sizes a video uses, in proportion.

The fifteen pairings, each on a 16:9 card with a headline, a line of body text and a figure. Type your own headline, or set every card on paper or on indigo.

The pairings

The weights are the ones each face reads best at, at video sizes. A face with a single weight is set at that weight.

Display + bodyIts voiceDisplay weightBody weight
Work Sans, for bothcalm and printed: the default800 to 900500 to 600
Urbanist + Literatamodern and friendly over a bookish serif: education, editorial800400 to 500
Oswald + Loracondensed and loud over a warm serif: news, sport, a poster600 to 700, in capitals400 to 500
Playfair Display + Source Sans 3high-contrast serif over a clean sans: culture, events, luxury700 to 900, at 64 px and up at 1920400 to 600
DM Serif Display + DM Sansrefined and warm: a product, a brand, a quote400, its only weight400 to 500
Space Grotesk + IBM Plex Sanstechnical and exact: software, engineering, data600 to 700400 to 500
Barlow Condensed + Barlownarrow and sturdy, many labels to a frame: dashboards, transit, sport700 to 800400 to 500
Mona Sans, wide + Manropewide and bold over a precise geometric sans: launches, music, events700 to 800, at a width of 112% to 125%400 to 500
Sora + Interclean geometric with a little quirk: tech, digital products600 to 700400
Fraunces + Chivosoft-vintage serif over a sturdy grotesque: artisanal brands, lifestyle, editorial600 to 700400
Abril Fatface + Latoa fat titling serif over a warm sans: magazines, beauty, agencies400, its only weight400
Bebas Neue + Montserratcinematic capitals over a geometric sans: film titles, fitness, posters400, its only weight, in capitals400 to 500
Archivo, wide + Archivoheavy and wide over its own text width: breaking news, sales, announcements800 to 900, at a width of 112% to 125%400, at 100%
Fredoka + Nunitorounded and friendly: children, explainers, playful products600400 to 600
Cormorant Garamond + Proza Libreelegant, high-contrast serif over a humanist sans: fine dining, literature, luxury600 to 700, at 64 px and up at 1920400

Loading a pairing

Both faces load in one link, with display=block, so a render never draws the fallback while the font arrives.

<link href="https://fonts.googleapis.com/css2?family=Urbanist:wght@100..900&family=Literata:wght@200..900&display=block" rel="stylesheet">

A face with a weight axis takes a range, wght@100..900. A face with fixed weights lists the ones the page uses, such as Barlow:wght@400;500, and a face with one weight takes none, such as family=Bebas+Neue. Archivo and Mona Sans also load their width axes, Archivo:wdth,wght@62..125,100..900 and Mona+Sans:wdth,wght@75..125,200..900, and their display lines set the width with font-stretch.

A figure that counts keeps its width with font-variant-numeric: lining-nums tabular-nums. Playfair Display and some other serifs draw old-style figures by default, which dip below the line, and lining-nums sets them on it.

A size measured with textMetrics() names the display face and its weight, such as '700 100px "Oswald"', and readiness loads it before the first frame (textMetrics()).