@bbc/psammead-navigation

中文文档
9.2.22发布于 2022/04/13Apache-2.0ESM + CJS近 30 天下载 4500

用于索引页面的导航栏

中文使用文档
文档目录22 节
  1. 说明
  2. 出口
  3. 安装
  4. 道具
  5. 导航
  6. 导航Ul
  7. 导航Li
  8. 可滚动导航
  9. Canonical Dropdown (美国)
  10. 向下倾斜
  11. 滴滴下来的Li
  12. 巨型金属按钮
  13. AMP 菜单
  14. 导航使用
  15. 降下导航使用
  16. Canonical 菜单按钮使用
  17. Amp 菜单按钮使用
  18. 何时使用此组件
  19. 无障碍说明
  20. 捐款
  21. 行为守则
  22. 许可证

闪电导航 Known Vulnerabilities Dependency Status peerDependencies Status Storybook GitHub license npm version PRs Welcome

说明

这个 @bbc/psammead-navigation 软件包是一组两个组件, NavigationUl 财务报告和审定财务报表 NavigationLi它们使用 ul 财务报告和审定财务报表 li 分别是HTML元素. 该包还包括一个汉堡菜单和一个下行导航,对于600px以下的断点可见.

出口

/dropdown - 在600px以下的断点上,添加带有汉堡菜单的下拉导航 /scrollable - 使导航在600px下可滚动.

安装

npm install @bbc/psammead-navigation

道具

导航

参数类型需求默认示例
儿童节点对不详<ScrollableNavigation dir={dir}><NavigationUl><NavigationLi url="/" script={latin} active="true">Home</NavigationLi><NavigationLi url="/sport" script={latin}>{Sport}</NavigationLi></NavigationUl><ScrollableNavigation/>
目录字符串没有'ltr''rtl'
打开布尔没有falsetrue
mp Open分类字符串没有null'open'
品牌背景颜色字符串对不详'#B80000'
品牌前景颜色字符串对不详'#FDFDFD'
品牌边界颜色字符串对不详'#EAB3B3'
品牌高亮颜色字符串是 否不详'#FFFFFF'

导航Ul

参数类型需求默认示例
儿童节点对不详<NavigationLi url="/" script={latin} active="true">Home</NavigationLi><NavigationLi url="/sport" script={latin}>{Sport}</NavigationLi>

导航Li

参数类型需求默认示例
url 密码字符串对不详/sport
脚本对象对不详{ canon: { groupA: { fontSize: '28', lineHeight: '32',}, groupB: { fontSize: '32', lineHeight: '36', }, groupD: { fontSize: '44', lineHeight: '48', }, }, trafalgar: { groupA: { fontSize: '20', lineHeight: '24', }, groupB: { fontSize: '24', lineHeight: '28', }, groupD: { fontSize: '32', lineHeight: '36', }, }, }
活动布尔没有falsetrue
当前 页面文本字符串没有nullCurrent page
服务字符串对不详'news'
目录字符串没有'ltr''rtl'
品牌前景颜色字符串对不详'#FDFDFD'
品牌边界颜色字符串对不详'#EAB3B3'
品牌高亮颜色字符串是 否不详'#FFFFFF'

可滚动导航

参数类型需求默认示例
儿童节点对不详<NavigationUl><NavigationLi url="/" script={latin} active="true">Home</NavigationLi><NavigationLi url="/sport" script={latin}>{Sport}</NavigationLi></NavigationUl>
目录字符串没有'ltr''rtl'
品牌背景颜色字符串对不详'#B80000'
品牌高亮颜色字符串是 否不详'#FFFFFF'

Canonical Dropdown (美国)

参数类型需求默认示例
儿童节点对不详<DropdownUl><DropdownLi script={latin} service='news' key='sport' url='/sport' active="false"> Sport </DropdownLi></DropdownUl>
打开嘘对不详false

向下倾斜

参数类型需求默认示例
儿童节点对不详<DropdownUl><DropdownLi script={latin} service='news' key='sport' url='/sport' active="false"> Sport </DropdownLi></DropdownUl>

