پرش به محتوای اصلی
Next Persian Fonts

v1.5.0 · سازگار با Next.js ۱۳.۲ تا ۱۶

فونت‌های فارسی، آماده برای Next.js

۴۴ خانوادهٔ فونت فارسی رایگان، داخل خود پکیج، بدون گوگل و CDN؛ حتی وقتی اینترنت بین‌الملل قطع است، سایت و build شما کار می‌کند. برای Vite، Astro و HTML ساده هم فایل CSS دارد.

نگران حجم نباشید: با نصب پکیج همهٔ فونت‌ها بارگذاری نمی‌شوند. فقط فونتی که ایمپورت می‌کنید (مثلاً next-persian-fonts/estedad) وارد build و صفحه می‌شود.

خانوادهٔ فونت
۴۴
نسخه (FD، متغیر و…)
۶۱
فونت Google، آفلاین
۲۵

پیش‌نمایش زنده

گالری فونت‌ها

ارقام

۴۴ خانواده

کد برای

هر کارت یک خانواده است؛ نسخه‌ها (ارقام فارسی FD، متغیر، نقطهٔ گرد، ایتالیک) را داخل کارت انتخاب کنید.

  • وزیرمتن Vazirmatn

    Saber Rastikerdar

    متغیر ۱۰۰–۹۰۰Google Fonts · آفلاینv33.003
    ارقام — وزیرمتن
    نقطه‌ها — وزیرمتن

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { vazirmatnVariable } from 'next-persian-fonts/vazirmatn-variable'
    --font-vazirmatn-variableمجوز: OFL-1.1منبع ↗
  • ساحل Sahel

    Saber Rastikerdar

    ۵ وزنارقام فارسی (FD)v3.4.0
    ارقام — ساحل

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { sahelFD } from 'next-persian-fonts/sahel-fd'
  • استعداد Estedad

    Amin Abedi

    متغیر ۱۰۰–۹۰۰Google Fonts · آفلاینv8.5

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { estedad } from 'next-persian-fonts/estedad'
  • صمیم Samim

    Saber Rastikerdar

    ۳ وزنارقام فارسی (FD)v4.0.5
    ارقام — صمیم

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { samimFD } from 'next-persian-fonts/samim-fd'
  • شبنم Shabnam

    Saber Rastikerdar

    ۵ وزنارقام فارسی (FD)v5.0.1
    ارقام — شبنم

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { shabnamFD } from 'next-persian-fonts/shabnam-fd'
  • تنها Tanha

    Saber Rastikerdar

    وزن ۴۰۰ارقام فارسی (FD)v0.10
    ارقام — تنها

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { tanhaFD } from 'next-persian-fonts/tanha-fd'
  • پرستو Parastoo

    Saber Rastikerdar

    ۲ وزنارقام فارسی (FD)Google Fonts · آفلاینv2.0.1
    ارقام — پرستو

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { parastooFD } from 'next-persian-fonts/parastoo-fd'
  • گندم Gandom

    Saber Rastikerdar

    وزن ۴۰۰ارقام فارسی (FD)v0.8
    ارقام — گندم

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { gandomFD } from 'next-persian-fonts/gandom-fd'
  • میخک Mikhak

    Amin Abedi

    متغیر ۱۰۰–۹۰۰ارقام فارسی (FD)v3.4
    ارقام — میخک

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { mikhakFD } from 'next-persian-fonts/mikhak-fd'
  • آراد Arad

    Mohamad Darvishi

    متغیر ۱۰۰–۱۰۰۰ارقام فارسی (FD)v2.5.1
    ارقام — آراد

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { aradFD } from 'next-persian-fonts/arad-fd'
  • وزیر کد Vazir Code

    Saber Rastikerdar

    وزن ۴۰۰ارقام فارسی (FD)v1.1.2
    ارقام — وزیر کد

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { vazirCodeFD } from 'next-persian-fonts/vazir-code-fd'
  • بهداد Behdad

    Mohammad Saleh Souzanchi (Font Store)

    وزن ۴۰۰فقط فارسیv1.0.0

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { behdad } from 'next-persian-fonts/behdad'
  • نیکا Nika

    Mohammad Saleh Souzanchi (Font Store)

    وزن ۴۰۰فقط فارسیv1.0.0

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { nika } from 'next-persian-fonts/nika'
  • سپهر Sepehr

    Saeed Rezaee, Saber Rastikerdar

    ۵ وزنv1.000

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { sepehr } from 'next-persian-fonts/sepehr'
  • سورنا Sorena

    Mohamad Darvishi

    وزن ۴۰۰ارقام فارسی (FD)v1.2.0
    ارقام — سورنا

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { sorenaFD } from 'next-persian-fonts/sorena-fd'
  • گنجنامه Ganjnameh

    Mohammad Saleh Souzanchi

    وزن ۴۰۰v0.0.4

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { ganjnameh } from 'next-persian-fonts/ganjnameh'
  • شهاب Shahab

    Mohammad Saleh Souzanchi

    وزن ۴۰۰v0.0.2

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { shahab } from 'next-persian-fonts/shahab'
  • ناهید Nahid

    Saber Rastikerdar

    وزن ۴۰۰ارقام فارسی (FD)v0.3.0
    ارقام — ناهید

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { nahidFD } from 'next-persian-fonts/nahid-fd'
  • نرمال سنس Normal Sans

    Azad Qalam

    متغیر ۱۰۰–۹۰۰v1.0.0

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { normalSans } from 'next-persian-fonts/normal-sans'
  • آریو Ario

    Mohamad Darvishi

    وزن ۴۰۰ارقام فارسی (FD)v2.0.1
    ارقام — آریو

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { arioFD } from 'next-persian-fonts/ario-fd'
  • رویین Rooyin

    Mohamad Darvishi

    ۲ وزنارقام فارسی (FD)v1.1
    ارقام — رویین

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { rooyinFD } from 'next-persian-fonts/rooyin-fd'
  • نقطه Noqte

    Mehdi Sadeghi

    وزن ۵۰۰v0.1.0-beta4

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { noqte } from 'next-persian-fonts/noqte'
  • لاله‌زار Lalezar

    Borna Izadpanah

    وزن ۴۰۰Google Fonts · آفلاینv1.004

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { lalezar } from 'next-persian-fonts/lalezar'
  • مرکزی Markazi Text

    Borna Izadpanah

    متغیر ۴۰۰–۷۰۰Google Fonts · آفلاینv1.001

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { markaziText } from 'next-persian-fonts/markazi-text'
  • میرزا Mirza

    KB-Studio (Kourosh Beigpour)

    ۴ وزنGoogle Fonts · آفلاینv1.0010g

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { mirza } from 'next-persian-fonts/mirza'
  • ریم کوفی Reem Kufi

    Khaled Hosny (Alif Type)

    متغیر ۴۰۰–۷۰۰Google Fonts · آفلاینv2.000

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { reemKufi } from 'next-persian-fonts/reem-kufi'
  • نوتو نسخ Noto Naskh Arabic

    Google (Noto project)

    متغیر ۴۰۰–۷۰۰Google Fonts · آفلاینv2.021

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { notoNaskhArabic } from 'next-persian-fonts/noto-naskh-arabic'
    --font-noto-naskh-arabicمجوز: OFL-1.1منبع ↗
  • نوتو سنس عربی Noto Sans Arabic

    Google (Noto project)

    متغیر ۱۰۰–۹۰۰Google Fonts · آفلاینv2.012

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { notoSansArabic } from 'next-persian-fonts/noto-sans-arabic'
    --font-noto-sans-arabicمجوز: OFL-1.1منبع ↗
  • نوتو کوفی Noto Kufi Arabic

    Google (Noto project)

    متغیر ۱۰۰–۹۰۰Google Fonts · آفلاینv2.109

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { notoKufiArabic } from 'next-persian-fonts/noto-kufi-arabic'
    --font-noto-kufi-arabicمجوز: OFL-1.1منبع ↗
  • نوتو نستعلیق Noto Nastaliq Urdu

    Google (Noto project)

    متغیر ۴۰۰–۷۰۰Google Fonts · آفلاینv3.009

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { notoNastaliqUrdu } from 'next-persian-fonts/noto-nastaliq-urdu'
    --font-noto-nastaliq-urduمجوز: OFL-1.1منبع ↗
  • آی‌بی‌ام پلکس عربی IBM Plex Sans Arabic

    IBM (Mike Abbink, Bold Monday)

    ۷ وزنGoogle Fonts · آفلاینv1.1.0

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { ibmPlexSansArabic } from 'next-persian-fonts/ibm-plex-sans-arabic'
    --font-ibm-plex-sans-arabicمجوز: OFL-1.1منبع ↗
  • امیری Amiri

    Khaled Hosny (Alif Type)

    ۲ وزنGoogle Fonts · آفلاینv1.002

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { amiri } from 'next-persian-fonts/amiri'
  • هرمتان Harmattan

    SIL Global

    ۴ وزنGoogle Fonts · آفلاینv4.400

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { harmattan } from 'next-persian-fonts/harmattan'
  • شهرزاد Scheherazade New

    SIL Global

    ۴ وزنGoogle Fonts · آفلاینv4.500

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { scheherazadeNew } from 'next-persian-fonts/scheherazade-new'
    --font-scheherazade-newمجوز: OFL-1.1منبع ↗
  • لطیف Lateef

    SIL Global

    ۴ وزنGoogle Fonts · آفلاینv4.400

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { lateef } from 'next-persian-fonts/lateef'
  • کتیبه Katibeh

    KB-Studio (Kourosh Beigpour)

    وزن ۴۰۰Google Fonts · آفلاینv1.0010g

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { katibeh } from 'next-persian-fonts/katibeh'
  • عارف رقعه Aref Ruqaa

    Abdullah Aref, Khaled Hosny

    ۲ وزنGoogle Fonts · آفلاینv1.003

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { arefRuqaa } from 'next-persian-fonts/aref-ruqaa'
  • روبیک Rubik

    Hubert & Fischer, Meir Sadan, Cyreal, Daniel Grumer

    متغیر ۳۰۰–۹۰۰Google Fonts · آفلاینv2.300

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { rubik } from 'next-persian-fonts/rubik'
  • جمهوریا Jomhuria

    KB-Studio (Kourosh Beigpour)

    وزن ۴۰۰Google Fonts · آفلاینv1.0010

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { jomhuria } from 'next-persian-fonts/jomhuria'
  • المسیری El Messiri

    Mohamed Gaber, Jovanny Lemonad

    متغیر ۴۰۰–۷۰۰Google Fonts · آفلاینv2.020

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { elMessiri } from 'next-persian-fonts/el-messiri'
  • چنگا Changa

    Eduardo Tunni

    متغیر ۲۰۰–۸۰۰Google Fonts · آفلاینv3.003

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { changa } from 'next-persian-fonts/changa'
  • بالو بهایجان Baloo Bhaijaan 2

    Ek Type

    متغیر ۴۰۰–۸۰۰Google Fonts · آفلاینv1.701

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { balooBhaijaan2 } from 'next-persian-fonts/baloo-bhaijaan-2'
    --font-baloo-bhaijaan-2مجوز: OFL-1.1منبع ↗
  • قاهره Cairo

    Mohamed Gaber

    متغیر ۲۰۰–۱۰۰۰Google Fonts · آفلاینv3.130

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { cairo } from 'next-persian-fonts/cairo'
  • بدین Badeen Display

    Hani Adnan

    وزن ۴۰۰Google Fonts · آفلاینv1.000

    زندگی صحنهٔ یکتای هنرمندی ماست؛ هر کسی نغمهٔ خود خواند و از صحنه رود.

    import { badeenDisplay } from 'next-persian-fonts/badeen-display'
    --font-badeen-displayمجوز: OFL-1.1منبع ↗

