Skip to content
通用组件

面板Panel

页面上一块有名字的区域(游戏内 announce panel):左色条标题栏 + 正文,可反转、可折叠。

Vue
实验import { AkPanel } from "@mooncellwiki/prts-design-vue"Storybook ↗源码 ↗

页面上一块有名字的区域(游戏内 announce panel):标题栏是表面 2 底 + 左侧 4px 主色条,标题后可跟 Bender 大写英文;正文 16px 内距。首页的「今日信息」「新增关卡」「新增家具」都是它。与卡片的分工:卡片是一组里的一件,面板是一块区域——同一时刻的信息放进同一张面板,不拆成几个框。

基础 · 标题栏附加 ​

#header-extra 放在标题栏右侧(日期标签、按钮)。面板是页面大纲里的一节时用 title-tag="h3" 这类真正的标题元素。

反转 · 可折叠 ​

inverse 标题栏黑白反转(亮色下黑底白字、暗色下白底黑字),给公告这类要跳出来的区域。en 是标题后的英文(灰、大写、字距),也只给这种单独一块的面板;并排的一组面板只写中文(见字体排印 · 双语标题)。collapsible 可折叠:点标题栏收起 / 展开,右端出现开合记号(收起 + / 展开 −);展开状态是 v-model(默认展开),外部也能控制。标题栏里的链接 / 按钮自己处理点击,不会顺带折叠。

键盘 ​

可折叠时标题文字是 role="button"(放在标题元素里面,h3 的大纲语义不丢,同 WAI-ARIA Accordion),带 aria-expanded 与指向正文的 aria-controls。

键行为
Tab聚焦标题
Enter / Space收起 / 展开

Vue API ​

属性类型默认说明
titlestring—标题(也可用 #header 插槽)
enstring—标题后的英文(Bender 大写灰字:「Notice」);并排的一组面板不写
titleTag"div""h2""h3""h4""h5""h6""div"标题元素:默认 div;面板是页面大纲里的一节时用 h2–h6(首页「新增关卡」是 h3)
inversebooleanfalse标题栏反转(亮色下黑底白字、暗色下白底黑字,同 .ak-inverse):公告这类要跳出来的区域
collapsiblebooleanfalse可折叠:点标题栏收起 / 展开正文(右端出现开合记号:收起 + / 展开 −);需要有标题
modelValuebooleantrue是否展开(collapsible 时有效);默认展开
事件参数说明
update:modelValue[value: boolean]
插槽说明
default正文
header标题内容(代替 title)
header-extra标题栏右侧(标签、日期、按钮)

CSS 实现 ​

CSS 实现只负责外观:折叠状态是 .is-collapsed,模板输出的纯 CSS 面板由皮肤脚本(document 级委托,点 .ak-panel--collapsible > .ak-panel__head 就翻)切换。AkPanel 与这段脚本共存:点击派发完后再落 v-model,并把 class 压回与状态一致。

块元素 __修饰 --

文本 CC BY-NC-SA 4.0 · 游戏素材版权归鹰角网络所有