窗口的顶部
顶部栏是一个头部组件,允许商家通过点击logo进行搜索、访问菜单和导航。它总是在Shopify或Shopify Plus等界面的顶部可见。使用顶部栏的第三方应用程序可以自定义颜色以匹配其品牌应用提供商组件,并要求使用自己的标识。
用于为应用程序的顶部提供结构。使用带有主题的应用程序提供程序组件样式化顶部栏组件。只提供背景
顶部栏组件主题的键将导致智能默认设置为互补色与对比文本。
进口跨度><跨度class="token punctuation">{跨度>TopBar<跨度class="token punctuation">,跨度>ActionList<跨度class="token punctuation">,跨度>图标<跨度class="token punctuation">,跨度>VisuallyHidden<跨度class="token punctuation">,跨度>框架<跨度class="token punctuation">,跨度><跨度class="token punctuation">}跨度><跨度class="token keyword">从跨度><跨度class="token string">“@shopify /北极星”跨度><跨度class="token punctuation">;跨度><跨度class="token keyword">进口跨度><跨度class="token punctuation">{跨度>ArrowLeftMinor<跨度class="token punctuation">,跨度>QuestionMarkMajor<跨度class="token punctuation">}跨度><跨度class="token keyword">从跨度><跨度class="token string">“@shopify / polaris-icons”跨度><跨度class="token punctuation">;跨度><跨度class="token keyword">进口跨度><跨度class="token punctuation">{跨度>useState<跨度class="token punctuation">,跨度>useCallback<跨度class="token punctuation">}跨度><跨度class="token keyword">从跨度><跨度class="token string">“反应”跨度><跨度class="token punctuation">;跨度><跨度class="token keyword">函数跨度><跨度class="token function">TopBarExample跨度><跨度class="token punctuation">(跨度><跨度class="token punctuation">)跨度><跨度class="token punctuation">{跨度><跨度class="token keyword">常量跨度><跨度class="token punctuation">[跨度>isUserMenuOpen<跨度class="token punctuation">,跨度>setIsUserMenuOpen<跨度class="token punctuation">]跨度><跨度class="token operator">=跨度><跨度class="token function">useState跨度><跨度class="token punctuation">(跨度><跨度class="token boolean">假跨度><跨度class="token punctuation">)跨度><跨度class="token punctuation">;跨度><跨度class="token keyword">常量跨度><跨度class="token punctuation">[跨度>isSecondaryMenuOpen<跨度class="token punctuation">,跨度>setIsSecondaryMenuOpen<跨度class="token punctuation">]跨度><跨度class="token operator">=跨度><跨度class="token function">useState跨度><跨度class="token punctuation">(跨度><跨度class="token boolean">假跨度><跨度class="token punctuation">)跨度><跨度class="token punctuation">;跨度><跨度class="token keyword">常量跨度><跨度class="token punctuation">[跨度>isSearchActive<跨度class="token punctuation">,跨度>setIsSearchActive<跨度class="token punctuation">]跨度><跨度class="token operator">=跨度><跨度class="token function">useState跨度><跨度class="token punctuation">(跨度><跨度class="token boolean">假跨度><跨度class="token punctuation">)跨度><跨度class="token punctuation">;跨度><跨度class="token keyword">常量跨度><跨度class="token punctuation">[跨度>searchValue<跨度class="token punctuation">,跨度>setSearchValue<跨度class="token punctuation">]跨度><跨度class="token operator">=跨度><跨度class="token function">useState跨度><跨度class="token punctuation">(跨度><跨度class="token string">”跨度><跨度class="token punctuation">)跨度><跨度class="token punctuation">;跨度><跨度class="token keyword">常量跨度>toggleIsUserMenuOpen<跨度class="token operator">=跨度><跨度class="token function">useCallback跨度><跨度class="token punctuation">(跨度><跨度class="token punctuation">(跨度><跨度class="token punctuation">)跨度><跨度class="token operator">= >跨度><跨度class="token function">setIsUserMenuOpen跨度><跨度class="token punctuation">(跨度><跨度class="token punctuation">(跨度><跨度class="token parameter">isUserMenuOpen跨度><跨度class="token punctuation">)跨度><跨度class="token operator">= >跨度><跨度class="token operator">!跨度>isUserMenuOpen<跨度class="token punctuation">)跨度><跨度class="token punctuation">,跨度><跨度class="token punctuation">[跨度><跨度class="token punctuation">]跨度><跨度class="token punctuation">,跨度><跨度class="token punctuation">)跨度><跨度class="token punctuation">;跨度><跨度class="token keyword">常量跨度>toggleIsSecondaryMenuOpen<跨度class="token operator">=跨度><跨度class="token function">useCallback跨度><跨度class="token punctuation">(跨度><跨度class="token punctuation">(跨度><跨度class="token punctuation">)跨度><跨度class="token operator">= >跨度><跨度class="token function">setIsSecondaryMenuOpen跨度><跨度class="token punctuation">(跨度><跨度class="token punctuation">(跨度><跨度class="token parameter">isSecondaryMenuOpen跨度><跨度class="token punctuation">)跨度><跨度class="token operator">= >跨度><跨度class="token operator">!跨度>isSecondaryMenuOpen<跨度class="token punctuation">)跨度><跨度class="token punctuation">,跨度><跨度class="token punctuation">[跨度><跨度class="token punctuation">]跨度><跨度class="token punctuation">,跨度><跨度class="token punctuation">)跨度><跨度class="token punctuation">;跨度><跨度class="token keyword">常量跨度>handleSearchResultsDismiss<跨度class="token operator">=跨度><跨度class="token function">useCallback跨度><跨度class="token punctuation">(跨度><跨度class="token punctuation">(跨度><跨度class="token punctuation">)跨度><跨度class="token operator">= >跨度><跨度class="token punctuation">{跨度><跨度class="token function">setIsSearchActive跨度><跨度class="token punctuation">(跨度><跨度class="token boolean">假跨度><跨度class="token punctuation">)跨度><跨度class="token punctuation">;跨度><跨度class="token function">setSearchValue跨度><跨度class="token punctuation">(跨度><跨度class="token string">”跨度><跨度class="token punctuation">)跨度><跨度class="token punctuation">;跨度><跨度class="token punctuation">}跨度><跨度class="token punctuation">,跨度><跨度class="token punctuation">[跨度><跨度class="token punctuation">]跨度><跨度class="token punctuation">)跨度><跨度class="token punctuation">;跨度><跨度class="token keyword">常量跨度>handleSearchChange<跨度class="token operator">=跨度><跨度class="token function">useCallback跨度><跨度class="token punctuation">(跨度><跨度class="token punctuation">(跨度><跨度class="token parameter">价值跨度><跨度class="token punctuation">)跨度><跨度class="token operator">= >跨度><跨度class="token punctuation">{跨度><跨度class="token function">setSearchValue跨度><跨度class="token punctuation">(跨度>价值<跨度class="token punctuation">)跨度><跨度class="token punctuation">;跨度><跨度class="token function">setIsSearchActive跨度><跨度class="token punctuation">(跨度>价值<跨度class="token punctuation">.跨度>长度<跨度class="token operator">>跨度><跨度class="token number">0跨度><跨度class="token punctuation">)跨度><跨度class="token punctuation">;跨度><跨度class="token punctuation">}跨度><跨度class="token punctuation">,跨度><跨度class="token punctuation">[跨度><跨度class="token punctuation">]跨度><跨度class="token punctuation">)跨度><跨度class="token punctuation">;跨度><跨度class="token keyword">常量跨度>handleNavigationToggle<跨度class="token operator">=跨度><跨度class="token function">useCallback跨度><跨度class="token punctuation">(跨度><跨度class="token punctuation">(跨度><跨度class="token punctuation">)跨度><跨度class="token operator">= >跨度><跨度class="token punctuation">{跨度>控制台<跨度class="token punctuation">.跨度><跨度class="token function">日志跨度><跨度class="token punctuation">(跨度><跨度class="token string">“切换导航可见性”跨度><跨度class="token punctuation">)跨度><跨度class="token punctuation">;跨度><跨度class="token punctuation">}跨度><跨度class="token punctuation">,跨度><跨度class="token punctuation">[跨度><跨度class="token punctuation">]跨度><跨度class="token punctuation">)跨度><跨度class="token punctuation">;跨度><跨度class="token keyword">常量跨度>标志<跨度class="token operator">=跨度><跨度class="token punctuation">{跨度><跨度class="token literal-property property">宽度跨度><跨度class="token operator">:跨度><跨度class="token number">124跨度><跨度class="token punctuation">,跨度><跨度class="token literal-property property">topBarSource跨度><跨度class="token operator">:跨度><跨度class="token string">“https://cdn.shopify.com/s/files/1/0446/6937/files/jaded-pixel-logo-color.svg?6215648040070010999”跨度><跨度class="token punctuation">,跨度><跨度class="token literal-property property">url跨度><跨度class="token operator">:跨度><跨度class="token string">“http://jadedpixel.com”跨度><跨度class="token punctuation">,跨度><跨度class="token literal-property property">accessibilityLabel跨度><跨度class="token operator">:跨度><跨度class="token string">“厌倦像素”跨度><跨度class="token punctuation">,跨度><跨度class="token punctuation">}跨度><跨度class="token punctuation">;跨度><跨度class="token keyword">常量跨度>userMenuMarkup<跨度class="token operator">=跨度><跨度class="token punctuation">(跨度><跨度class="token operator"><跨度>TopBar<跨度class="token punctuation">.跨度>UserMenu行动<跨度class="token operator">=跨度><跨度class="token punctuation">{跨度><跨度class="token punctuation">[跨度><跨度class="token punctuation">{跨度><跨度class="token literal-property property">项目跨度><跨度class="token operator">:跨度><跨度class="token punctuation">[跨度><跨度class="token punctuation">{跨度><跨度class="token literal-property property">内容跨度><跨度class="token operator">:跨度><跨度class="token string">“回到Shopify”跨度><跨度class="token punctuation">,跨度><跨度class="token literal-property property">图标跨度><跨度class="token operator">:跨度>ArrowLeftMinor<跨度class="token punctuation">}跨度><跨度class="token punctuation">]跨度><跨度class="token punctuation">,跨度><跨度class="token punctuation">}跨度><跨度class="token punctuation">,跨度><跨度class="token punctuation">{跨度><跨度class="token literal-property property">项目跨度><跨度class="token operator">:跨度><跨度class="token punctuation">[跨度><跨度class="token punctuation">{跨度><跨度class="token literal-property property">内容跨度><跨度class="token operator">:跨度><跨度class="token string">“社区论坛”跨度><跨度class="token punctuation">}跨度><跨度class="token punctuation">]跨度><跨度class="token punctuation">,跨度><跨度class="token punctuation">}跨度><跨度class="token punctuation">,跨度><跨度class="token punctuation">]跨度><跨度class="token punctuation">}跨度>的名字<跨度class="token operator">=跨度><跨度class="token string">“佛法”跨度>细节<跨度class="token operator">=跨度><跨度class="token string">“厌倦像素”跨度>名字的首字母<跨度class="token operator">=跨度><跨度class="token string">“D”跨度>开放<跨度class="token operator">=跨度><跨度class="token punctuation">{跨度>isUserMenuOpen<跨度class="token punctuation">}跨度>onToggle<跨度class="token operator">=跨度><跨度class="token punctuation">{跨度>toggleIsUserMenuOpen<跨度class="token punctuation">}跨度><跨度class="token operator">/跨度><跨度class="token operator">>跨度><跨度class="token punctuation">)跨度><跨度class="token punctuation">;跨度><跨度class="token keyword">常量跨度>searchResultsMarkup<跨度class="token operator">=跨度><跨度class="token punctuation">(跨度><跨度class="token operator"><跨度>ActionList物品<跨度class="token operator">=跨度><跨度class="token punctuation">{跨度><跨度class="token punctuation">[跨度><跨度class="token punctuation">{跨度><跨度class="token literal-property property">内容跨度><跨度class="token operator">:跨度><跨度class="token string">“Shopify帮助中心”跨度><跨度class="token punctuation">}跨度><跨度class="token punctuation">,跨度><跨度class="token punctuation">{跨度><跨度class="token literal-property property">内容跨度><跨度class="token operator">:跨度><跨度class="token string">“社区论坛”跨度><跨度class="token punctuation">}跨度><跨度class="token punctuation">]跨度><跨度class="token punctuation">}跨度><跨度class="token operator">/跨度><跨度class="token operator">>跨度><跨度class="token punctuation">)跨度><跨度class="token punctuation">;跨度><跨度class="token keyword">常量跨度>searchFieldMarkup<跨度class="token operator">=跨度><跨度class="token punctuation">(跨度><跨度class="token operator"><跨度>TopBar<跨度class="token punctuation">.跨度>SearchField onChange<跨度class="token operator">=跨度><跨度class="token punctuation">{跨度>handleSearchChange<跨度class="token punctuation">}跨度>价值<跨度class="token operator">=跨度><跨度class="token punctuation">{跨度>searchValue<跨度class="token punctuation">}跨度>占位符<跨度class="token operator">=跨度><跨度class="token string">“搜索”跨度>showFocusBorder<跨度class="token operator">/跨度><跨度class="token operator">>跨度><跨度class="token punctuation">)跨度><跨度class="token punctuation">;跨度><跨度class="token keyword">常量跨度>secondaryMenuMarkup<跨度class="token operator">=跨度><跨度class="token punctuation">(跨度><跨度class="token operator"><跨度>TopBar<跨度class="token punctuation">.跨度>菜单activatorContent<跨度class="token operator">=跨度><跨度class="token punctuation">{跨度><跨度class="token operator"><跨度>跨度<跨度class="token operator">>跨度><跨度class="token operator"><跨度>图标的源<跨度class="token operator">=跨度><跨度class="token punctuation">{跨度>QuestionMarkMajor<跨度class="token punctuation">}跨度><跨度class="token operator">/跨度><跨度class="token operator">>跨度><跨度class="token operator"><跨度>VisuallyHidden<跨度class="token operator">>跨度>二级菜单<跨度class="token operator"><跨度><跨度class="token operator">/跨度>VisuallyHidden<跨度class="token operator">>跨度><跨度class="token operator"><跨度><跨度class="token operator">/跨度>跨度<跨度class="token operator">>跨度><跨度class="token punctuation">}跨度>开放<跨度class="token operator">=跨度><跨度class="token punctuation">{跨度>isSecondaryMenuOpen<跨度class="token punctuation">}跨度>onOpen<跨度class="token operator">=跨度><跨度class="token punctuation">{跨度>toggleIsSecondaryMenuOpen<跨度class="token punctuation">}跨度>onClose<跨度class="token operator">=跨度><跨度class="token punctuation">{跨度>toggleIsSecondaryMenuOpen<跨度class="token punctuation">}跨度>行动<跨度class="token operator">=跨度><跨度class="token punctuation">{跨度><跨度class="token punctuation">[跨度><跨度class="token punctuation">{跨度><跨度class="token literal-property property">项目跨度><跨度class="token operator">:跨度><跨度class="token punctuation">[跨度><跨度class="token punctuation">{跨度><跨度class="token literal-property property">内容跨度><跨度class="token operator">:跨度><跨度class="token string">“社区论坛”跨度><跨度class="token punctuation">}跨度><跨度class="token punctuation">]跨度><跨度class="token punctuation">,跨度><跨度class="token punctuation">}跨度><跨度class="token punctuation">,跨度><跨度class="token punctuation">]跨度><跨度class="token punctuation">}跨度><跨度class="token operator">/跨度><跨度class="token operator">>跨度><跨度class="token punctuation">)跨度><跨度class="token punctuation">;跨度><跨度class="token keyword">常量跨度>topBarMarkup<跨度class="token operator">=跨度><跨度class="token punctuation">(跨度><跨度class="token operator"><跨度>TopBar showNavigationToggle userMenu<跨度class="token operator">=跨度><跨度class="token punctuation">{跨度>userMenuMarkup<跨度class="token punctuation">}跨度>secondaryMenu<跨度class="token operator">=跨度><跨度class="token punctuation">{跨度>secondaryMenuMarkup<跨度class="token punctuation">}跨度>searchResultsVisible<跨度class="token operator">=跨度><跨度class="token punctuation">{跨度>isSearchActive<跨度class="token punctuation">}跨度>searchField<跨度class="token operator">=跨度><跨度class="token punctuation">{跨度>searchFieldMarkup<跨度class="token punctuation">}跨度>searchResults<跨度class="token operator">=跨度><跨度class="token punctuation">{跨度>searchResultsMarkup<跨度class="token punctuation">}跨度>onSearchResultsDismiss<跨度class="token operator">=跨度><跨度class="token punctuation">{跨度>handleSearchResultsDismiss<跨度class="token punctuation">}跨度>onNavigationToggle<跨度class="token operator">=跨度><跨度class="token punctuation">{跨度>handleNavigationToggle<跨度class="token punctuation">}跨度><跨度class="token operator">/跨度><跨度class="token operator">>跨度><跨度class="token punctuation">)跨度><跨度class="token punctuation">;跨度><跨度class="token keyword">返回跨度><跨度class="token punctuation">(跨度><跨度class="token operator"><跨度>div风格<跨度class="token operator">=跨度><跨度class="token punctuation">{跨度><跨度class="token punctuation">{跨度><跨度class="token literal-property property">高度跨度><跨度class="token operator">:跨度><跨度class="token string">“250 px”跨度><跨度class="token punctuation">}跨度><跨度class="token punctuation">}跨度><跨度class="token operator">>跨度><跨度class="token operator"><跨度>帧topBar<跨度class="token operator">=跨度><跨度class="token punctuation">{跨度>topBarMarkup<跨度class="token punctuation">}跨度>标志<跨度class="token operator">=跨度><跨度class="token punctuation">{跨度>标志<跨度class="token punctuation">}跨度><跨度class="token operator">/跨度><跨度class="token operator">>跨度><跨度class="token operator"><跨度><跨度class="token operator">/跨度>div<跨度class="token operator">>跨度><跨度class="token punctuation">)跨度><跨度class="token punctuation">;跨度><跨度class="token punctuation">}跨度>
道具
想要帮助完善这个功能吗?请<!-- -->分享你的反馈.
接口<!-- -->
TopBarProps<!-- -->
- showNavigationToggle<跨度>?跨度>跨度><跨度class="PropsTable_Valuex__TSgMZ">布尔跨度>跨度>
-
切换是否提供了导航组件。控制移动导航切换按钮的存在。
- userMenu<跨度>?跨度>跨度><跨度class="PropsTable_Valuex__TSgMZ">反应跨度>跨度>.<跨度class="PropsTable_SyntaxType__UfemH">ReactNode跨度>跨度>跨度>
-
接受一个用户组件,该用户组件作为顶部栏组件的静态成员可用,并呈现为主菜单。
- secondaryMenu<跨度>?跨度>跨度><跨度class="PropsTable_Valuex__TSgMZ">反应跨度>跨度>.<跨度class="PropsTable_SyntaxType__UfemH">ReactNode跨度>跨度>跨度>
-
接受作为顶部栏组件的静态成员可用的菜单组件。
- contextControl<跨度>?跨度>跨度><跨度class="PropsTable_Valuex__TSgMZ">反应跨度>跨度>.<跨度class="PropsTable_SyntaxType__UfemH">ReactNode跨度>跨度>跨度>
-
接受用于帮助用户在不同上下文之间切换的组件。
- searchField<跨度>?跨度>跨度><跨度class="PropsTable_Valuex__TSgMZ">反应跨度>跨度>.<跨度class="PropsTable_SyntaxType__UfemH">ReactNode跨度>跨度>跨度>
-
接受一个搜索字段组件,该组件作为顶部栏组件的“TextField”静态成员可用。
- searchResults<跨度>?跨度>跨度><跨度class="PropsTable_Valuex__TSgMZ">反应跨度>跨度>.<跨度class="PropsTable_SyntaxType__UfemH">ReactNode跨度>跨度>跨度>
-
接受搜索结果组件,该组件最好由包含可操作搜索结果列表的卡片组件组成。
- searchResultsVisible<跨度>?跨度>跨度><跨度class="PropsTable_Valuex__TSgMZ">布尔跨度>跨度>
-
布尔属性,指示搜索结果当前是否可见。
- searchResultsOverlayVisible<跨度>?跨度>跨度><跨度class="PropsTable_Valuex__TSgMZ">布尔跨度>跨度>
-
搜索结果覆盖是否有一个可见的背景。
- onSearchResultsDismiss<跨度>?跨度>跨度><跨度class="PropsTable_Valuex__TSgMZ">() = ><跨度class="PropsTable_SyntaxType__UfemH">无效跨度>跨度>跨度>
-
处理搜索结果撤销的回调函数。
- onNavigationToggle<跨度>?跨度>跨度><跨度class="PropsTable_Valuex__TSgMZ">() = ><跨度class="PropsTable_SyntaxType__UfemH">无效跨度>跨度>跨度>
-
一个处理隐藏和显示移动导航的回调函数。
- logoSuffix<跨度>?跨度>跨度><跨度class="PropsTable_Valuex__TSgMZ">反应跨度>跨度>.<跨度class="PropsTable_SyntaxType__UfemH">ReactNode跨度>跨度>跨度>
-
接受用于补充标志标记的组件。
所需的组件
顶部栏组件必须传递给框架组件。
最佳实践
顶部栏组件应该:
- 不为应用程序提供全局导航
- 使用导航组件而不是
- 包括搜索,以帮助商家查找资源和导航应用程序
- 包含一个用户菜单组件,以指示已登录的商家,并为他们提供全局操作
- 提供一个颜色通过应用提供商组件来设置背景样式
- 全局菜单文本应该与顶部栏的其余部分形成对比,并通过WCAG 2.0指南的最小对比度
- 使用SVG文件作为logo
- 与顶部栏背景颜色相比,使用符合WCAG 2.0指南的最小对比度的标志
- 显示导航切换,使它出现在小屏幕上
内容的指导方针
占位符内容
搜索字段的占位符内容应该:
- 总是说“搜索”
- 不要使用省略号
做
- 搜索
不
- 搜索…
顶部栏菜单
将激活器和包含操作列表的弹出窗口组合在一起以创建下拉菜单的组件。
菜单的属性
道具 | 类型 | 描述 |
---|---|---|
activatorContent | 反应。反应Node | 接受在打开菜单的按钮内部呈现的激活器组件 |
行动 | ActionListProps(“区域”) | 在此菜单触发的弹出窗口中呈现的操作对象数组 |
消息 | MessageProps | 接受通过菜单与商家进行直接、紧急通信的消息 |
开放 | 布尔 | 指示菜单当前是否打开的布尔属性 |
onOpen () | 函数 | 处理打开菜单弹出窗口的回调函数 |
onClose () | 函数 | 处理关闭菜单弹出窗口的回调函数 |
顶部栏用户菜单
由用户头像激活的专用菜单组件。
菜单的属性
道具 | 类型 | 描述 |
---|---|---|
行动 | {项目:IconableAction []} [] | 在此菜单触发的弹出窗口中呈现的操作对象数组 |
消息 | MessageProps | 通过用户菜单接受有助于与商家进行直接、紧急通信的消息 |
的名字 | 字符串 | 详细说明将显示在用户菜单中的商家全名的字符串 |
细节 | 字符串 | 允许在用户菜单中显示商家名称的进一步详细信息的字符串 |
名字的首字母 | AvatarProps(“缩写”) | 商家的首字母缩写,在未提供时以头像代替 |
《阿凡达》 | AvatarProps(“源”) | 代表商人的头像 |
开放 | 布尔 | 一个布尔属性,指示用户菜单当前是否打开 |
onToggle () | 函数 | 处理打开和关闭用户菜单的回调函数 |
顶部栏菜单信息
消息属性
道具 | 类型 | 描述 |
---|---|---|
标题 | 字符串 | 消息的标题 |
描述 | 字符串 | 消息的描述 |
行动 | {onClick():空白;内容:字符串} | 在消息附近呈现的操作 |
链接 | {:字符串;内容:字符串} | 查看邮件内容的链接 |
徽章 | {内容:字符串;状态:BadgeProps(的地位)} | 要呈现在消息附近的徽章 |
顶部栏搜索字段
为搜索用例量身定制的文本字段组件。
搜索字段属性
道具 | 类型 | 描述 |
---|---|---|
价值 | 字符串 | 输入的初始值 |
占位符 | 字符串 | 要显示的提示文本 |
集中 | 布尔 | 强制焦点状态在输入上 |
活跃的 | 布尔 | 强制进入搜索处于活动状态但文本字段组件未集中的状态 |
onChange(价值:字符串) | 函数 | 当值被改变时回调 |
聚焦事件() | 函数 | 当输入被聚焦时进行回调 |
失去焦点事件() | 函数 | 当焦点被移除时回调 |