更新记录
1.0.0(2026-07-05) 下载此版本
- Initial release
- Added reusable bottom navigation component
- Added scaffold container component
- Added configurable notch generation
- Added adaptive layout support
平台兼容性
uni-app(5.07)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | - | - | - | - | - | - | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
uni-app x(5.07)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| - | - | - | - | - | - |
其他
| 多语言 | 暗黑模式 | 宽屏模式 |
|---|---|---|
| × | × | √ |
Ryan Common Bottom Navigation
An iOS-style capsule bottom navigation component for uni-app, with a floating center action button, active pill background, scaffold container, safe-area support, and configurable notch geometry.
Exported component names:
RyanArcNotchBottomNavRyanArcNotchBottomNavScaffold
Components
ryan-arc-notch-bottom-navryan-arc-notch-bottom-nav-scaffold
Features
- Reusable bottom navigation for
uni-appprojects - Floating center action button with notch-matched shell
- Active capsule background that follows the selected tab
- Count badge and dot badge support
- Width-based responsive scaling for different device sizes
- Bottom safe-area handling for mini program and mobile devices
scaffoldwrapper for page-switching scenarios- Configurable shell notch and layout parameters
- Optional bottom offset for raising the whole navigation visually
Install
Plugin id:
arc-notch-bottom-nav
Place the module in:
uni_modules/arc-notch-bottom-nav
Basic Usage
<template>
<ryan-arc-notch-bottom-nav
:items="items"
:current-index="currentIndex"
:center-action="centerAction"
:layout="layout"
:bottom-offset="24"
@change="handleChange"
@centerTap="handleCenterTap"
/>
</template>
Scaffold Usage
<template>
<ryan-arc-notch-bottom-nav-scaffold
:items="items"
:pages="pages"
:current-index="currentIndex"
:center-action="centerAction"
:layout="layout"
:content-padding-bottom="232"
:bottom-offset="24"
@change="handleChange"
>
<template #page="{ page }">
<view class="page-content">
<text>{{ page.title }}</text>
</view>
</template>
</ryan-arc-notch-bottom-nav-scaffold>
</template>
Mini Program Notes
For mini program targets such as WeChat Mini Program:
- Use the
#pageslot to render page content. - Do not rely on Vue dynamic components like
<component :is="...">inside mini program templates. - The navigation automatically switches to
fixedpositioning whenabsoluteis enabled, so it stays above page content more reliably.
Item Format
[
{
id: 'bookshelf',
label: 'Bookshelf',
inactiveIcon: '/static/icons/book.svg',
activeIcon: '/static/icons/book-fill.svg',
badge: { type: 'count', value: 8 }
}
]
Page Format
[
{
title: 'Bookshelf',
description: 'Book shelf home',
icon: '/static/icons/book-fill.svg'
}
]
Props
ryan-arc-notch-bottom-nav
items: navigation item arrayvalue/currentIndex: active tab indexcenterAction: center button config objectshellInset: horizontal inset of the navigation shelltheme: color and background theme overrideslayout: size, spacing, notch, and scaling overridesbottomOffset: raises the whole navigation upward by the givenrpxabsolute: whether the navigation is positioned independently at the bottom
ryan-arc-notch-bottom-nav-scaffold
pages: page config arraycontentPaddingBottom: extra bottom padding reserved for content areabottomOffset: passes through to the inner navigationabsoluteNavigation: whether the navigation stays independently positioned
Events
inputupdate:currentIndexitemTapchangecenterTap
Layout Configuration
You can control the shell geometry and spacing through the layout prop:
layout: {
height: 172,
shellHeight: 124,
maxWidth: 702,
notchDepth: 10,
notchShoulderLeft: 139,
notchShoulderCurveLeft: 157,
notchArcStartX: 167,
notchArcEndX: 223,
notchShoulderCurveRight: 233,
notchShoulderRight: 251,
notchArcRadius: 38,
centerGap: 128,
centerButtonSize: 112
}
Increase notchDepth to make the center indentation deeper. Adjust bottomOffset, shellInset, and contentPaddingBottom together when fine-tuning the example layout.
Visual Notes
- The shell shadow has been removed from the default asset for a cleaner bottom edge.
- The component accounts for bottom safe area insets automatically.
- On narrow devices, the navigation scales from the actual rendered width rather than a fixed minimum ratio.
Optional Static Asset
If you prefer a static shell background image instead of generated SVG, use:
uni_modules/arc-notch-bottom-nav/static/nav-shell.svg

收藏人数:
https://github.com/ryanByte1024/uniapp-arc-notch-bottom-nav
下载插件并导入HBuilderX
赞赏(0)
下载 0
赞赏 0
下载 12389171
赞赏 1928
赞赏
京公网安备:11010802035340号