ناوبری بالا — TopNavigation
نوار ناوبری اصلی سایت یا بخش را در بالای صفحه میسازد: برند در ابتدای خط، مقصدهای اصلی در میانه و کنشها (جستجو، پروفایل) در انتها. ساختار کپی کد > کپی کد > کپی کد و لندمارک ناوبری ثابتاند؛ ظاهر شیشهای و حرکت فقط از توکنها و هویت میآیند. برای موبایل، مقصدهای اصلی در داک شیشهای ثابت پایین صفحه (Dock) قرار میگیرند.
وضعیت: beta · لایه: ۳ (کپی کد) · کد: کپی کد
import { TopNavigation } from '@tokapps/tuk';نمونهٔ زنده
کد قابل کپی
نوار پایه با برند و کنش
import { Icon } from '@tokapps/icons';import { Button, TopNavigation } from '@tokapps/tuk';const items = [ { id: 'home', label: 'خانه', href: '/', current: true }, { id: 'forum', label: 'انجمن', href: '/forum' }, { id: 'funding', label: 'سرمایهگذاری', href: '/funding', badge: '۳' }, { id: 'stories', label: 'روایتها', href: '/stories' },];<TopNavigation items={items} brand="توکاپس" actions={<Button variant="ghost" aria-label="جستجو" icon={<Icon name="search" />} />}/>نوار چسبان با پیوند روتر و تنظیم کامل
import Link from 'next/link';import { TopNavigation } from '@tokapps/tuk';<TopNavigation items={items} brand="توکاپس" variant="solid" sticky aria-label="ناوبری اصلی سایت" renderLink={(props) => <Link {...props} />} className="site-header"/>آیتم غیرفعال و آیتم بدون مقصد (دکمه)
import { TopNavigation } from '@tokapps/tuk';<TopNavigation items={[ { id: 'home', label: 'خانه', href: '/', current: true }, { id: 'soon', label: 'بهزودی', href: '/soon', disabled: true }, { id: 'help', label: 'راهنما', onPress: () => openHelp() }, ]} brand="توکاپس" print="show"/>همهٔ پیکربندیها
| پراپ | نوع | پیشفرض | توضیح |
|---|---|---|---|
| کپی کد | کپی کد | — (الزامی) | مقصدهای ناوبری به ترتیب نمایش. |
| کپی کد | کپی کد | — (الزامی) | کلید یکتا هر آیتم (کپی کد فهرست). |
| کپی کد | کپی کد | — (الزامی) | برچسب قابلمشاهده. |
| کپی کد | کپی کد | — | با کپی کد آیتم لینک میشود؛ بدون آن کپی کد. |
| کپی کد | کپی کد | — | آیکون قبل از برچسب (با کپی کد). |
| کپی کد | کپی کد | — | نشان عددی یا متنی کنار برچسب. |
| کپی کد | کپی کد | کپی کد | غیرفعال؛ کلیک نادیده گرفته میشود. |
| کپی کد | کپی کد | کپی کد | صفحهٔ فعلی؛ کپی کد. |
| کپی کد | کپی کد | — | اجرا هنگام کلیک (برای آیتم بدون کپی کد یا همراه آن). |
| کپی کد | کپی کد | — | لوگو یا نام محصول در ابتدای خط. |
| کپی کد | کپی کد | — | کنشها (جستجو، پروفایل، …) در انتهای خط. |
| کپی کد | کپی کد · کپی کد | کپی کد | ماده شیشهای یا سطح تخت. |
| کپی کد | کپی کد | کپی کد | چسبیدن به بالای صفحه هنگام اسکرول. |
| کپی کد | کپی کد | کپی کد | برچسب landmark ناوبری. |
| کپی کد | کپی کد · کپی کد | کپی کد | نمایش نوار در چاپ. |
| کپی کد | کپی کد | — | رندر لینک با روتر (مثلاً Next Link). |
| کپی کد | کپی کد | کپی کد | جایگزین تگ لینک؛ اگر کپی کد باشد نادیده گرفته میشود. |
| کپی کد | کپی کد | — | کلاس روی ریشهٔ کپی کد. |
اندازهای (کپی کد) برای این کامپوننت در کد تعریف نشده؛ اندازه ثابت کپی کد است و ارتفاع از توکن کپی کد میآید.
ساختار و اسلاتها
| بخش | نشانه | وضعیت |
|---|---|---|
| ریشه کپی کد | کپی کد، کپی کد، کپی کد، کپی کد | بنیان ثابت |
| برند | کپی کد (فقط اگر کپی کد باشد) | محتوا قابلتغییر |
| ناحیهٔ ناوبری | کپی کد با کپی کد | بنیان ثابت |
| فهرست | کپی کد > کپی کد | بنیان ثابت |
| آیتم | کپی کد روی کپی کد یا کپی کد | بنیان ثابت |
| نشان | کپی کد (فقط اگر کپی کد باشد) | محتوا قابلتغییر |
| کنشها | کپی کد (فقط اگر کپی کد باشد) | محتوا قابلتغییر |
ترتیب DOM: کپی کد > برند؟ > کپی کد > کپی کد > کپی کد > لینک یا دکمه (با آیکون، کپی کد برچسب، نشان؟) > کنشها؟.
همهٔ حالتها
| حالت | نشانه (data-attribute یا prop) | نمایش |
|---|---|---|
| پیشفرض | کپی کد بدون کپی کد | متن کپی کد، پسزمینه شفاف |
| hover | کپی کد | پسزمینه کپی کد، متن کپی کد |
| فشردن | کپی کد | پسزمینه کپی کد |
| صفحهٔ فعلی | کپی کد ⇒ کپی کد | پسزمینه کپی کد، متن کپی کد، وزن نیمهپررنگ (رنگ تنها نشانه نیست) |
| focus-visible | کپی کد | حلقهٔ فوکوس کپی کد با offset توکنی |
| غیرفعال (لینک) | کپی کد ⇒ کپی کد، کپی کد | متن کپی کد، بدون کلیک و بدون hover |
| غیرفعال (دکمه) | کپی کد روی کپی کد | همان ظاهر؛ حذف از ترتیب Tab |
| شیشهای | کپی کد ⇒ کپی کد | بلور و لبهٔ شیشهای |
| سطح تخت | کپی کد ⇒ کپی کد | سطح کپی کد بدون بلور |
| چسبان | کپی کد ⇒ کپی کد | کپی کد در بالای صفحه |
| کاهش حرکت | کپی کد | بدون transition |
تغییرات مجاز برای توسعهدهنده
- variant: کپی کد یا کپی کد.
- اندازه: فقط کپی کد (بدون پراپ اندازه).
- چیدمان: افقی؛ جهت عمودی در کد تعریف نشده است.
- چسبیدن: کپی کد (بولی).
- چاپ: کپی کد یا کپی کد.
- لینک: کپی کد یا کپی کد برای روتر (مثلاً Next Link)؛ پیشفرض کپی کد.
- آیتم: کپی کد یا کپی کد، کپی کد، کپی کد، کپی کد، کپی کد.
- اسلاتها: کپی کد و کپی کد (هر کپی کد).
- کلاس: کپی کد روی کپی کد.
- برچسب landmark: کپی کد (قابل ترجمه).
- توکن سطح کامپوننت: کپی کد (فهرست بخش توکنها).
- صدا و رویداد: این کامپوننت رویداد صوتی ندارد؛ handler اختصاصی صدا در کد تعریف نشده است.
تغییرات ممنوع (بنیان ثابت)
- ساختار DOM (کپی کد > کپی کد > کپی کد > کپی کد) و لندمارک کپی کد با برچسب؛ حذف یا جابهجایی آنها ممنوع است.
- استایلدهی مستقیم به کپی کد یا کپی کد از بیرون با تغییر رفتار؛ فقط توکن و کپی کد مجاز است.
- تنظیم دستی کپی کد روی wrapper یا لینک فرزند بهجای کپی کد.
- حذف حلقهٔ فوکوس مرئی روی آیتم.
- رنگ خام یا گرادیان در کد رابط؛ همه رنگها از توکنهای معنایی و کپی کد میآیند.
- قرارداد هدف لمسی ۴۴px (از کپی کد / کپی کد).
RTL، کیبورد و صفحهخوان
- RTL: ویژگیهای منطقی (inline/block) و کپی کد برای کنشها؛ در RTL برند از راست، مقصدها و کنشها به انتهای خط (چپ) میروند. آیکونهای جهتدار در RTL آینه میشوند.
- Tab: حرکت بین مقصدها و کنشها؛ آیتمهای غیرفعال از ترتیب Tab حذف میشوند.
- Enter: رفتن به مقصد (لینک) یا اجرای کپی کد (دکمه).
- صفحهخوان: کپی کد شامل کپی کد با کپی کد (پیشفرض «ناوبری اصلی») و فهرست کپی کد؛ صفحهٔ فعلی با کپی کد؛ آیتم غیرفعال با کپی کد.
- فوکوس: روی لینک یا دکمه؛ آیتم غیرفعال کپی کد.
صدا، حرکت، چاپ و کاهش حرکت
- صدا: این کامپوننت بیصدا است؛ پراپ کپی کد در کد تعریف نشده و معادل بصری لازم نیست.
- حرکت: semantic motion با نام کپی کد روی کپی کد و کپی کد. در کپی کد و کپی کد فوری (بدون transition) میشود.
- چاپ: پیشفرض کپی کد (نوار در چاپ حذف میشود). با کپی کد نوار بهصورت ایستا و بدون پسزمینه با خط جداکننده چاپ میشود.
توکنها
معنایی مصرفی: کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد.
سطح کامپوننت: کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد.
مسیر تعریف: مقادیر در کپی کد؛ فهرست مصرف در کپی کد. هویت حرکتی هر تم در کپی کد تعیین میشود و ساختار را تغییر نمیدهد.
قرارداد ARCH
- آیکونها فقط با کپی کد و نام معنایی (مثل کپی کد) داده میشوند؛ هرگز مسیر فایل asset.
- تم فقط حرکت و توکن را تغییر میدهد؛ ابعاد، ترتیب DOM و فاصلهٔ حرکت ثابتاند.
- این کامپوننت gesture ندارد؛ کنترل کامل با کیبورد (Tab و Enter) ممکن است.
- لینکها agnostic هستند؛ برای روتر از کپی کد یا کپی کد استفاده کنید.
نکات
- برای موبایل، مقصدهای اصلی را در داک شیشهای ثابت پایین صفحه (Dock) قرار دهید؛ برای لمس انگشت مناسبتر است.
- برای مقصدهای زیاد یا سلسلهمراتبی از پنل کناری استفاده کنید.
- برای نماهای همسطح درون یک صفحه از Tabs استفاده کنید؛ آنها ناوبری سراسری نیستند.
- برای رفتن سریع به صفحهها با صفحهکلید، ناوبری فرمانی را کنار این نوار بگذارید.