Serve Iran Sans, Montserrat, and Josefin Sans from local files.

CDN @imports were failing on deploy; self-host the faces under public/fonts and enable standalone output for lean PM2 runtime.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Alireza Hassani
2026-09-09 19:56:26 +03:30
co-authored by Cursor
parent 34f4308b74
commit 1d52d78513
16 changed files with 108 additions and 4 deletions
+108 -4
View File
@@ -1,6 +1,110 @@
@import url("https://cdn.meshkee.com/web-builder/fonts/iran-sans/iran-sans.css");
@import url("https://cdn.meshkee.com/minio/web-builder/fonts/montserrat/montserrat.css");
@import url("https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@600;700&display=swap");
@font-face {
font-family: "iran-sans";
src: url("/fonts/iran-sans/iran-sans-thin.ttf") format("truetype");
font-weight: 100;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "iran-sans";
src: url("/fonts/iran-sans/iran-sans-ultralight.ttf") format("truetype");
font-weight: 200;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "iran-sans";
src: url("/fonts/iran-sans/iran-sans-light.ttf") format("truetype");
font-weight: 300;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "iran-sans";
src: url("/fonts/iran-sans/iran-sans-regular.ttf") format("truetype");
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "iran-sans";
src: url("/fonts/iran-sans/iran-sans-medium.ttf") format("truetype");
font-weight: 500;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "iran-sans";
src: url("/fonts/iran-sans/iran-sans-semibold.ttf") format("truetype");
font-weight: 600;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "iran-sans";
src: url("/fonts/iran-sans/iran-sans-bold.ttf") format("truetype");
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "iran-sans";
src: url("/fonts/iran-sans/iran-sans-extrabold.ttf") format("truetype");
font-weight: 800;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "iran-sans";
src: url("/fonts/iran-sans/iran-sans-black.ttf") format("truetype");
font-weight: 900;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Montserrat";
src: url("/fonts/montserrat/montserrat-regular.ttf") format("truetype");
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Montserrat";
src: url("/fonts/montserrat/montserrat-medium.ttf") format("truetype");
font-weight: 500;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Montserrat";
src: url("/fonts/montserrat/montserrat-semibold.ttf") format("truetype");
font-weight: 600;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Montserrat";
src: url("/fonts/montserrat/montserrat-bold.ttf") format("truetype");
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Josefin Sans";
src: url("/fonts/josefin-sans/JosefinSans-SemiBold.ttf") format("truetype");
font-weight: 600;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Josefin Sans";
src: url("/fonts/josefin-sans/JosefinSans-Bold.ttf") format("truetype");
font-weight: 700;
font-style: normal;
font-display: swap;
}
:root {
--primary: #00234b;
@@ -13,7 +117,7 @@
--white: #ffffff;
--radius: 28px;
--shadow: 0 24px 70px rgba(0, 35, 75, 0.12);
--font-fa: iran-sans, IRANSans, Vazirmatn, Tahoma, sans-serif;
--font-fa: iran-sans, IRANSans, Tahoma, sans-serif;
--font-en: Montserrat, Arial, sans-serif;
--font-en-title: "Josefin Sans", Montserrat, Arial, sans-serif;
--product-card-width: 280px;