Add Vazirmatn font files and CSS definitions for multiple font weights

This commit is contained in:
2025-06-08 10:05:37 +03:30
parent 12775285ec
commit 929960b26f
15 changed files with 182 additions and 112 deletions
+3 -3
View File
@@ -19,18 +19,18 @@ export default async function RootLayout({
}>) {
const locale = params.locale;
const fontClass = locale === 'fa' ? 'font-fa' : 'font-en';
let messages;
try {
messages = (await import(`../../../messages/${locale}.json`)).default;
console.log('locale');
console.log(locale);
} catch (error) {
notFound();
}
return (
<html lang={locale} dir={locale === 'fa' ? 'rtl' : 'ltr'}>
<body className="min-h-svh w-full overflow-x-hidden">
<body className={`min-h-svh w-full overflow-x-hidden ${fontClass}`}>
<NextIntlClientProvider locale={locale} messages={messages}>
{children}
<Footer />
+10 -107
View File
@@ -1,113 +1,8 @@
@import "tailwindcss";
@import "tailwindcss/utilities";
/* manrope-200 - latin */
@font-face {
font-display: swap;
@import "../assets/fonts/manrope/manrope.css";
@import "../assets/fonts/vazir/vazir.css";
font-family: 'Manrope';
font-style: normal;
font-weight: 200;
src: url('../assets/fonts/manrope/manrope-v15-latin-200.eot');
src: url('../assets/fonts/manrope/manrope-v15-latin-200.eot?#iefix') format('embedded-opentype'),
url('../assets/fonts/manrope/manrope-v15-latin-200.woff2') format('woff2'),
url('../assets/fonts/manrope/manrope-v15-latin-200.woff') format('woff'),
url('../assets/fonts/manrope/manrope-v15-latin-200.ttf') format('truetype'),
url('../assets/fonts/manrope/manrope-v15-latin-200.svg#Manrope') format('svg');
}
/* manrope-300 - latin */
@font-face {
font-display: swap;
font-family: 'Manrope';
font-style: normal;
font-weight: 300;
src: url('../assets/fonts/manrope/manrope-v15-latin-300.eot');
src: url('../assets/fonts/manrope/manrope-v15-latin-300.eot?#iefix') format('embedded-opentype'),
url('../assets/fonts/manrope/manrope-v15-latin-300.woff2') format('woff2'),
url('../assets/fonts/manrope/manrope-v15-latin-300.woff') format('woff'),
url('../assets/fonts/manrope/manrope-v15-latin-300.ttf') format('truetype'),
url('../assets/fonts/manrope/manrope-v15-latin-300.svg#Manrope') format('svg');
}
/* manrope-regular - latin */
@font-face {
font-display: swap;
font-family: 'Manrope';
font-style: normal;
font-weight: 400;
src: url('../assets/fonts/manrope/manrope-v15-latin-regular.eot');
src: url('../assets/fonts/manrope/manrope-v15-latin-regular.eot?#iefix') format('embedded-opentype'),
url('../assets/fonts/manrope/manrope-v15-latin-regular.woff2') format('woff2'),
url('../assets/fonts/manrope/manrope-v15-latin-regular.woff') format('woff'),
url('../assets/fonts/manrope/manrope-v15-latin-regular.ttf') format('truetype'),
url('../assets/fonts/manrope/manrope-v15-latin-regular.svg#Manrope') format('svg');
}
/* manrope-500 - latin */
@font-face {
font-display: swap;
font-family: 'Manrope';
font-style: normal;
font-weight: 500;
src: url('../assets/fonts/manrope/manrope-v15-latin-500.eot');
src: url('../assets/fonts/manrope/manrope-v15-latin-500.eot?#iefix') format('embedded-opentype'),
url('../assets/fonts/manrope/manrope-v15-latin-500.woff2') format('woff2'),
url('../assets/fonts/manrope/manrope-v15-latin-500.woff') format('woff'),
url('../assets/fonts/manrope/manrope-v15-latin-500.ttf') format('truetype'),
url('../assets/fonts/manrope/manrope-v15-latin-500.svg#Manrope') format('svg');
}
/* manrope-600 - latin */
@font-face {
font-display: swap;
font-family: 'Manrope';
font-style: normal;
font-weight: 600;
src: url('../assets/fonts/manrope/manrope-v15-latin-600.eot');
src: url('../assets/fonts/manrope/manrope-v15-latin-600.eot?#iefix') format('embedded-opentype'),
url('../assets/fonts/manrope/manrope-v15-latin-600.woff2') format('woff2'),
url('../assets/fonts/manrope/manrope-v15-latin-600.woff') format('woff'),
url('../assets/fonts/manrope/manrope-v15-latin-600.ttf') format('truetype'),
url('../assets/fonts/manrope/manrope-v15-latin-600.svg#Manrope') format('svg');
}
/* manrope-700 - latin */
@font-face {
font-display: swap;
font-family: 'Manrope';
font-style: normal;
font-weight: 700;
src: url('../assets/fonts/manrope/manrope-v15-latin-700.eot');
src: url('../assets/fonts/manrope/manrope-v15-latin-700.eot?#iefix') format('embedded-opentype'),
url('../assets/fonts/manrope/manrope-v15-latin-700.woff2') format('woff2'),
url('../assets/fonts/manrope/manrope-v15-latin-700.woff') format('woff'),
url('../assets/fonts/manrope/manrope-v15-latin-700.ttf') format('truetype'),
url('../assets/fonts/manrope/manrope-v15-latin-700.svg#Manrope') format('svg');
}
/* manrope-800 - latin */
@font-face {
font-display: swap;
font-family: 'Manrope';
font-style: normal;
font-weight: 800;
src: url('../assets/fonts/manrope/manrope-v15-latin-800.eot');
src: url('../assets/fonts/manrope/manrope-v15-latin-800.eot?#iefix') format('embedded-opentype'),
url('../assets/fonts/manrope/manrope-v15-latin-800.woff2') format('woff2'),
url('../assets/fonts/manrope/manrope-v15-latin-800.woff') format('woff'),
url('../assets/fonts/manrope/manrope-v15-latin-800.ttf') format('truetype'),
url('../assets/fonts/manrope/manrope-v15-latin-800.svg#Manrope') format('svg');
}
* {
font-family: 'Manrope';
}
html{
font-size: 16px;
@@ -119,6 +14,14 @@ html{
}
}
body.font-en *{
font-family: 'Manrope';
}
body.font-fa *{
font-family: 'Vazirmatn';
}
:root {
--primary: #FA003F;
+1 -1
View File
@@ -1,5 +1,5 @@
type RouteFactory = (
t: (key: string) => string,
t: any,
locale: string,
) => {
home: { title: string; route: () => string };
+104
View File
@@ -0,0 +1,104 @@
/* manrope-200 - latin */
@font-face {
font-display: swap;
font-family: 'Manrope';
font-style: normal;
font-weight: 200;
src: url('./manrope-v15-latin-200.eot');
src: url('./manrope-v15-latin-200.eot?#iefix') format('embedded-opentype'),
url('./manrope-v15-latin-200.woff2') format('woff2'),
url('./manrope-v15-latin-200.woff') format('woff'),
url('./manrope-v15-latin-200.ttf') format('truetype'),
url('./manrope-v15-latin-200.svg#Manrope') format('svg');
}
/* manrope-300 - latin */
@font-face {
font-display: swap;
font-family: 'Manrope';
font-style: normal;
font-weight: 300;
src: url('./manrope-v15-latin-300.eot');
src: url('./manrope-v15-latin-300.eot?#iefix') format('embedded-opentype'),
url('./manrope-v15-latin-300.woff2') format('woff2'),
url('./manrope-v15-latin-300.woff') format('woff'),
url('./manrope-v15-latin-300.ttf') format('truetype'),
url('./manrope-v15-latin-300.svg#Manrope') format('svg');
}
/* manrope-regular - latin */
@font-face {
font-display: swap;
font-family: 'Manrope';
font-style: normal;
font-weight: 400;
src: url('./manrope-v15-latin-regular.eot');
src: url('./manrope-v15-latin-regular.eot?#iefix') format('embedded-opentype'),
url('./manrope-v15-latin-regular.woff2') format('woff2'),
url('./manrope-v15-latin-regular.woff') format('woff'),
url('./manrope-v15-latin-regular.ttf') format('truetype'),
url('./manrope-v15-latin-regular.svg#Manrope') format('svg');
}
/* manrope-500 - latin */
@font-face {
font-display: swap;
font-family: 'Manrope';
font-style: normal;
font-weight: 500;
src: url('./manrope-v15-latin-500.eot');
src: url('./manrope-v15-latin-500.eot?#iefix') format('embedded-opentype'),
url('./manrope-v15-latin-500.woff2') format('woff2'),
url('./manrope-v15-latin-500.woff') format('woff'),
url('./manrope-v15-latin-500.ttf') format('truetype'),
url('./manrope-v15-latin-500.svg#Manrope') format('svg');
}
/* manrope-600 - latin */
@font-face {
font-display: swap;
font-family: 'Manrope';
font-style: normal;
font-weight: 600;
src: url('./manrope-v15-latin-600.eot');
src: url('./manrope-v15-latin-600.eot?#iefix') format('embedded-opentype'),
url('./manrope-v15-latin-600.woff2') format('woff2'),
url('./manrope-v15-latin-600.woff') format('woff'),
url('./manrope-v15-latin-600.ttf') format('truetype'),
url('./manrope-v15-latin-600.svg#Manrope') format('svg');
}
/* manrope-700 - latin */
@font-face {
font-display: swap;
font-family: 'Manrope';
font-style: normal;
font-weight: 700;
src: url('./manrope-v15-latin-700.eot');
src: url('./manrope-v15-latin-700.eot?#iefix') format('embedded-opentype'),
url('./manrope-v15-latin-700.woff2') format('woff2'),
url('./manrope-v15-latin-700.woff') format('woff'),
url('./manrope-v15-latin-700.ttf') format('truetype'),
url('./manrope-v15-latin-700.svg#Manrope') format('svg');
}
/* manrope-800 - latin */
@font-face {
font-display: swap;
font-family: 'Manrope';
font-style: normal;
font-weight: 800;
src: url('./manrope-v15-latin-800.eot');
src: url('./manrope-v15-latin-800.eot?#iefix') format('embedded-opentype'),
url('./manrope-v15-latin-800.woff2') format('woff2'),
url('./manrope-v15-latin-800.woff') format('woff'),
url('./manrope-v15-latin-800.ttf') format('truetype'),
url('./manrope-v15-latin-800.svg#Manrope') format('svg');
}
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.
+63
View File
@@ -0,0 +1,63 @@
@font-face {
font-family: 'Vazirmatn';
src: url('./Vazirmatn-FD-Thin.woff2') format('woff2');
font-weight: 100;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Vazirmatn';
src: url('./Vazirmatn-FD-ExtraLight.woff2') format('woff2');
font-weight: 200;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Vazirmatn';
src: url('./Vazirmatn-FD-Light.woff2') format('woff2');
font-weight: 300;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Vazirmatn';
src: url('./Vazirmatn-FD-Regular.woff2') format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Vazirmatn';
src: url('./Vazirmatn-FD-Medium.woff2') format('woff2');
font-weight: 500;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Vazirmatn';
src: url('./Vazirmatn-FD-SemiBold.woff2') format('woff2');
font-weight: 600;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Vazirmatn';
src: url('./Vazirmatn-FD-Bold.woff2') format('woff2');
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Vazirmatn';
src: url('./Vazirmatn-FD-ExtraBold.woff2') format('woff2');
font-weight: 800;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Vazirmatn';
src: url('./Vazirmatn-FD-Black.woff2') format('woff2');
font-weight: 900;
font-style: normal;
font-display: swap;
}