滴滴下来的Li

参数类型需求默认示例
儿童字符串对不详'Sport'
url 密码字符串对不详/sport
脚本对象对不详{ canon: { groupA: { fontSize: '28', lineHeight: '32',}, groupB: { fontSize: '32', lineHeight: '36', }, groupD: { fontSize: '44', lineHeight: '48', }, }, trafalgar: { groupA: { fontSize: '20', lineHeight: '24', }, groupB: { fontSize: '24', lineHeight: '28', }, groupD: { fontSize: '32', lineHeight: '36', }, }, }
服务字符串对不详'news'
活动布尔没有falsetrue
当前 页面文本字符串没有nullCurrent page
目录字符串没有ltrrtl

巨型金属按钮

参数类型需求默认示例
已宣布文本字符串对不详'Menu'
点击函数对不详() => { console.log("Handle onClick action"); }
打开嘘对不详false
目录字符串没有'ltr''rtl'
脚本对象对不详{ canon: { groupA: { fontSize: '28', lineHeight: '32',}, groupB: { fontSize: '32', lineHeight: '36', }, groupD: { fontSize: '44', lineHeight: '48', }, }, trafalgar: { groupA: { fontSize: '20', lineHeight: '24', }, groupB: { fontSize: '24', lineHeight: '28', }, groupD: { fontSize: '32', lineHeight: '36', }, }, }

AMP 菜单

参数类型需求默认示例
已宣布文本字符串对不详'Menu'
切换字符串对不详"menu.toggleVisibility" - 必须是一个有效的AMP目标的行动
目录字符串没有'ltr''rtl'
脚本对象对不详{ canon: { groupA: { fontSize: '28', lineHeight: '32',}, groupB: { fontSize: '32', lineHeight: '36', }, groupD: { fontSize: '44', lineHeight: '48', }, }, trafalgar: { groupA: { fontSize: '20', lineHeight: '24', }, groupB: { fontSize: '24', lineHeight: '28', }, groupD: { fontSize: '32', lineHeight: '36', }, }, }

导航使用

import React from 'react';
import { ScrollableNavigation } from '@bbc/psammead-navigation/scrollable';
import Navigation, {
  NavigationUl,
  NavigationLi,
} from '@bbc/psammead-navigation';
import { latin } from '@bbc/gel-foundations/scripts';

<Navigation
  brandBackgroundColour='#B80000'
  brandForegroundColour='#FDFDFD'
  brandBorderColour='#EAB3B3'
  brandHighlightColour='#FFFFFF'
>
  <ScrollableNavigation
    brandBackgroundColour='#B80000'
    brandHighlightColour='#FFFFFF'
  >
    <NavigationUl>
      <NavigationLi
        url="/"
        script={latin}
        active
        currentPageText="Current Page"
        service="news"
        brandForegroundColour='#FDFDFD'
        brandBorderColour='#EAB3B3'
        brandHighlightColour='#FFFFFF'
      >
        Home
      </NavigationLi>
      <NavigationLi
        url="/sport"
        script={latin}
        service="news"
        brandForegroundColour='#FDFDFD'
        brandBorderColour='#EAB3B3'
        brandHighlightColour='#FFFFFF'
      >
        {Sport}
      </NavigationLi>
      <NavigationLi
        url="/weather"
        script={latin}
        service="news"
        brandForegroundColour='#FDFDFD'
        brandBorderColour='#EAB3B3'
        brandHighlightColour='#FFFFFF'
      >
        {Weather}
      </NavigationLi>
    </NavigationUl>
  </ScrollableNavigation>
</Navigation>;

降下导航使用

import React from 'react';
import {
  Dropdown,
  DropdownUl,
  DropdownLi,
} from '@bbc/psammead-navigation/dropdown';
import { latin } from '@bbc/gel-foundations/scripts';

