Breadcrumb 使用手册
v1.2.0 · @snowui-design-system/components
许可阅读:首次阅读组件文档、源码或 npm 使用流程,先读完整 LICENSE;同任务同版本去重。公开 API 配置与内部实现修改分别按许可处理;全部组件使用统一运行包,源码权益以许可为准。
组件介绍
展示当前页面的层级路径,帮助用户理解所在位置并返回上级页面。
使用选择
用于表达当前页面的层级路径。平级内容切换用 Tab,应用导航用 Sidebar;路由跳转由页面处理。
items 生成路径,最后一项自动成为不可交互的当前页。
显式 children 使用
Button as="item"与Text as="separator",会替换 items;parts 仅配置默认生成的内容。根导航默认名称随LocaleProvider更新,显式ariaLabel优先;路径文字与业务内容保持调用方原文。
快速开始
以下示例展示推荐的基本组合。更多场景与组合限制见后文。
API
未重新声明的继承能力请查所属基础组件文档;本表只列本组件源码具名公开属性。
使用边界与详细说明
功能概览
默认 items API + 显式组合高级 API。
最后一个
as="item"自动作为当前页面。可通过
variant给内部Button as="item"提供默认 Button 变体。非当前 item 默认整体透明度 40%,hover 时恢复 100%。
item 属于同一导航复合控件,默认关闭 Button hover 放大;显式
scaleOnHover={true}可按实例重新开启。当前页面 item 输出
aria-current="page",不可 hover、不可点击、不可键盘激活。separator 默认使用
14px / 20px与black/10%。
子级角色
SnowUI 组件使用 as="item" / as="separator";原生元素使用 data-as="item" / data-as="separator"。
基础用法
统一 Button 变体
Breadcrumb variant 只作为 item Button 的默认值:未写 variant 的 item 使用 Breadcrumb 的 variant,显式写了 variant 的 Button 保持自己的变体。若 Breadcrumb 不写 variant,Button 继续使用 Button 默认变体。
多级路径
最后一个 item 会被自动标记为当前页,即使写了 href 也不会触发点击或跳转。
行为规则
当前页面固定为 Breadcrumb 内最后一个
as="item"/data-as="item"。不提供
currentIndex,不支持指定任意一项为当前页。当前项自动设置
aria-current="page"、data-current="page"、tabindex="-1"。当前项不会触发 Button hover、click、Enter 或 Space。
separator 自动设置
aria-hidden="true"。Breadcrumb 的
variant只影响Button as="item"的默认 Button 变体,且不覆盖子级显式variant。Breadcrumb 为 item 提供
scaleOnHover=false默认值;子级 Button 的显式值优先。
布局模型
主布局模型:内联外壳布局。定义见 ../../../specs/maintainers/LayoutProtocol.md §12.4(源码参考:specs/maintainers/LayoutProtocol.md)。
Breadcrumb 根是
nav容器,内部内容整体 Hug。根容器使用
inline-flex,允许换行。子级 Button 保留自身内联外壳布局。
子级 Text 保留自身文本流布局。
Breadcrumb 只管理根 gap、separator 样式、非当前透明度与最后一项当前态。
路径元素之间的有效行/列间距至少为 4 CSS px;显式 gap={0}、根字号或间距缩放不压低下限,较大首选间距保持。根容器继续允许路径片段换行,不把整条导航强制改成 singleLine;各 Button 内部的图文单行仍由 Button 拥有。
布局变量链:
Breadcrumb 样式覆盖
先阅读 完整 LICENSE;同任务、同版本、同范围去重。
优先用组件公开 Props 匹配合适样式,尽可能保留原有视觉。确需改写时按 样式选择与改写顺序 使用自己的 class(含项目已有 Tailwind)或实例 style。以下名称来自源码实际消费的公开 override;先核对目标作用域,不修改私有 DOM。采用 SnowUI Token 时选择正确类别,外部应用不被要求安装一方 utilities。
Breadcrumb 类型与状态
必填属性:无具名必填属性。
可双向绑定:本组件未声明具名双向绑定属性;状态更新通过公开回调或所属宿主处理。
继承声明:Omit<FrameProps, "children">。继承能力以基类公开文档为准;Omit 中的字段已排除,不能按基类原样使用。
以下为公开属性实际引用的类型声明,来自源码;Svelte Snippet 表示内容片段,ComponentProps 表示对应组件的 Props。
BreadcrumbVariant
来源:components/src/context.ts
BreadcrumbItem
来源:components/src/components/Breadcrumb.svelte
ComponentPartsOf
来源:components/src/logic/component-parts.svelte.ts
ConfigurableComponentPartProps
来源:components/src/logic/component-parts.svelte.ts
ComponentPartControlledKey
来源:components/src/logic/component-parts.svelte.ts