راهنما

نصب و استفاده در ۳ قدم

  1. ۱

    نصب کنید

    با npm، pnpm، yarn یا bun:

    npm install next-persian-fonts
  2. ۲

    ایمپورت کنید

    در فایل app/layout.tsx:

    import { vazirmatnVariable } from 'next-persian-fonts/vazirmatn-variable'
  3. ۳

    استفاده کنید

    کلاس فونت را روی body بگذارید:

    <body className={vazirmatnVariable.className}>
پروژهٔ تازهٔ create-next-app دارید؟ در app/layout.tsx ایمپورت فونت‌های Geist از next/font/google را حذف کنید (به اینترنت جهانی نیاز دارند) و در globals.css خط font-family: Arial, Helvetica, sans-serif; را از قانون body پاک کنید تا جلوی فونت فارسی را نگیرد.

مثال کامل برای کپی

App Router — app/layout.tsx
// app/layout.tsx
import './globals.css'
import { vazirmatnVariable } from 'next-persian-fonts/vazirmatn-variable'

export default function RootLayout({ children }: { children: React.ReactNode }) {
  return (
    <html lang="fa" dir="rtl">
      <body className={vazirmatnVariable.className}>{children}</body>
    </html>
  )
}
Pages Router — pages/_app.tsx
// pages/_app.tsx
import '@/styles/globals.css'
import type { AppProps } from 'next/app'
import { vazirmatnVariable } from 'next-persian-fonts/vazirmatn-variable'

