هدر برنامه (SiteHeader)
هدر یکپارچهی App Shell با breadcrumb، عنوان، و شکافهای action، notification، و user menu
معرفی
SiteHeader یک هدر sticky با backdrop blur برای App Shell محصول است. ترکیبپذیر با sub-componentها — SiteHeaderStart سمت شروع (breadcrumb + title)، SiteHeaderEnd سمت پایان (search trigger + notifications + user menu).
چه زمانی استفاده کنیم:
- در صفحههای داشبوردی چندبخشی (افکارسنجی، پیجها، عملیات) برای نمایش context صفحهی جاری + دسترسیهای ثابت
- در کنار
SidebarوCommandPaletteوNotificationCenter— این یکجا همهی triggerها را کنار هم قرار میدهد
چه زمانی استفاده نکنیم:
- در سایتهای تکصفحهای یا marketing — از
AppBar(primitive سبکتر) استفاده کنید - وقتی breadcrumb و title لازم نیست و فقط نوار logo+nav میخواهید — از
AppBarاستفاده کنید - در صفحههای auth یا onboarding — هدر در اینجا مزاحم است
خوشه «رونمایی محصول جدید»
آخرین بهروزرسانی: ۳ دقیقه پیش
پالت دستور
برای اجرا، عبارت مورد نظر را جستجو کنید
محتوای صفحه اینجا قرار میگیرد
زمین بازی
با تغییر تنظیمات زیر، پیشنمایش زنده را مشاهده کنید.
زمین بازی
داشبورد افکارسنجی
تنظیمات
ظاهر
کد این نمونه بهصورت خودکار قابل تولید نیست — برای کد آمادهی copy/paste به بخش «استفاده» در بالای صفحه مراجعه کنید.
استفاده
import {
SiteHeader,
SiteHeaderStart,
SiteHeaderEnd,
SiteHeaderTitle,
SiteHeaderSubtitle,
SiteHeaderTitleGroup,
SiteHeaderActions,
SiteHeaderSeparator,
Breadcrumb,
BreadcrumbList,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbPage,
BreadcrumbSeparator,
NotificationCenter,
UserMenu,
} from '@parto-system-design/ui'
;<SiteHeader>
<SiteHeaderStart>
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="/">افکارسنجی</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbPage>خوشهها</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
<SiteHeaderTitleGroup>
<SiteHeaderTitle>خوشهی فعلی</SiteHeaderTitle>
<SiteHeaderSubtitle>آخرین بهروزرسانی: ۳ دقیقه پیش</SiteHeaderSubtitle>
</SiteHeaderTitleGroup>
</SiteHeaderStart>
<SiteHeaderEnd>
<SiteHeaderActions>{/* search trigger */}</SiteHeaderActions>
<SiteHeaderSeparator />
<NotificationCenter items={notifs} />
<UserMenu user={user} items={userMenuItems} />
</SiteHeaderEnd>
</SiteHeader>نمای ساده
اگر breadcrumb یا subtitle نیاز ندارید:
داشبورد
Props
SiteHeaderStart / SiteHeaderEnd
SiteHeaderTitle / SiteHeaderSubtitle
معمولاً درون SiteHeaderTitleGroup قرار میگیرند. هر دو یکخطیاند و بیش از عرض موجود truncate میشوند.
راهنمای استفاده
بکنید
- breadcrumb + title را در یک
SiteHeaderTitleGroupقرار دهید تا ترتیب عمودی استاندارد «مسیر بالا، عنوان پایین» حفظ شود - action ها را به سه دسته تقسیم کنید: (1) جستجو/پالت (2) notifications (3) user menu — باSiteHeaderSeparatorبین هر دسته فاصلهی بصری بگذارید - برای دکمهی جستجو از pattern «input-mimicking button + kbd hint» استفاده کنید تا کاربر حتی بدون Ctrl+K بداند جستجو در دسترس است - هدر را باuseHotkeys('mod+k')به پالت متصل کنید تا کاربران حرفهای از کیبورد استفاده کنند
نکنید
- title را بیش از ۴-۵ کلمه نکنید — برای متن طولانیتر از
PageHeaderداخل body صفحه استفاده کنید - بیش از ۳ icon-button اکشن کنار هم قرار ندهید — سایرین را درون overflow menu ببرید - هدر را پایین breadcrumb مستقل نگذارید — در App Shell، breadcrumb جزء هدر است نه صفحه - از backdrop-blur هدر برای پسزمینهی کاملاً شفاف استفاده نکنید — روی تم تیره contrast کم میشود
دسترسیپذیری
- element اصلی
<header>سمانتیک است — landmarkbannerرا assistive tech تشخیص میدهد - breadcrumb خودش با
aria-label="مسیر"mark میشود (از کامپوننتBreadcrumb) - action ها اگر فقط آیکوناند باید
aria-labelصریح داشته باشند
کامپوننتهای مرتبط
- AppBar — primitive سبکتر با prop-based layout
- Breadcrumb — درون SiteHeaderStart استفاده میشود
- NotificationCenter — در SiteHeaderEnd قرار میگیرد
- UserMenu — در SiteHeaderEnd قرار میگیرد
- CommandPalette — trigger جستجو درون SiteHeader به آن متصل میشود
- RouteProgress — نوار progress بالای هدر برای ناوبری