Aside Header

headerDecoration
multipleTooltip
subheaderItemsVisible

AsideHeader 在您的应用程序中提供灵活且可自定义的导航体验。 用户可以轻松自定义侧边栏的外观以匹配其品牌颜色,还可以添加个性化链接,这些图标专门针对其应用程序的功能。

该组件为创建直观且具有视觉吸引力的导航系统提供了强大的解决方案,增强了用户体验,同时提供了适应各种用例的灵活性。

import {AsideHeader} from '@gravity-ui/navigation';

该组件有两种可能的状态:折叠、展开。 你可以使用 onChangeCompact 道具在状态之间进行管理 compact ,也可以使用隐藏按钮。 hideCollapseButton

顶部装饰

导航使用 headerDecoration 道具突出显示带有徽标和副标题项的顶部区域。

自定义背景

该组件支持特定的主题化案例,例如背景上的图像或按颜色分割部分——使用 customBackground customBackgroundClassName props。

章节

导航包括 3 个部分:顶部、中间和底部。这些部分相似,但根据频率用户案例的不同,可能性有所不同。 重要注意事项:用户管理元素的状态。

顶部

该部分通常包含所有网站页面的通用元素,并包括徽标及其下方的元素。可点击的徽标可用于快速导航到主页,必要时将元素(例如搜索、目录)放在主页下方。

这些元素可以访问工具提示、弹出窗口、抽屉,在配置此部分时选择所需的行为就足够了。

中间(菜单项目)

主要部分通常取决于页面的上下文——这是在多页网站上使用导航的示例之一。 如果默认情况下没有垂直空间,则元素将折叠成三个点。

导航元素可以处于以下两种状态之一:折叠(isCollassed)(其中只有图标可见)和展开。有一些空间可以通过包装器对整个物品进行自定义。

通过其他配置, AllPages 用户可以通过隐藏不必要的项目来根据自己的喜好进一步自定义菜单。这为物品带来了新的状态-已固定/隐藏。如果项目已固定,它将始终显示在该分区中。

要添加额外的组件, All Pages 该组件显示用于编辑可见菜单项列表的面板,则需要 onMenuItemsChanged 回调。

重要注意事项:用户管理他们从回调中收到的菜单项的修改列表,并向其提供项目的新状态 AsideHeader

底部

页脚通过提供对元素和补充资源的便捷访问来改善用户体验。它提供了与支持人员联系的机会,添加自定义信息,以确保用户不会迷路。

里面可以有自己的组件,也可以使用 FooterItem

突出显示元素

当用户想要通过反馈表单报告错误并且存在错误的表单在模态窗口中打开时,在模态窗口上突出显示元素会很有用。

FooterItem 组件中,你可以传递一个 bringForward 道具,它将图标呈现在模态窗口上方。此外,你需要向传递一个函数 AsideHeader ,该函数将通知模态窗口的打开。

渲染内容

靠近 AsideHeader 的右边是存放主页内容的地方。 展开和折叠导航时,导航 size 将发生变化。这些知识可能会有所帮助,例如重新计算某些组件的布局。 CSS 变量 --gn-aside-header-size 包含实际的导航大小。

有关渲染内容的替代路径,请参见下文。

渲染优化

如果你的应用内容需要比传递投掷 AsideHeader 道具更快的渲染速度, 您可能需要使用将的使用切换 AsideHeader 到高级样式 PageLayout

属性