export default function App({ Component, pageProps }: AppProps) {
  return (
    <main className={vazirmatnVariable.className}>
      <Component {...pageProps} />
    </main>
  )
}
Pages Router — next.config.mjs
// next.config.mjs — needed for the Pages Router (and Jest)
export default {
  transpilePackages: ['next-persian-fonts'],
}

فونت دیگری می‌خواهید؟ در گالری بالا روی «کپی» کارت آن فونت بزنید و خط ایمپورت را جایگزین کنید. در Pages Router تنظیم transpilePackages لازم است (Next.js پکیج‌های node_modules را در Pages Router باندل نمی‌کند و بدون آن build خطا می‌دهد)؛ در App Router بی‌ضرر است. برای راست‌چین شدن، در pages/_document.tsx بنویسید <Html lang="fa" dir="rtl">.

استفاده در پروژه‌های غیر Next.js (Vite، Gatsby، Astro، HTML ساده)

برای هر فونت یک فایل CSS آماده هم هست: next-persian-fonts/css/<name>.css. این فایل @font-face را با همان فایل‌های فونت داخل پکیج تعریف می‌کند و یک متغیر CSS (مثل --font-vazirmatn-variable) و یک کلاس (مثل .font-vazirmatn-variable) می‌سازد. به‌جای name همان مسیر ایمپورت فونت را بنویسید؛ در گالری بالا با دکمهٔ «CSS» کد هر فونت را ببینید. اگر از Next.js استفاده می‌کنید، این فایل‌ها هیچ چیزی به سایت شما اضافه نمی‌کنند.

