The developer portfolio
Sora for headings · IBM Plex Sans for body · IBM Plex Mono for code — all three set live below.
Details make the difference
Good type pairing is quiet craft: a display face with character, a body face that gets out of the way, and a monospace that keeps code honest. Set them together and a page finds its rhythm — headings announce, paragraphs settle, and the details stay precise.
function pair(display, body, mono) {
return { display, body, mono }; // three roles, one system
}Why these three
A developer portfolio wants to feel modern and technical without turning into a terminal. Sora's geometric caps make project names and section headers feel intentional and current, the kind of display face that signals design literacy. IBM Plex Sans handles the case studies and about copy with a neutral, engineered warmth. IBM Plex Mono ties the whole thing together for inline snippets and metadata — same superfamily as the body, so shared proportions and matching x-height keep code and prose visually related rather than pasted-in.
Copy the CSS
:root {
--font-display: 'Sora', 'Helvetica Neue', Helvetica, Arial, sans-serif;
--font-body: 'IBM Plex Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
--font-mono: 'IBM Plex Mono', 'Courier New', Courier, monospace;
}
h1, h2, h3 {
font-family: var(--font-display);
font-weight: 700;
}
body {
font-family: var(--font-body);
font-weight: 400;
}
code, pre, kbd {
font-family: var(--font-mono);
font-weight: 400;
}Read more
More about each face: Sora · IBM Plex Sans · IBM Plex Mono
Choosing type for this? Fonts for portfolios →