姓名描述类型默认
className徽标 class 的 HTML 属性string
collapseTitleCollapseButton 折叠导航的标题string"Свернуть" "Collapse"
紧凑的导航视觉状态booleanfalse
customBackgroundAsideHeader 背景React.ReactNode
customBackgroundClassName覆盖默认背景容器的样式string
expandTitleCollapseButton 扩展导航的标题string"Развернуть" "Expand"
headerDecoration带有徽标和副标题项目的顶部区域的彩色背景booleanfalse
hideCollapseButton躲起来 CollapseButton。使用 compact prop 设置默认导航状态booleanfalse
商标徽标容器包括图标、标题、操作点击次数Logo
menuItems导航中间部分中的项目数组<MenuItem>[]
menuMoreTitle如果元素不合适,则为 menuItems 添加其他元素标题string"Ещё" "More"
multipleTooltip通过将鼠标悬停在折叠状态下的 MenuItems 元素来显示多个工具提示booleanfalse
onChangeCompact更改导航视觉状态时将调用回调(compact: boolean) => void;
onClosePanel关闭面板时将调用回调。你可以通过 PanelItems prop 添加面板() => void;
onMenuItemsChanged更新菜单项列表时将调用回调 AllPagesPanel(物品:数组<MenuItem>) => 空白
onMenuMoreClick当某些物品不合适,点击 “更多” 按钮时,将调用回调() => void;
onAllPagesClick点击 “所有页面” 按钮时将调用回调() => void;
openModalSubscriber函数通知模 AsideHeader 态的可见性变化( (open: boolean) => void) => void
panelItemsDrawer 组件的物品。用于显示主要内容之上的其他信息数组<DrawerItem>[]
renderContent在右侧呈现主要内容的函数 AsideHeader(data: {size: number}) => React.ReactNode
renderFooter渲染导航底部部分的函数(data: {size: number}) => React.ReactNode
参考ref 瞄准弹出窗口锚点react.forwardedRef<HTMLDivElement, AsideHeaderProps>
subheaderItems徽标下方导航顶部的项目数组<{item: MenuItem; enableTooltip?: boolean; bringForward?: boolean}>[]
topAlert导航上方的容器基于 uikit 组件 AlertTopAlert
qa要传递给 AsideHeader 容器 data-qa 属性的值string
姓名描述类型默认
afterMoreButton菜单项将放在最后,即使项目不合适boolean
类别菜单项所属的类别。需要在所有页面的显示/编辑模式下进行分组string"Остальное" "All other"
当前的当前/所选项目booleanfalse
隐藏菜单中的可见性项目booleanfalse
图标基于 uikit 组件 Icon 的菜单图标IconProps['data']
iconSize菜单图标大小number string18
iconQa要传递给 Icon 容器 data-qa 属性的值string
id菜单项 IDstring
itemWrapper菜单项包装器ItemWrapper
链接HTML href 属性string
onItemClick点击项目时将调用回调(项目:menuItem,折叠:布尔值,事件:react.mouseEvent<HTMLDivElement, MouseEvent>) = 无效>
onItemClickCapture点击项目时将调用回调 (event: React.SyntheticEvent) => void
订购确定导航中的显示顺序number
固定该参数限制在中隐藏菜单项 AllPagesPanelbooleanfalse
rightAdornment自定义菜单项的右侧React.ReactNode
标题菜单项的标题React.ReactNode
tooltipText工具提示内容React.ReactNode
类型菜单项类型更改外观: "regular""action""divider"string"regular"
qa要传递给 data-qa 属性的值string

TopAlert

Top Alert 可用于显示用户需要了解的重要信息。此警报通常出现在所有页面,例如号召性用语或警告。

您可以自定义内部内容,必要时可关闭警报。要读取最高警报高度,请参阅 CSS 变量的值 --gn-top-alert-height

姓名描述类型默认
行动按钮数组或全自定义组件AlertActions
中心将所有内容置于中心位置booleanfalse
对齐确定警报组件内部内容的垂直对齐方式AlertAlign"baseline"
可关闭显示关闭按钮即可传递 onCloseTopAlert 道具booleanfalse
密集向容器添加顶部、底部填充物 TopAlertbooleanfalse
图标覆盖默认图标AlertIcon
消息警报消息AlertMessage
onCloseTopAlert点击关闭按钮时将调用回调() => void
标题警报的标题AlertTitle
主题警报外观AlertTheme"warning"
观点启用/禁用警报的背景颜色AlertView"filled"

CSS API

姓名描述
--gn-aside-header-decoration-collapsed-background-color折叠导航的装饰颜色
--gn-aside-header-decoration-expanded-background-color用于扩展导航的装饰颜色
--gn-aside-header-background-color导航背景颜色
--gn-aside-header-collapsed-background-color折叠的导航背景颜色
--gn-aside-header-expanded-background-color扩展的导航背景颜色
--gn-aside-header-divider-horizontal-color所有水平分隔线的颜色
--gn-aside-header-divider-vertical-colorAsideHeader 和内容之间的垂直分隔线颜色
--gn-top-alert-height只读AsideHeader 最高警报高度
--gn-aside-header-padding-top导航顶部边距。隐藏徽标和副标题项时可能会有所帮助
物品
--gn-aside-header-general-item-icon-color副标题和页脚项目的图标颜色
--gn-aside-header-item-icon-colorCompositeBar 项目的图标颜色
--gn-aside-header-item-text-color文本项目颜色
--gn-aside-header-item-background-color-hover鼠标悬停时的文字颜色
当前项目
--gn-aside-header-item-current-background-color当前项目的背景颜色
--gn-aside-header-item-current-icon-color当前项目的图标颜色
--gn-aside-header-item-current-text-color当前项目的文字颜色
--gn-aside-header-item-current-background-color-hover悬停时当前项目的图标颜色
--gn-aside-header-item-collapsed-radius折叠导航的项目边框半径
--gn-aside-header-item-expanded-radius用于扩展导航的物品边框半径
z 索引
--gn-aside-header-z-index旁边标题 z-index
--gn-aside-header-panel-z-index侧边标题面板(抽屉组件)z-index
--gn-aside-header-pane-top-z-index顶部窗格 z-index
--gn-aside-header-content-z-index内容(右侧部分)z-index