@avament-pub/navbar-ui

中文文档
0.6.5发布于 2026/10/30MITTypeScriptES Module近 30 天下载 2369

自成一体的 Avament navbar UI 用于 react / Next.js apps (包括嵌入式支持创建报告)

中文使用文档
文档目录14 节
  1. 目录
  2. 1. 安装
  3. 2. 快速启动
  4. 3. 布局结构
  5. 4. 地物标志
  6. 5. 项目取取器模式
  7. 6. 标识
  8. 7. 天气
  9. 8. 朗/主题
  10. 9. 主机约束清单
  11. 10. 主机档
  12. 11. 拉特里语
  13. 12. 主题/CSS
  14. 13. 出口

@avament-pub/navbar-ui

自成一体 Avament 导航 用于 react / Next.js apps - 否 @/ 进口,没有商店,没有API电话。 主机提供标签,路线,项目数据和主题CSS.

软件包@avament-pub/navbar-ui
反应第18条(同级)
依赖性lucide-react
许可证麻省理工学院

目录

  1. 安装
  2. 快开始
  3. 布局结构
  4. 地物标志
  5. 项目拾取模式
  6. 标记
  7. 天气
  8. 朗/ 主题
  9. 主机约束清单
  10. 主机插槽
  11. 拉特
  12. 主题 / CSS
  13. 出口

1. 安装

npm install @avament-pub/navbar-ui
yarn add @avament-pub/navbar-ui
pnpm add @avament-pub/navbar-ui

所需资源

  • 反应 18+ / 反应 DOM 18+
  • Next.js App路由器中的客户端组件("use client" 包含在捆绑中)

可选( Next.js App 路由器) :

transpilePackages: ["@avament-pub/navbar-ui"];

2. 快速启动

import { Navbar } from "@avament-pub/navbar-ui";
import Link from "next/link";

<Navbar
  pathname={pathname}
  dir="ltr"
  labels={{ selectAProject: "Select a project", /* … */ }}
  routes={{
    home: "https://avament.com/home",
    settings: "/settings",
    support: "https://support.avament.com",
  }}
  logo={{ src: "/logos/main.svg", href: "https://avament.com/home" }}
  projectPicker={{
    mode: "interactive",
    selectedProjectId,
    selectedProjectName,
    projects,
    onSelect: handleProjectSelect,
  }}
  LinkComponent={Link}
/>

3. 布局结构

主要场地和分场地共享 一个条形结构. 软件包拥有放置——只接收有线道具.

桌面( 固定顺序) :

左边对
导航动作 ^ 选择在拾取器旁 ^ 项目拾取器· 语言 trailingSlot • 妇女 标志

天气让 居中 在栏(桌面) features.weather 在主家布局上启用.

导航动作 取决于 layout +页:

模式左侧图标
家庭主户layout="default", (中文(简体) ), /home(中文(简体) )支持 ・ 设置
主要内页回到 \ 设置 \ 家
分站点(layout="submodule"(中文(简体) )回到 \ 设置 \ 家
子模块 + features.support: true后 支持 / 设置 / 家
离家 + supportCreate 或者说 onSupportClick支持打开 in-app 创建对话框; 家保存 routes.support 链接

可选项目选择器 (左组,取取取者前:

  1. moduleLabel ——避孕药标签(如:. "AVAMENT-Intern"(中文(简体) )
  2. context - 外部/内部分块控制
  3. projectPickerLeadingSlot 任何自定义用户界面
// Main website (home)
<Navbar
  pathname="/home"
  isHomeLayout
  features={{ weather: true, support: true }}
  projectPicker={{ mode: "interactive", … }}
  weather={forecast}
  logo={logo}
  /* … */
/>

// Sub-site (ticket, check, …)
<Navbar
  layout="submodule"
  pathname={pathname}
  moduleLabel="AVAMENT-Intern"
  context={{
    value: visibility,
    onChange: setVisibility,
    options: [
      { value: "external", label: "External" },
      { value: "internal", label: "Internal" },
    ],
  }}
  projectPicker={{ mode: "interactive", … }}
  features={{ langTheme: true }}
  langTheme={{ language, onLanguageChange, theme, onThemeChange, isDarkMode }}
  trailingSlot={<CreateTicketButton />}
  onBack={() => {
    if (pathname === "/") window.location.href = routes.landing ?? "https://avament.com";
    else router.back();
  }}
  /* …labels, routes, logo, LinkComponent */
/>

trailingSlot数字 : 标识前只应用动作(创建批次,创建票).

使用 contextSlot 或者说 projectPickerLeadingSlot 仅当内置选项不够时.


4. 地物标志

Prop默认效果
features.weatherfalse中心天气带(桌面、家庭布局)
features.support主家:是;子模块:否(设置) true 显示)导航行动中的头像支持链接
features.supportCreatefalse离家: 嵌入式支持创建对话框( API from) NEXT_PUBLIC_BASE_URL 编号 : NEXT_PUBLIC_API_URL, SSO cookie; 需要重新查询 + i18n)
supportCreate—— 说可选覆盖( N)createDialogTitle, (中文(简体) ), onOpenChange, ) 当 features.supportCreate 开始
onSupportClick—— 说离家:手动耳机处理器(覆盖) supportCreate 当两个设定时单击)
features.langThemefalse语言+主题拾取器(桌面)
features.topicPillfalse仅读主题药丸
features.actionstrue设置 / home/ back 图标

