Switch project typography to local IRANSans fonts.

Replace Google/Vazirmatn stacks with IRANSans FaNum webfonts for landing and admin.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-30 20:51:49 +03:30
co-authored by Cursor
parent 077d7daf92
commit 002deb5e13
29 changed files with 140 additions and 13 deletions
+65
View File
@@ -0,0 +1,65 @@
/* IRANSans from landing assets (shared path in monorepo) */
@font-face {
font-family: "IRANSans";
src: url("../../landing/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum)_UltraLight.woff2") format("woff2"),
url("../../landing/assets/fonts/iranSans/woff/IRANSansWeb(FaNum)_UltraLight.woff") format("woff");
font-weight: 200;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "IRANSans";
src: url("../../landing/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum)_Light.woff2") format("woff2"),
url("../../landing/assets/fonts/iranSans/woff/IRANSansWeb(FaNum)_Light.woff") format("woff");
font-weight: 300;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "IRANSans";
src: url("../../landing/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum).woff2") format("woff2"),
url("../../landing/assets/fonts/iranSans/woff/IRANSansWeb(FaNum).woff") format("woff");
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "IRANSans";
src: url("../../landing/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum)_Medium.woff2") format("woff2"),
url("../../landing/assets/fonts/iranSans/woff/IRANSansWeb(FaNum)_Medium.woff") format("woff");
font-weight: 500;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "IRANSans";
src: url("../../landing/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum)_Medium.woff2") format("woff2"),
url("../../landing/assets/fonts/iranSans/woff/IRANSansWeb(FaNum)_Medium.woff") format("woff");
font-weight: 600;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "IRANSans";
src: url("../../landing/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum)_Bold.woff2") format("woff2"),
url("../../landing/assets/fonts/iranSans/woff/IRANSansWeb(FaNum)_Bold.woff") format("woff");
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "IRANSans";
src: url("../../landing/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum)_Black.woff2") format("woff2"),
url("../../landing/assets/fonts/iranSans/woff/IRANSansWeb(FaNum)_Black.woff") format("woff");
font-weight: 800;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "IRANSans";
src: url("../../landing/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum)_Black.woff2") format("woff2"),
url("../../landing/assets/fonts/iranSans/woff/IRANSansWeb(FaNum)_Black.woff") format("woff");
font-weight: 900;
font-style: normal;
font-display: swap;
}
+4 -1
View File
@@ -1,3 +1,5 @@
@import "./fonts.css";
:root {
--bg: #0f1115;
--panel: #171a21;
@@ -7,7 +9,7 @@
--accent: #c8ff2e;
--danger: #ff6b6b;
--radius: 10px;
font-family: "Segoe UI", Tahoma, sans-serif;
font-family: "IRANSans", Tahoma, sans-serif;
}
* { box-sizing: border-box; }
@@ -15,6 +17,7 @@ body {
margin: 0;
background: var(--bg);
color: var(--text);
font-family: "IRANSans", Tahoma, sans-serif;
}
a { color: inherit; text-decoration: none; }
button, input, textarea, select {
+65
View File
@@ -0,0 +1,65 @@
/* IRANSans (FaNum) — local webfonts */
@font-face {
font-family: "IRANSans";
src: url("../fonts/iranSans/woff2/IRANSansWeb(FaNum)_UltraLight.woff2") format("woff2"),
url("../fonts/iranSans/woff/IRANSansWeb(FaNum)_UltraLight.woff") format("woff");
font-weight: 200;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "IRANSans";
src: url("../fonts/iranSans/woff2/IRANSansWeb(FaNum)_Light.woff2") format("woff2"),
url("../fonts/iranSans/woff/IRANSansWeb(FaNum)_Light.woff") format("woff");
font-weight: 300;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "IRANSans";
src: url("../fonts/iranSans/woff2/IRANSansWeb(FaNum).woff2") format("woff2"),
url("../fonts/iranSans/woff/IRANSansWeb(FaNum).woff") format("woff");
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "IRANSans";
src: url("../fonts/iranSans/woff2/IRANSansWeb(FaNum)_Medium.woff2") format("woff2"),
url("../fonts/iranSans/woff/IRANSansWeb(FaNum)_Medium.woff") format("woff");
font-weight: 500;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "IRANSans";
src: url("../fonts/iranSans/woff2/IRANSansWeb(FaNum)_Medium.woff2") format("woff2"),
url("../fonts/iranSans/woff/IRANSansWeb(FaNum)_Medium.woff") format("woff");
font-weight: 600;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "IRANSans";
src: url("../fonts/iranSans/woff2/IRANSansWeb(FaNum)_Bold.woff2") format("woff2"),
url("../fonts/iranSans/woff/IRANSansWeb(FaNum)_Bold.woff") format("woff");
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "IRANSans";
src: url("../fonts/iranSans/woff2/IRANSansWeb(FaNum)_Black.woff2") format("woff2"),
url("../fonts/iranSans/woff/IRANSansWeb(FaNum)_Black.woff") format("woff");
font-weight: 800;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "IRANSans";
src: url("../fonts/iranSans/woff2/IRANSansWeb(FaNum)_Black.woff2") format("woff2"),
url("../fonts/iranSans/woff/IRANSansWeb(FaNum)_Black.woff") format("woff");
font-weight: 900;
font-style: normal;
font-display: swap;
}
+6 -4
View File
@@ -1,3 +1,4 @@
@import "./fonts.css";
@import "tailwindcss";
@theme {
@@ -8,16 +9,17 @@
--color-ash: #8b8b93;
--color-volt: #c8ff2e;
--font-display: "Vazirmatn", "Syne", ui-sans-serif, system-ui, sans-serif;
--font-body: "Vazirmatn", ui-sans-serif, system-ui, sans-serif;
--font-serif: "Vazirmatn", "Instrument Serif", ui-serif, Georgia, serif;
--font-mono: "Vazirmatn", ui-monospace, monospace;
--font-display: "IRANSans", ui-sans-serif, system-ui, sans-serif;
--font-body: "IRANSans", ui-sans-serif, system-ui, sans-serif;
--font-serif: "IRANSans", ui-serif, Georgia, serif;
--font-mono: "IRANSans", ui-monospace, monospace;
}
html { background: var(--color-ink); }
body {
@apply bg-ink text-bone font-body antialiased;
overflow-x: clip;
font-family: "IRANSans", ui-sans-serif, system-ui, sans-serif;
}
::selection {
background: var(--color-volt);
-8
View File
@@ -17,14 +17,6 @@ export default defineNuxtConfig({
app: {
head: {
htmlAttrs: { lang: "fa", dir: "rtl" },
link: [
{ rel: "preconnect", href: "https://fonts.googleapis.com" },
{ rel: "preconnect", href: "https://fonts.gstatic.com", crossorigin: "" },
{
rel: "stylesheet",
href: "https://fonts.googleapis.com/css2?family=Vazirmatn:wght@300;400;500;600;700;800&family=Syne:wght@600;700;800&family=Instrument+Serif:ital@0;1&display=swap",
},
],
},
},
nitro: {