Files
aurora-admin/site/end-content/tabs.html.json

134 lines
5.0 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"slug": "tabs",
"end": "html",
"curated": true,
"summary": "纯 H5 标签页:data-key 与 data-panel 配对,切换时同改 is-active 与 hidden。",
"usage": [
"一个 .kole-tabs 容器配 data-tabs 初始化,导航区 .kole-tabs-nav 带 role=\"tablist\",标签是带 data-key 的 div。",
"面板区用 [data-panels] 容器加若干 [data-panel=\"key\"],键值与标签的 data-key 一一对应,切换时脚本一并改 hidden。",
"切换同时做两件事:给目标标签加 .is-active、把对应面板的 hidden 去掉,两处都要照顾到。",
"禁用标签加 .is-disabled,脚本在 activate 前先判断 is-disabled 就不处理点击。",
"关闭与新增是动态 DOM 操作:关闭按钮带 data-close 并 remove 掉所在标签,新增按钮带 data-add 用 createElement 插到导航里并同步补一个面板。"
],
"bestPractices": [
"删除当前激活标签后必须重新 activate 第一个标签,否则会留下没有 .is-active 也没有可见面板的空档。",
"新增标签时要同时补 data-panel 面板并立刻 activate 新 key,只加标签会出现点了没内容。",
"type 只作为容器上的视觉类(type-line / type-card / type-pill),不参与交互逻辑,换类型不影响脚本。"
],
"apiCarrier": {
"kind": "attrs",
"note": "H5 端没有 props,API 载体是类名(.kole-tabs 加 type-<type>、标签 is-active / is-disabled、面板 hidden)与 data-* 配对钩子(data-tabs、data-key、data-panel、data-close、data-add)。",
"table": [
{
"name": "kole-tabs",
"type": "基础类名",
"desc": "标签页根容器,可叠加 type-line / type-card / type-pill"
},
{
"name": "type-line",
"type": "变体类名",
"desc": "线型样式"
},
{
"name": "type-card",
"type": "变体类名",
"desc": "卡片型样式"
},
{
"name": "type-pill",
"type": "变体类名",
"desc": "胶囊型样式"
},
{
"name": "kole-tabs-nav",
"type": "结构类名",
"desc": "导航区容器,带 role=\"tablist\""
},
{
"name": "kole-tabs-tab",
"type": "结构类名",
"desc": "单个标签,可叠加 is-active / is-disabled"
},
{
"name": "is-active",
"type": "状态类名",
"desc": "当前激活标签"
},
{
"name": "is-disabled",
"type": "状态类名",
"desc": "禁用标签,点击不切换"
},
{
"name": "kole-tabs-content",
"type": "结构类名",
"desc": "面板区容器,脚本按 [data-panels] 定位"
},
{
"name": "kole-tabs-close",
"type": "结构类名",
"desc": "标签上的关闭按钮,带 data-close"
},
{
"name": "kole-tabs-add",
"type": "结构类名",
"desc": "导航末尾的新增按钮,带 data-add"
},
{
"name": "data-tabs",
"type": "data-* 钩子",
"desc": "标记标签页根节点,脚本据此批量初始化"
},
{
"name": "data-key",
"type": "data-* 钩子",
"desc": "标签的键值,与面板的 data-panel 对齐"
},
{
"name": "data-panel",
"type": "data-* 钩子",
"desc": "面板的键值,非当前项加 hidden"
},
{
"name": "data-add",
"type": "data-* 钩子",
"desc": "新增按钮标识"
},
{
"name": "hidden",
"type": "原生属性",
"desc": "面板显隐,与标签的 is-active 需同步切换"
}
]
},
"a11y": [
"导航区带 role=\"tablist\"、标签带 role=\"tab\" 与 tabindex=\"0\",语义基本齐备,但缺少 aria-selected 变化与方向键支持。",
"面板没有 role=\"tabpanel\",也没有与标签建立 aria-controls 关联。",
"切换只由 click 驱动:没有监听方向键与 Enter,键盘用户无法在标签间移动。"
],
"resources": [
{
"file": "frameworks/Tabs.html",
"kind": "纯 H5 演示页(内联样式 + 原生脚本)",
"desc": "Tabs.html —— 纯 H5 演示页:线型/卡片型/胶囊型三组结构,含 50 行负责切换、关闭与新增的脚本"
},
{
"file": "frameworks/Tabs.css",
"kind": "样式文件",
"desc": "Tabs.css —— 本页组件类名的样式定义,由 Tabs.html 第 8 行的 <link rel=\"stylesheet\" href=\"Tabs.css\"> 引入"
}
],
"exampleIds": [
"tabs-ex-1",
"tabs-ex-2",
"tabs-ex-3"
],
"notes": [
"导航区的 role 标注见(frameworks/Tabs.html:26)",
"面板键值与标签 data-key 的配对见(frameworks/Tabs.html:33)",
"激活态切换逻辑见(frameworks/Tabs.html:83)",
"关闭按钮的钩子与移除逻辑见(frameworks/Tabs.html:46)",
"新增标签的按钮与插入逻辑见(frameworks/Tabs.html:48)"
]
}