5. 项目取取器模式

模式用户
interactive以可点击的切夫龙下拉
readonly只有标签——没有切夫龙,不能点击
hidden未执行
projectPicker={{
  mode: "readonly",
  selectedProjectId: "uuid",
  selectedProjectName: "Project Alpha",
}}

静态 :

logo={{ src: "/logos/check.svg", href: "https://check.avament.com", alt: "Check" }}

动态 :

logo={{
  resolve: ({ pathname }) => ({
    src: pathname.startsWith("/check") ? "/logos/check.svg" : "/logos/main.svg",
    href: pathname === "/home" ? "https://avament.com/landing" : "https://avament.com/home",
  }),
}}

7. 天气

主机获取数据; UI 只制作 :

features={{ weather: true }}
weather={{
  days: forecast.days,
  locationLabel: forecast.locationLabel,
  timezone: forecast.timezone,
  locale: "de",
}}

8. 朗/主题

受控拾取器——主机持续变化:

features={{ langTheme: true }}
langTheme={{
  language: "de",
  onLanguageChange: (lang) => updateSettings({ language: lang }),
  theme: "dark",
  onThemeChange: (theme) => updateSettings({ theme }),
  isDarkMode: true,
}}

9. 主机约束清单

  1. 过 labels 从您的 i18n (t() • 目标)。 见 REQUIRED_NAVBAR_LABEL_KEYS 编号 : OPTIONAL_NAVBAR_LABEL_KEYS 出口.
  2. 线 projectPicker.onSelect 您的认证/ 工程切换流 .
  3. 过 navigationBlocked 当未保存/进口/编辑的警卫活动时.
  4. 提供 LinkComponent (续) Link)或使用 onNavigate 还有你的路由器.
  5. 执行 onBack 对后扣行为.
  6. 包含主题 CSS( 见 主题 / CSS) (中文(简体) ).

10. 主机档

Prop使用
moduleLabel在项目拾取器旁建有避孕药
context外部/内部分区控制
projectPickerLeadingSlot自定义工程拾取器旁的 UI
trailingSlot标识前的 App 动作( 创造票等)

11. 拉特里语

过 dir="rtl" 当应用语言是阿拉伯语(或任何RTL语言)时:

<Navbar dir={locale === "ar" ? "rtl" : "ltr"} /* … */ />

软件包自动映射了栏:

  • 左组 (动作+取出项目) 视觉 对
  • 右组 (朗语/主题+标志) 视觉 左边
  • 天气 保持中心状态
  • 降水量与触发器一致 内置启动 边缘
  • 在 RTL 中后箭头图标翻转

项目拾取器文本和菜单继承 dir 从导航站。 天气温度不变 dir="ltr" 数字可读性.


12. 主题/CSS