Vite / Gatsby / Astro
// Vite (React، Vue، Svelte، vanilla) · Gatsby · Astro
// main.jsx / gatsby-browser.js / Layout.astro (frontmatter)
import 'next-persian-fonts/css/vazirmatn-variable.css'

<body class="font-vazirmatn-variable">

/* or in your CSS: */
body { font-family: var(--font-vazirmatn-variable); }
Tailwind v4
/* Tailwind v4 — main.css */
@import 'tailwindcss';
@import 'next-persian-fonts/css/vazirmatn-variable.css';

@theme inline {
  --font-sans: var(--font-vazirmatn-variable);
}
index.html
<!-- plain HTML, no bundler -->
<link rel="stylesheet" href="node_modules/next-persian-fonts/css/vazirmatn-variable.css">

<body class="font-vazirmatn-variable">

Tailwind v4 و v3

استفاده با Tailwind CSS

روی html به‌جای className از vazirmatnVariable.variable استفاده کنید و فونت را به Tailwind معرفی کنید. بعد از آن کلاس font-sans (پیش‌فرض Tailwind) همان فونت فارسی است.

Tailwind v4 — globals.css
/* globals.css */
@import 'tailwindcss';

@theme inline {
  --font-sans: var(--font-vazirmatn-variable), sans-serif;
}
Tailwind v3 — tailwind.config.js
// tailwind.config.js
module.exports = {
  theme: {
    extend: {
      fontFamily: { sans: ['var(--font-vazirmatn-variable)', 'sans-serif'] },
    },
  },
}

سؤال دارید؟

پرسش‌های رایج

چرا فونت‌ها داخل پکیج هستند و از Google Fonts یا CDN استفاده نمی‌کنیم؟
وقتی اینترنت ایران از اینترنت جهانی قطع می‌شود، next/font/google نمی‌تواند هنگام build فونت را دانلود کند و build شکست می‌خورد؛ فونت‌های CDN هم برای کاربران باز نمی‌شوند. اینجا فایل فونت‌ها همراه npm install می‌آیند و Next.js آن‌ها را روی سایت خودتان میزبانی می‌کند، پس همیشه کار می‌کنند. برای همین فونت‌های فارسی Google Fonts (لاله‌زار، نوتو، امیری، مرکزی و…) هم داخل پکیج قرار گرفته‌اند. در گالری با فیلتر «منبع» می‌توانید فقط آن‌ها را ببینید.
چطور چند فونت را با هم استفاده کنم؟

به‌جای className از variable هر فونت استفاده کنید و هر جا لازم است متغیر CSS آن را بنویسید. نام متغیر همیشه --font- به‌علاوهٔ مسیر ایمپورت است. ساده‌ترین راه هم این است که lalezar.className را مستقیم روی همان المان بگذارید.

