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
+1 -1
View File
@@ -50,7 +50,7 @@
"com_products_category_Ghermez_title": "قرمز",
"com_products_category_Semirom_title": "سمیرم",
"com_products_category_Zard_title": "زرد",
"com_products_category_types_count": "تعداد نوع",
"com_products_category_types_count": "تعداد محصولات {count}",
"com_products_category_show_all_CTA": "نمایش محصولات",
"pages_products_content_title": "طبقه‌بندی آجر: درک تنوع و کاربردها",
"pages_products_content_description": "آجرها به عنوان یکی از قدیمی‌ترین و پرکاربردترین مصالح ساختمانی بشر، در طول تاریخ دچار تحول زیادی شده‌اند. امروزه این مصالح در طیف بسیار متنوعی تولید و عرضه می‌شوند و به مهندسان و معماران این امکان را می‌دهند تا مناسب‌ترین آجر را برای هر پروژه و نیازی، از سازه‌های سنتی و تاریخی تا ساختمان‌های مدرن و پیشرفته، انتخاب کنند. برای درک بهتر این تنوع، می‌توان آجرها را بر اساس چند معیار کلیدی طبقه‌بندی کرد که هر یک ویژگی‌ها و کاربردهای خاص خود را دارند.\n۱. طبقه‌بندی بر اساس روش تولید: از سنت تا صنعت پیشرفته\nروش تولید آجرها مستقیماً بر ظاهر، بافت و ویژگی‌های آن‌ها تأثیر می‌گذارد.\nآجرهای دستی/قالبی: این آجرها با فشار دادن دستی خاک رس در قالب تولید می‌شوند. نتیجه، آجری با بافت نسبتاً زبر، لبه‌های نامنظم و ظاهری سنتی‌تر است که هر قطعه حس منحصر به فردی دارد. این نوع آجر اغلب برای پروژه‌های مرمت یا ساخت ساختمان‌هایی با سبک روستایی یا قدیمی استفاده می‌شود.\nآجرهای ماشینی: این آجرها با استفاده از ماشین‌آلات صنعتی تولید می‌شوند که دقت ابعادی و یکنواختی ظاهری بسیار بالاتری دارند. آجرهای ماشینی خود به دو دسته اصلی تقسیم می‌شوند:\nآجرهای سوراخ‌دار/توخالی: این آجرها دارای سوراخ‌هایی هستند که چندین مزیت دارند: کاهش وزن ساختمان، بهبود عایق حرارتی و صوتی و افزایش چسبندگی ملات.\nآجرهای توپر: این آجرها بدون سوراخ بوده و مقاومت فشاری بسیار بالایی دارند. آن‌ها برای سازه‌های باربر و دیوارهایی که به حداکثر استحکام نیاز دارند، ایده‌آل هستند.\n۲. طبقه‌بندی بر اساس نوع و ترکیب مواد اولیه: از خاک رس تا بتن\nجنس آجر تعیین‌کننده ویژگی‌های فیزیکی و شیمیایی آن است.",
+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;
}