此软件包使用 提供 Tailwind 主题公用事业。您的应用程序必须定义 :

  • bg-theme, (中文(简体) ), border-theme, (中文(简体) ), surface-theme, (中文(简体) ), text-theme-primary
  • hover:bg-input-theme, (中文(简体) ), bg-theme-surface, (中文(简体) ), border-theme-border
  • --input-border-color CSS 变量
  • animate-project-picker-pulse 键框动画
  • shadow-glass, (中文(简体) ), shadow-glass-dark (可选,指降水/人流)

没有这些类,导航器会变形 但看起来没有风格.

支持创建对话框 (单位:千美元)features.supportCreate: 主题 CSS 导入自 @avament-pub/navbar-ui。可选的手动导入 : @avament-pub/navbar-ui/styles.css。主机应用程序应当定义 --surface-color, (中文(简体) ), --text-primary-color, (中文(简体) ), --input-border-color,以及相关的令牌(见协议/ticket应用).


13. 出口

// Components
export { Navbar, NavDropdown, WeatherForecastWidget, ProjectPicker, LangPicker, ThemePicker, NavbarSegmentedControl };

// Constants
export { NAV_ICON_SIZE, navIconButtonClass, navIconButtonClassNoMargin, DEFAULT_LANGUAGE_OPTIONS };
export { REQUIRED_NAVBAR_LABEL_KEYS, OPTIONAL_NAVBAR_LABEL_KEYS };

// Types
export type {
  NavbarProps,
  NavbarLayout,
  NavbarContextControl,
  NavbarContextOption,
  NavbarFeatures,
  NavbarRoutes,
  NavbarLabels,
  NavbarLogoConfig,
  NavbarProject,
  NavbarProjectPicker,
  NavbarWeather,
  NavbarWeatherDay,
  NavbarLangTheme,
  NavbarTheme,
  NavbarLinkComponent,
  ProjectPickerMode,
};

版本与发布记录

@avament-pub/navbar-ui 共发布 18 个版本,首次发布于 2026/10/03;过去 12 个月发布了 18 个版本。

版本发布日期距今
0.6.5latest2026/10/308 天前
0.6.42026/10/309 天前
0.6.32026/10/2811 天前
0.6.22026/10/2811 天前
0.6.12026/10/2811 天前
0.6.02026/10/2811 天前

关于 @avament-pub/navbar-ui 的常见问题

@avament-pub/navbar-ui 是什么?

自成一体的 Avament navbar UI 用于 react / Next.js apps (包括嵌入式支持创建报告)

如何安装 @avament-pub/navbar-ui?

在项目目录运行 npm install @avament-pub/navbar-ui,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:clsx(>=2.0.0)、axios(>=1.6.0)、react(>=18)、i18next(>=23.0.0)、date-fns(>=3.0.0)、react-dom(>=18)、lucide-react(>=0.400.0)、react-i18next(>=14.0.0)、tailwind-merge(>=2.0.0)、react-day-picker(>=9.0.0)、@avament-pub/select(>=0.3.0)、@radix-ui/react-slot(>=1.2.0)、@radix-ui/react-label(>=2.1.0)、@tanstack/react-query(>=5.0.0)、@radix-ui/react-dialog(>=1.1.0)、@radix-ui/react-select(>=2.2.0)、@radix-ui/react-popover(>=1.1.0)、@radix-ui/react-checkbox(>=1.1.0)、class-variance-authority(>=0.7.0)、@avament-pub/color-picker(>=0.1.0)、@avament-pub/image-editor(>=0.1.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@avament-pub/navbar-ui 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@avament-pub/navbar-ui 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@avament-pub/navbar-ui 可以商用吗?

@avament-pub/navbar-ui 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@avament-pub/navbar-ui 的下载量有多少?

根据 npm 官方下载统计,@avament-pub/navbar-ui 在 2026/10/07 – 2026/11/05 这 30 天内被下载 2,369 次,日均约 79 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@avament-pub/navbar-ui 还在维护吗?

最新版本 0.6.5 发布于 2026/10/30(8 天前);至今共发布 18 个版本,其中过去 12 个月发布了 18 个;首次发布于 2026/10/03。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。