Bottom App Barv1.0.0
نوار کنشِ پایینِ صفحه در موبایل: یک دکمهٔ اصلی (افزودن یا منو) و تا چهار کنشِ آیکونی، یا چند ابزارِ برچسبدار برای کارِ گروهی روی موردهای انتخابشده.
این کامپوننت فعلاً برای ۱ فریمورک از ۴ فریمورک آماده است.
این نمونه هنوز برای Vue پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Svelte پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Angular پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
نصب
با CLI اختصاصی digdesign کامپوننت را از رجیستری دیگ نصب کنید؛ وابستگیها و فایلها خودکار اضافه میشوند.
npx digdesign@latest add https://docs.digdesign.ir/r/bottom-app-bar.jsonpnpm dlx digdesign@latest add https://docs.digdesign.ir/r/bottom-app-bar.jsonyarn dlx digdesign@latest add https://docs.digdesign.ir/r/bottom-app-bar.jsonbunx --bun digdesign@latest add https://docs.digdesign.ir/r/bottom-app-bar.jsonاین کامپوننت هنوز برای Vue پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
این کامپوننت هنوز برای Svelte پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
این کامپوننت هنوز برای Angular پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
استفاده
import {
BottomAppBar,
BottomAppBarAction,
BottomAppBarActions,
BottomAppBarFab,
} from "@/components/ui/bottom-app-bar"
<BottomAppBar fixed>
<BottomAppBarFab label="افزودن"><PlusIcon /></BottomAppBarFab>
<BottomAppBarActions>
<BottomAppBarAction label="جستوجو"><SearchIcon /></BottomAppBarAction>
</BottomAppBarActions>
</BottomAppBar>این کامپوننت هنوز برای Vue پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
این کامپوننت هنوز برای Svelte پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
این کامپوننت هنوز برای Angular پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
ترکیب اجزا
BottomAppBar با BottomNavigation فرق دارد: آن یکی بین صفحهها جابهجا میکند، این یکی کارهای همین صفحه را انجام میدهد. هر دو را همزمان در یک صفحه نگذارید.
BottomAppBarFab اقدامِ اصلی است و در ابتدای ردیف (راست در RTL) زیرِ شستِ دستِ راست مینشیند. BottomAppBarActions کنشهای آیکونی را به انتهای ردیف میبرد. در layout="tools" دکمهٔ اصلی ندارید و ابزارها با برچسب در عرض پخش میشوند.
دسترسپذیری
- هر کنش label اجباری دارد؛ در چیدمانِ پیشفرض aria-label و تولتیپِ بومی میشود و در tools زیرِ آیکون دیده میشود.
- کنشها ۴۰ و دکمهٔ اصلی ۴۴ پیکسلاند؛ با فاصلهٔ بینشان هدفِ لمس برای انگشت کافی است.
- با fixed، فاصلهٔ پایینی از env(safe-area-inset-bottom) میآید تا روی نوارِ خانهٔ گوشیهای بدون دکمه نیفتد.
- کنشِ غیرفعال رنگِ placeholder میگیرد نه opacity، و از چرخهٔ Tab بیرون میرود.
مرجع API
BottomAppBar
| ویژگی | نوع | پیشفرض | توضیح |
|---|---|---|---|
| layout | "default" | "tools" | "default" | default: دکمهٔ اصلی + کنشها؛ tools: ابزارهای هموزن در عرض. |
| fixed | boolean | false | چسبیدن به پایینِ صفحه با فاصلهٔ safe-area. |
BottomAppBarFab
| ویژگی | نوع | پیشفرض | توضیح |
|---|---|---|---|
| label | string | — | aria-label؛ اجباری چون فقط آیکون دارد. |
| variant | "primary" | "secondary" | "primary" | primary رنگیِ اقدامِ اصلی؛ secondary سفیدِ کادردار (منو). |
BottomAppBarAction
| ویژگی | نوع | پیشفرض | توضیح |
|---|---|---|---|
| label | string | — | برچسبِ کنش؛ اجباری. |
| showLabel | boolean | false | برچسب زیرِ آیکون؛ برای layout="tools". |
این کامپوننت هنوز برای Vue پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
این کامپوننت هنوز برای Svelte پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
این کامپوننت هنوز برای Angular پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
نمونهها
دکمهٔ منو
variant="secondary" دکمهٔ سفیدِ کادردار میدهد؛ معمولاً یک Drawer یا Sheet باز میکند.
این نمونه هنوز برای Vue پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Svelte پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Angular پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
ابزارهای گروهی
layout="tools" و showLabel؛ برچسب کنار آیکون معنای کار را بیابهام میکند.
این نمونه هنوز برای Vue پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Svelte پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Angular پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
تعداد کنشها
از یک تا چهار کنشِ آیکونی؛ بیشتر از چهار تا را به منوی «بیشتر» ببرید.
این نمونه هنوز برای Vue پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Svelte پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Angular پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
کدام نمونه برای کدام موقعیت
| نمونه | کجا به کار میآید |
|---|---|
| دکمهٔ منو | صفحهٔ نمایشِ سند یا فایل که اقدامِ ساختن ندارد |
| ابزارهای گروهی | صندوقِ پیام یا فهرستِ فایل بعد از انتخابِ چند مورد |
| تعداد کنشها | تصمیم دربارهٔ اینکه کدام کارها روی نوار بمانند |