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"); @font-face {
@import url("https://cdn.meshkee.com/minio/web-builder/fonts/montserrat/montserrat.css"); font-family: "iran-sans";
@import url("https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@600;700&display=swap"); 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 { :root {
--primary: #00234b; --primary: #00234b;
@@ -13,7 +117,7 @@
--white: #ffffff; --white: #ffffff;
--radius: 28px; --radius: 28px;
--shadow: 0 24px 70px rgba(0, 35, 75, 0.12); --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: Montserrat, Arial, sans-serif;
--font-en-title: "Josefin Sans", Montserrat, Arial, sans-serif; --font-en-title: "Josefin Sans", Montserrat, Arial, sans-serif;
--product-card-width: 280px; --product-card-width: 280px;
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.