26%
Largest package-demand share
Noto Sans Arabic accounts for 26% of downloads across the six observed packages. This is a calculated share of this dataset, not total market adoption.
Arabic Web Observatory
12/12 live source checksA transparent benchmark of popular Arabic web fonts. Compare upstream binary weight, variable-font availability, and rolling Fontsource downloads without confusing package demand with total web adoption.
npm period: Jun 24, 2026–Jul 23, 2026 · refreshed every 24 hours
Researched and maintained by Moayyad Faris, VP of Engineering and software architect.
Quick answer
For a general Arabic product interface, begin by testing Noto Sans Arabic. Use Noto Naskh Arabic when reading comfort is the priority, and reserve Noto Kufi Arabic or Cairo for stronger headings and brand expression. The measured data below helps you estimate delivery complexity; it does not replace visual testing with your actual Arabic copy.
Package downloads
396.3K
Combined rolling npm demand
Calculated · demand proxy
Source: npm Downloads API ↗Smallest upstream set
Noto Naskh Arabic
300 KB across 1 file
Measured · not transfer size
Source: Google Fonts repository ↗Current dataset
| Font | Best suited for | npm / 30 days (proxy) | Upstream binaries | Variable |
|---|---|---|---|---|
| 01Noto Sans Arabic@fontsource/noto-sans-arabic | UI / body | 101,814 | 825 KB(1) | Yes |
| 02IBM Plex Sans Arabic@fontsource/ibm-plex-sans-arabic | UI / editorial | 100,354 | 1652 KB(7) | No |
| 03Cairo@fontsource/cairo | UI / display | 85,829 | 585 KB(1) | Yes |
| 04Tajawal@fontsource/tajawal | UI / display | 76,674 | 409 KB(7) | No |
| 05Noto Naskh Arabic@fontsource/noto-naskh-arabic | Long-form reading | 22,319 | 300 KB(1) | Yes |
| 06Noto Kufi Arabic@fontsource/noto-kufi-arabic | Headings / UI | 9,312 | 424 KB(1) | Yes |
What the data says
26%
Noto Sans Arabic accounts for 26% of downloads across the six observed packages. This is a calculated share of this dataset, not total market adoption.
4
4 selected families use variable binaries upstream. That creates consolidation options, but only a production subset comparison can determine whether variable or static delivery is smaller.
300 KB
Noto Naskh Arabic is the smallest repository set in this snapshot. Treat that as an upstream packaging fact—not a prediction of browser performance.
Decision guide
These recommendations are editorial guidance based on typical roles, not measured performance winners. Shortlist by content type first, then benchmark the exact files and weights your product will ship.
Best general-purpose starting point
Best for a technical product voice
Best for prominent UI and brand moments
Best for a compact modern interface
Best for Arabic reading
Best for structured headings
Selection framework
A font family is only the starting point. The production decision is the combination of script coverage, files, weights, fallback behavior, and visual quality.
Test Arabic letters, diacritics, Arabic and Persian digits, punctuation, Latin text, and any regional characters your users enter.
Start with regular and bold. Add another weight only when the interface has a demonstrated hierarchy that requires it.
Measure the deployed WOFF2 assets after subsetting. Do not use a source TTF total as a Core Web Vitals forecast.
Choose a system fallback with reasonably similar proportions and use font-display intentionally to control the loading transition.
Review dense tables, small labels, low-resolution screens, long paragraphs, bold Arabic, and mixed Arabic–Latin lines.
Copyable example
Install one Fontsource family, import only the weights you use, and define an Arabic-aware fallback stack. This example avoids loading every available file.
npm install @fontsource/noto-sans-arabic
// app/layout.tsx
import "@fontsource/noto-sans-arabic/400.css";
import "@fontsource/noto-sans-arabic/700.css";:root {
--font-arabic:
"Noto Sans Arabic",
Tahoma,
Arial,
sans-serif;
}
[lang="ar"] {
font-family: var(--font-arabic);
}How to read this
npm downloads measure requests for each Fontsource package over the same rolling period. They can indicate developer demand, but they do not measure unique users or total websites.
Repository size is the sum of font binaries currently stored for a family in Google Fonts. It is not the exact browser transfer size: production delivery can use WOFF2 compression, Unicode subsetting, selected weights, and custom text subsets.
A variable family can consolidate multiple styles into one binary, but the best choice still depends on which weights, scripts, and glyphs a product actually ships.
Methodology
Read each family’s public repository directory and total its TTF, OTF, WOFF, and WOFF2 binaries.
Request the official rolling last-month count for the matching Fontsource package.
Cache both feeds for 24 hours. If a provider is unavailable, show the last verified snapshot instead of fabricating a value.
Questions developers ask
There is no universal winner. Noto Sans Arabic is a practical starting point for interfaces, Noto Naskh Arabic suits long-form reading, and Noto Kufi Arabic works well for structured headings. Choose against real copy, target sizes, required weights, and the Latin font used beside it.
Not necessarily. Repository totals describe upstream source binaries, not the WOFF2 files a browser downloads. Real transfer cost depends on format, Unicode subsetting, selected weights, variable-font axes, caching, and whether the font is self-hosted. Measure the exact production files before deciding.
No. npm downloads are a package-demand proxy. Automated builds, repeated installs, mirrors, and one developer using several environments can all generate downloads. The metric is useful for comparing activity among the selected Fontsource packages, but it does not count unique developers or websites.
Self-hosting gives you direct control over caching, privacy, availability, and subsetting. A hosted provider can simplify setup and may benefit from its delivery infrastructure. Whichever route you choose, preload sparingly, use WOFF2, set an intentional fallback stack, and verify font-display behavior.
Use a variable font when one file replaces several styles you genuinely need. It is not automatically smaller than one static weight. Compare the variable subset with the exact static weights required by your design, then test rendering across the browsers and devices your audience uses.
Continue testing
Shortlist two families, render the same Arabic interface in both, then measure the exact WOFF2 files and weights. The next dashboard release will add production subset transfer sizes and historical trends.