multiple fonts
// app/layout.tsx
import { vazirmatnVariable } from 'next-persian-fonts/vazirmatn-variable'
import { lalezar } from 'next-persian-fonts/lalezar'

<html lang="fa" dir="rtl" className={`${vazirmatnVariable.variable} ${lalezar.variable}`}>

/* globals.css */
body { font-family: var(--font-vazirmatn-variable); }
h1   { font-family: var(--font-lalezar); }
نسخه‌های FD چه هستند؟
در نسخه‌های FD (مثل sahelFD و samimFD) حتی اعداد انگلیسی (123) هم فارسی (۱۲۳) نمایش داده می‌شوند؛ برای قیمت و تاریخ مفید است. اگر متن شما خودش اعداد فارسی دارد، نسخهٔ معمولی هم کافی است. vazirMatn همیشه اعداد فارسی دارد.
بدون Next.js هم می‌شود استفاده کرد؟
بله. از نسخهٔ ۱.۲ برای هر فونت یک فایل CSS هست، مثلاً import 'next-persian-fonts/css/estedad.css'، که در Vite، Gatsby، Astro یا با تگ <link> در HTML ساده کار می‌کند. مثال‌ها را ببینید. این فایل‌ها برای کاربران Next.js هیچ هزینه‌ای ندارند، چون فقط وقتی ایمپورتشان کنید وارد خروجی می‌شوند.
optimizePackageImports لازم است؟

اگر مثل مثال‌های بالا از مسیر هر فونت ایمپورت کنید (next-persian-fonts/estedad)، نه. فقط اگر از ریشهٔ پکیج ایمپورت می‌کنید (روش قدیمی نسخهٔ ۱.۰) و با webpack می‌سازید (پیش‌فرض Next ۱۳ تا ۱۵)، این تنظیم را اضافه کنید تا فونت‌های اضافه دانلود نشوند:

next.config.mjs
// next.config.mjs (only for: import { sahel } from 'next-persian-fonts' + webpack)
export default {
  experimental: { optimizePackageImports: ['next-persian-fonts'] },
}
Pages Router یا Jest خطای ERR_UNSUPPORTED_DIR_IMPORT می‌دهد؟
در next.config بنویسید transpilePackages: ['next-persian-fonts']. Pages Router و next/jest پکیج‌های node_modules را باندل نمی‌کنند، پس next/font/local اجرا نمی‌شود. این تنظیم در App Router هم بی‌ضرر است.
با pnpm نسخهٔ قدیمی (۱.۰) نصب شد؟
نسخه‌های جدید pnpm بسته‌هایی را که تازه منتشر شده‌اند تا مدتی نصب نمی‌کنند. نسخه را صریح بنویسید: pnpm add next-persian-fonts@^1.2 (یا npm install next-persian-fonts@latest).
چرا بعضی فونت‌ها preload نمی‌شوند؟
خروجی‌هایی که بیش از ۳ فایل دارند (مثل vazirMatn با ۹ وزن یا sahelFD) preload نمی‌شوند تا Next.js همهٔ وزن‌ها را در هر صفحه از قبل دانلود نکند؛ فقط وزن‌هایی که واقعاً استفاده می‌شوند بارگذاری می‌شوند. برای کمترین حجم، نسخه‌های متغیر مثل vazirmatnVariable را انتخاب کنید.
estedadFD چه شد؟
استعداد ۸ دیگر نسخهٔ ارقام فارسی ندارد. estedadFD برای سازگاری روی نسخهٔ ۷.۳ مانده و منسوخ است؛ برای پروژهٔ جدید از estedad استفاده کنید.
برای پروژهٔ تجاری رایگان است؟
بله. همهٔ فونت‌ها مجوز آزاد دارند (بیشترشان SIL OFL 1.1) و استفاده در سایت‌های تجاری مجاز است. مجوز هر فونت روی کارت آن در گالری لینک شده است.

تست‌شده در CI

سازگاری

نسخه‌های تست‌شدهٔ Next.js
Next.jsReactباندلروضعیت
16.x19Turbopack + webpackپشتیبانی می‌شود
15.x19webpack + Turbopackپشتیبانی می‌شود
14.x18webpackپشتیبانی می‌شود
13.518webpackپشتیبانی می‌شود

حداقل نسخهٔ پشتیبانی‌شده Next.js ۱۳.۲ است (نسخه‌ای که next/font در خود Next.js قرار گرفت). App Router و Pages Router هر دو پشتیبانی می‌شوند.