<CanonicalDropdown isOpen={isOpen}>
  <DropdownUl>
    <DropdownLi
      script={latin}
      service="news"
      key="Home"
      url="/"
      active
      currentPageText="Current page"
    >
      Home
    </DropdownLi>
    <DropdownLi script={latin} service="news" key="Sport" url="/sport">
      Sport
    </DropdownLi>
  </DropdownUl>
</CanonicalDropdown>

Canonical 菜单按钮使用

import React from 'react';
import { CanonicalMenuButton } from '@bbc/psammead-navigation/dropdown';
import { latin } from '@bbc/gel-foundations/scripts';

<CanonicalMenuButton
  announcedText="Menu"
  isOpen
  dir={dir}
  onClick={() => {
    console.log('Handle onClick action');
  }}
  script={latin}
/>

Amp 菜单按钮使用

import React from 'react';
import { AmpMenuButton } from '@bbc/psammead-navigation/dropdown';
import { latin } from '@bbc/gel-foundations/scripts';

<AmpMenuButton
  announcedText="Menu"
  onToggle="menu.toggleVisibility"
  script={latin}
  dir={dir}
/>

注意: AmpMenuButton 想要正确工作,一个 id 应添加到 Navigation 组件。 这个 id 可以作为道具传递给组件. 同样, ScrollableNavigation 还要求 id 将被加入其中.

何时使用此组件

这个 Navigation 它旨在显示所有页面上的导航栏,它将显示一个站点上的所有部分。 如果一行有太多的项目适合,则项目会被包到下一行.

另一方面,与 ScrollableNavigation 我们可以把清单放在一条线上, 横向滚动, 允许访问更多链接, 低于600px.

无障碍说明

导航系统有一个 navigation 标志 以提供一种方法来识别用于导航的链接.

我们增加了这个角色 list 财务报告和审定财务报表 listitem 页:1 NavigationUl 财务报告和审定财务报表 NavigationList ,分别由于一个语音Overbug来恢复列表语义.

我们还增加了可视化隐藏文本,让用户知道在正则和下行导航中哪个项目是当前页面. 注意此处使用可视化隐藏文本是因为此时缺乏对aria-current页面属性的支持. 也注意到使用 role="text" 停止在Voice Over中分割文本.

我们增加了一个 aria-expanded 属性到菜单按钮,以指示菜单是崩溃还是扩展.

捐款

Psammead完全开源. 我们感谢任何贡献,无论是新的组件、错误修正还是总体改进。 请参看我们的主要贡献指南,可查阅: psammead 仓库的根。 。 。 .

行为守则

我们欢迎对这项工作的反馈和帮助。 通过参与这个项目,你同意遵守 行为守则请稍候再读一下.

许可证

萨姆米德 Apache 2.0 许可。 。 。 .

版本与发布记录

@bbc/psammead-navigation 共发布 151 个版本,首次发布于 2019/06/25;过去 12 个月发布了 0 个版本。

版本发布日期距今
9.2.22latest2022/04/134 年前
9.2.212022/04/084 年前
9.2.202022/03/304 年前
9.2.192022/03/294 年前
9.2.182022/03/284 年前
9.2.172022/01/064 年前

其他发布通道:alpha → 7.0.0-alpha.0。

关于 @bbc/psammead-navigation 的常见问题

@bbc/psammead-navigation 是什么?

用于索引页面的导航栏

如何安装 @bbc/psammead-navigation?

在项目目录运行 npm install @bbc/psammead-navigation,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(>=16.9.0)、prop-types(^15.7.2)、@emotion/styled(^11.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@bbc/psammead-navigation 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/bbc__psammead-navigation 是否存在。

@bbc/psammead-navigation 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@bbc/psammead-navigation 可以商用吗?

@bbc/psammead-navigation 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@bbc/psammead-navigation 的下载量有多少?

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

@bbc/psammead-navigation 还在维护吗?

最新版本 9.2.22 发布于 2022/04/13(4 年前);至今共发布 151 个版本,其中过去 12 个月发布了 0 个;首次发布于 2019/06/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。