Public Sans
About Public Sans
- Source
- Google Fonts ↗
- Classification
- sans-serif
- Weights
- Variable (100-900)
- Features
- Variable, 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 →Public Sans is a strong, neutral sans-serif typeface created by the United States Web Design System (USWDS) for use across federal government websites. Forked from Libre Franklin and refined for clarity and accessibility, Public Sans prioritizes readability in digital interfaces and official communications.
History and Design
Developed by USWDS as part of the U.S. government's design system initiative, Public Sans was released in 2019 to provide a free, open-source typeface for public-sector digital services. The design strips away personality in favor of maximum neutrality, ensuring content speaks for itself. Its letterforms feature open apertures, consistent stroke widths, and generous spacing for accessible reading.
Why Public Sans is Popular
Public Sans has gained traction beyond government use as a dependable workhorse font for any project requiring a no-nonsense, trustworthy feel. Its deliberate neutrality makes it a strong stand-in for premium corporate typefaces. Accessibility was a core design goal, with attention to character disambiguation and screen rendering at small sizes.
Technical Features
- Variable font: Continuous weight axis from Thin (100) to Black (900)
- Complete italic family: All weights include true italics
- Accessibility-first: Designed for WCAG compliance and clear legibility
- OpenType features: Tabular figures, fractions, and ordinals
Best Use Cases
Public Sans excels in:
- Government websites: Designed specifically for public-sector use
- Healthcare portals: Clear, accessible communication
- Corporate intranets: Neutral tone for enterprise applications
- Form-heavy interfaces: Legible at small sizes in dense layouts
Usage Tips
For body text, use weight 400 at 16px minimum for accessibility. Use 700 for headings and 300 for secondary content. Public Sans pairs well with a serif like Merriweather for editorial layouts or with a monospace like Source Code Pro for technical documentation.
Is Public Sans on Google Fonts?
Yes, Public Sans is available for free on Google Fonts. Get Public Sans on Google Fonts ↗
Alternative For (3)
Public Sans is a free alternative to the following premium fonts:
Government-grade neutrality with accessibility-first design principles
Government-grade neutrality and accessibility-first design
Government-grade neutrality with accessibility-first design principles
Compare Public Sans
See how Public Sans compares to other fonts side by side.
Variable Font Axes
Public Sans is a variable font with 1 axis you can fine-tune.
| Axis | Min | Default | Max |
|---|---|---|---|
| wght | 100 | 400 | 900 |
Font Pairings
Fonts that pair well with Public Sans based on contrast and complementary design characteristics.
Performance
Key metrics for evaluating Public Sans in production.
Font Metrics
Fallback CSS Overrides
Apply these overrides to Arial to minimize layout shift when loading Public Sans.
@font-face {
font-family: 'Public Sans Fallback';
src: local('Arial');
ascent-override: 95%;
descent-override: 22.5%;
line-gap-override: 0%;
size-adjust: 99.7%;
} How to Use Public Sans
Copy these code snippets to quickly add Public Sans to your project.
CSS code for Public Sans
@import url('https://fonts.googleapis.com/css2?family=Public+Sans:wght@100..900&display=swap'); HTML code for Public Sans
<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=Public+Sans:wght@100..900&display=swap" rel="stylesheet"> Tailwind code for Public Sans
// tailwind.config.js
module.exports = {
theme: {
extend: {
fontFamily: {
'public-sans': ['"Public Sans"', 'sans-serif'],
},
},
},
}
// Usage in HTML:
// <p class="font-public-sans">Your text here</p> Next.js code for Public Sans
// Using next/font (Next.js 13+)
import { Public_Sans } from 'next/font/google';
const public_sans = Public_Sans({
subsets: ['latin'],
weight: ['100', '200', '300', '400', '500', '600', '700', '800', '900'],
});
export default function Component() {
return (
<p className={public_sans.className}>
Your text here
</p>
);
}
// Or using inline styles with Google Fonts link:
// <p style={{ fontFamily: '"Public Sans"' }}>Your text</p> Expo and React Native code for Public Sans
// Install: npx expo install @expo-google-fonts/public-sans expo-font
import { useFonts, Public_Sans_400Regular } from '@expo-google-fonts/public-sans';
export default function App() {
const [fontsLoaded] = useFonts({
Public_Sans_400Regular,
});
if (!fontsLoaded) return null;
return (
<Text style={{ fontFamily: 'Public_Sans_400Regular' }}>
Your text here
</Text>
);
}