Lato
About Lato
- Source
- Google Fonts ↗
- Classification
- sans-serif
- Weights
- 100, 300, 400, 700, 900
- Features
- Italics
Free to use, modify, and distribute. Can be used commercially without attribution.
What's allowed?
- ✓ Client work
- ✓ SaaS / Web apps
- ✓ YouTube / Video
- ✓ Sell products
- ✓ Print materials
Note: Derivative fonts must use the same license.
Full license guide →Lato is a humanist sans-serif drawn by Łukasz Dziedzic and published by his Warsaw foundry, tyPoland, in December 2010. The name is Polish for "summer". Google Fonts serves five weights with matching italics, no variable version and two subsets — latin and latin-ext — though the OFL binaries carry considerably more than Google delivers. It has been one of the most-used families in the catalogue for most of its life, so the useful question is not whether it is good, but what you actually get and what is quietly missing.
What it is, and where it came from
Three first-party accounts ship with the family. FONTLOG.txt in google/fonts/ofl/lato/ is tyPoland's own, carrying a revision log that runs from v1.010 on 2010-12-13 through v2.015 on 2016-12-01; the binaries hold a description of their own in name ID 10; and Google's DESCRIPTION.en_us.html condenses the FONTLOG prose into something short enough to quote: Lato "is a sans serif typeface family started in the summer of 2010 by Warsaw-based designer Łukasz Dziedzic. Originally conceived as part of a corporate identity for a large client, the family became available for a public release when they decided to go in different stylistic direction."
That is the whole origin story from a primary source. The client is never named — not by Google, not on latofonts.com, not in the binaries — so any page that names one is inventing. Dziedzic is the designer of record: METADATA.pb in google/fonts, the metadata API and Google's description all name him alone. The binaries are both more generous and more specific. Name ID 9 in every v2.015 file reads "Lukasz Dziedzic with Adam Twardoch and Botio Nikoltchev", and name ID 10 says what that amounted to — "in 2013-2014, the family was greatly extended (with the help of Adam Twardoch and Botio Nikoltchev) to cover 3000+ glyphs over nine weights with italics". The nine weights and the three-thousand-glyph character set discussed below are that extension, not the 2010 release. The publisher is tyPoland, named in the files themselves, whose copyright string reads "Copyright (c) 2011-2015 by tyPoland Lukasz Dziedzic (http://www.typoland.com/) with Reserved Font Name 'Lato'". latofonts.com says the family was published in December 2010 "with support from Google" — support, not a commission, and neither Google's description, the FONTLOG nor latofonts.com says what it consisted of.
The stated goal explains the shapes: a face that "seems 'transparent' when used in body text but also displays original traits in larger size use", built on "classical proportions, particularly in the uppercase", with "semi-rounded details" that "feel warm, while the underlying structure provides stability and seriousness".
Google serves from the /s/lato/v25/ path on fonts.gstatic.com — the open-catalogue path, not a licensed dynamic face — but the build it serves is version 1.104, not the 2.015 in the repository: the served files' name tables read "Version 1.104; Western+Polish opensource". The design has been stable for a decade; Google's delivery lags it.
Design characteristics
Measured from Lato-Regular.ttf and Lato-Italic.ttf v2.015 in the google/fonts repository, on a 2000-unit em.
Proportions. OS/2 gives an x-height of 1013 units (0.507 em) against a cap height of 1433 (0.717 em) — a ratio of 0.707. Ascenders overshoot the capitals: the l reaches 1473, forty units above cap height; the g bottoms out at −365. The hhea and typo ascender/descender pair is 1974 / −426 with a line gap of zero, so the default line box is exactly 1.2 em, matching the lineHeight: 1.2 in Google's metadata. Lato needs no line-height rescue before it looks deliberate.
Letterforms. The roman a is double-storey with a small counter spanning y 109–456 — only 34% of the 1013-unit x-height tall, which is why it reads compact rather than open. The g is a proper binocular double-storey with an ear: three contours, upper bowl counter y 495–902, closed lower loop y −235–84. PANOSE is [2,15,5,2,2,2,4,3,2,3], Latin Text / normal sans. Stems are monolinear — the lowercase l is a plain four-point rectangle (x 147–325) and so is the capital I (x 183–377), differing by forty units of height and sixteen of width and nothing else, so I and l are effectively indistinguishable. The digit 1 keeps a full base bar and stays clear of both; the zero is neither slashed nor dotted.
The italics are drawn, but only partly. post.italicAngle is −7.0, and the drawing agrees with the declaration: the italic l's left edge runs from (64,0) to (243,1473), an offset of 179 units over 1473 of height, or 6.9°. Real redrawing is there too: the italic a is single-storey, counter running y 134–897 against the same 1013-unit x-height — 75% of it, versus 34% in the roman — which no shear produces, and the italic f gains a descender at ymin −249 against 0 in the roman. Point counts also differ on e, g, y, m, A, G, S, 1 and 3. But k, l, n, w, z, E, R, Q, &, 0 and 2 match the roman in contour count and point count, so much of the alphabet is a corrected slant — better than an oblique, short of a full cursive companion.
OpenType. GSUB carries calt, case, dlig, dnom, frac, liga, lnum, numr, onum, ordn, pnum, salt, sinf, ss01–ss04, subs, sups and tnum; GPOS carries kern and mark. That is oldstyle and lining figures, tabular and proportional figures, fractions, superiors and inferiors, plus four stylistic sets whose substitutions no primary source documents — test them rather than trust a description. There is no smcp and no c2sc: Lato has no small caps.
Coverage versus delivery. Lato-Regular.ttf holds 3,023 glyphs and 2,164 mapped codepoints; its cmap includes Cyrillic, polytonic Greek, Vietnamese and IPA, and GSUB and GPOS declare the latn, cyrl and grek scripts. latofonts.com claims "100+ Latin-based languages, 50+ Cyrillic-based languages, and Greek". None of that reaches you through normal Google delivery: css2 returns only /* latin */ and /* latin-ext */, the metadata API lists subsets [menu, latin, latin-ext], and the legacy &subset=cyrillic,greek,vietnamese parameter is silently ignored. Those glyphs are not in the build Google serves at all — it is the 275-glyph v1.104 Western+Polish file. A text=Привет request looks encouraging, but the URL it returns 400s. Needing Cyrillic, Greek or Vietnamese means self-hosting.
Where it works
The "transparent in text, characterful at size" brief describes real behaviour. The compact a counter and moderate x-height ratio keep paragraphs quiet and even, and the 1.2 em default line box means default-styled text — a CMS body field, a PDF export, an email template — already looks considered.
That makes it a strong default for the document-heavy web: university and hospital sites, policy and legal pages, annual reports, HR portals, knowledge bases. It holds the register those need — serious without being cold — in print as readily as on screen. It also works as a whole system for a small team: five weights with italics cover headline, body, caption and emphasis without a second family, tabular figures make data tables behave, and Latin Extended costs 2,988 bytes on top of the 13,980-byte Latin file.
Where it struggles
There is no 500 or 600 on Google Fonts. The served ramp is 100, 300, 400, 700, 900, and with no variable axis there is nothing to interpolate. This trips people up constantly, because the google/fonts repository does contain ExtraLight 200, Medium 500, SemiBold 600 and ExtraBold 800 with their italics — eighteen TTFs, and eighteen style blocks in METADATA.pb. Those files landed on 2016-12-02 and production has never exposed them; family=Lato:wght@200 still returns HTTP 400 as of August 2026. That is a nine-year divergence, not a pending update. The full nine-weight family comes from latofonts.com instead.
No variable font. None exists in any form: no fvar table in the Regular, Italic, Medium or Black binaries, and "axes": [] in the metadata API.
I and l are the same shape — disqualifying on its own for anything showing identifiers, credentials, licence keys or code.
Cyrillic and Greek do not arrive by default, and there are no small caps, so acronym-heavy legal or editorial setting needs faux caps or a second family.
It is everywhere. Not a design flaw but a brand consideration: Lato has been one of the most-used families on Google Fonts for years, so it reads as a safe, familiar choice rather than a distinctive one. If you want a voice nobody else has, ubiquity works against you.
Which premium fonts it substitutes for
- Calibri is the closest match here and the swap people search for most. Both are humanist text faces whose warmth comes from softened detail rather than a calligraphic gesture, and both were built to disappear in running text. The divergence is metric, not stylistic: dropping Lato into a Calibri layout will reflow, and there is no 500 or 600 for an intermediate step.
- Gill Sans meets Lato where Dziedzic aimed — classical proportions in the uppercase — so caps, headings and short display lines substitute convincingly. It comes apart where Gill Sans's lowercase idiosyncrasies are the point: Lato's letterforms are deliberately quieter, which is the design intent and also why it cannot carry a period look.
- Avenir is a harder swap than its score suggests: Avenir is built on a geometric armature, Lato is a humanist text face. Temperature and register transfer; the geometry does not. If Avenir was chosen for its circular
o, Lato reads as a different decision, not a cheaper one. - Myriad Pro and Frutiger are the humanist workhorses, and Lato lands beside both convincingly for body copy and corporate documents. The gap is systemic, not formal: five served weights, no widths, no small caps, no optical sizes. Anything built on a condensed cut or an intermediate weight needs a different plan, not a different weight of Lato.
- Optima is the hardest of these to imitate. Optima's identity is its flared, calligraphic stems; Lato's
lis a literal four-point rectangle with no modulation to imitate that. Lato holds Optima's tone of warm, refined professionalism, but if the flare is why you chose Optima, no free humanist sans replaces it. - Whitney, Museo Sans, Syntax, Johnston, Halyard, Fedra Sans, Magnat, Brown and Humanist 521 sit in the plausible-tonal-substitute band, and two questions decide each: does the layout need a weight Google does not serve, and does it need small caps? If both answers are no, Lato ships.
Pairing Lato
Lato is agreeable with almost anything, which makes a bland page easy to build. Pair on structural contrast instead of mood.
The productive partner is a serif with real stroke modulation, since Lato's is minimal: its o thins from a 183-unit side stroke to a 140-unit top, about a quarter, and its straight stems do not thin at all. Merriweather and Lora carry running text under Lato headings, and the roles reverse cleanly because Lato is genuinely neutral at paragraph size. For sharper display contrast, Playfair Display or Libre Baskerville; for calmer long-form, Source Serif Pro or Literata. Code and data need an outside partner — latofonts.com publishes the sans and nothing else, so there is no monospaced sibling — and JetBrains Mono or Source Code Pro also fix the I/l ambiguity where it hurts most.
Lato pairs with itself, but the missing middle shapes how: jump wide, 300 or 400 for body against 700 or 900 for headings, rather than the 400/500/700 ramp Google cannot serve. Avoid pairing it with another humanist workhorse sans; two faces on the same premise at the same temperature read as indecision, not hierarchy.
Licensing and self-hosting
Lato ships under the SIL Open Font License 1.1. OFL.txt is in both the google/fonts directory and the fonts.google.com bundle, the copyright string names the OFL explicitly, and OS/2 fsType is 0 — no embedding restrictions.
- You may use it commercially, on the web, in apps, in client work and in products you sell; self-host, subset and modify it.
- You must keep derivatives under the OFL and ship the licence with the files.
- You may not sell the font on its own — and, unlike some repo-hosted Google families, you may not call your modified version "Lato". The copyright line carries a Reserved Font Name clause, so a fork needs a new name.
The Google download is eleven items: OFL.txt plus Thin, Light, Regular, Bold and Black with their five italics. For Cyrillic, Greek or Vietnamese, take the full TTF from the repository and subset it yourself.
Frequently asked questions
Is Lato free for commercial use? Yes. OFL 1.1 permits commercial use, embedding, self-hosting, subsetting and modification. You cannot sell the file by itself, derivatives stay under the OFL, and the Reserved Font Name clause means a fork cannot keep the name "Lato".
Is there a variable version of Lato?
No. There is no fvar table in any shipped binary, the metadata API returns "axes": [], and latofonts.com mentions none.
How many weights does Lato have?
Five on Google Fonts — 100, 300, 400, 700, 900 — each with an italic, ten files. The full family from latofonts.com is nine weights plus italics, eighteen fonts; the google/fonts repository holds all eighteen, but production has served only five since those files were added in December 2016.
Why does Lato:wght@500 (or 200, 600, 800) fail?
Google does not serve those weights — the request returns HTTP 400. Self-host them from latofonts.com, or restructure around the 400 → 700 jump.
Does Lato support Cyrillic, Greek or Vietnamese?
The binaries do — the cmap covers Cyrillic, polytonic Greek, Vietnamese and IPA within its 2,164 mapped codepoints. Google Fonts does not deliver them in its ordinary subsets: css2 returns latin and latin-ext only, and the legacy subset= parameter is ignored. Self-host if you need them.
Are Lato's italics real italics or slanted romans?
Both. The angle is −7°, the italic a is a genuinely single-storey construction and the italic f gains a descender — but roughly half the letters sampled match the roman exactly in contour and point count.
Does Lato have small caps?
No — no smcp, no c2sc. The 2.015 files from the repository or latofonts.com do carry oldstyle and lining figures, tabular and proportional figures, fractions, superiors, inferiors and four stylistic sets — but none of that survives Google's delivery, whose latin subset ships a single GSUB feature (liga). Self-host for any of it.
Can I tell Lato's capital I from its lowercase l?
Not reliably: both are plain rectangles on a 2000-unit em, the lowercase taller by forty units (1473 against 1433) and the capital wider by sixteen (194 against 178). The digit 1 is distinct because it has a base bar. For codes, IDs or credentials, use a monospace instead.
Is Lato on Google Fonts?
Yes, Lato is available for free on Google Fonts. Get Lato on Google Fonts ↗
Alternative For (15)
Lato is a free alternative to the following premium fonts:
Warm humanist workhorse widely used for corporate and body text
Mature humanist sans with warm details and proven reliability at scale
Humanist proportions with similar warmth and professional character
Shares the blend of geometric structure with humanist warmth
Warm humanist sans with comparable typographic range and approachability
Compare Lato
See how Lato compares to other fonts side by side.
Font Pairings
Fonts that pair well with Lato based on contrast and complementary design characteristics.
Performance
Key metrics for evaluating Lato in production.
- Score
- 60 /100 Good
- File Size
- 85.9 KB Light
- Weights
- 5 static + Italics
- Languages
- 2 groups CDN delivery
Font Metrics
- x-Height Ratio
- 0.506
- Cap Height Ratio
- 0.717
- Ascender
- 1610
- Descender
- -390
Fallback CSS Overrides
Apply these overrides to Arial to minimize layout shift when loading Lato.
@font-face {
font-family: 'Lato Fallback';
src: local('Arial');
ascent-override: 80.5%;
descent-override: 19.5%;
line-gap-override: 20%;
size-adjust: 97.68%;
} How to Use Lato
Copy these code snippets to quickly add Lato to your project.
CSS code for Lato
@import url('https://fonts.googleapis.com/css2?family=Lato:wght@100;300;400;700;900&display=swap'); HTML code for Lato
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Lato:wght@100;300;400;700;900&display=swap" rel="stylesheet"> Tailwind code for Lato
// tailwind.config.js
module.exports = {
theme: {
extend: {
fontFamily: {
'lato': ['Lato', 'sans-serif'],
},
},
},
}
// Usage in HTML:
// <p class="font-lato">Your text here</p> Next.js code for Lato
// Using next/font (Next.js 13+)
import { Lato } from 'next/font/google';
const lato = Lato({
subsets: ['latin'],
weight: ['100', '300', '400', '700', '900'],
});
export default function Component() {
return (
<p className={lato.className}>
Your text here
</p>
);
}
// Or using inline styles with Google Fonts link:
// <p style={{ fontFamily: "'Lato'" }}>Your text</p> Expo and React Native code for Lato
// Install: npx expo install @expo-google-fonts/lato expo-font
import { useFonts, Lato_400Regular } from '@expo-google-fonts/lato';
export default function App() {
const [fontsLoaded] = useFonts({
Lato_400Regular,
});
if (!fontsLoaded) return null;
return (
<Text style={{ fontFamily: 'Lato_400Regular' }}>
Your text here
</Text>
);
}