Skip to content
通用组件

按钮Button

触发一个动作。主动作一处只放一枚;黑白反转的 contrast 对应游戏内 btn_on。

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

变体 ​

primary 主色实底,一处只放一枚;contrast 是游戏内 btn_on 的黑白反转,给「开始行动」这类强动作;danger 叠斜纹表示不可逆;link 用于行内次要动作。

尺寸 ​

高 24 / 30 / 36 / 44 / 56。默认 36 与输入框、裸控件同一刻度,一行里混排齐平。

图标 ​

写法同 Naive UI 的 n-button:icon 放图标,icon-placement="right" 放到文字后面;不写文字就是方形图标按钮,这时 label 必填(同时作 aria-label 与 title)。

状态 ​

禁用、加载中(文字隐去、居中一枚圆弧转圈、aria-busy)、链接形态(有 href 时渲染成 <a>,禁用时用 aria-disabled 并去掉 href)。

按钮组 ​

一排贴在一起的按钮(同 Naive 的 n-button-group,纯容器):相邻边框重叠,size 给组内按钮统一尺寸。多选一的分段控件用单选按钮组(AkRadioGroup + AkRadioButton,同 Naive 的 n-radio-button),精英阶段切换用阶段选择器,不用按钮组。

Vue API ​

AkButton ​

属性类型默认说明
variant"default""outline""danger""link""primary""contrast""ghost""default"外观:primary = 主色实底(一处一枚)· contrast = 黑白反转(游戏内 btn_on)· outline 描边 · ghost 幽灵 · danger 危险 · link 链接样式
size"md""sm""lg""xl""xs"—尺寸:xs 24 · sm 30 · md 36 · lg 44 · xl 56(px 高);不写时跟 AkButtonGroup,再不然是 md
iconIconName—图标;没有文字(不写默认插槽)时是方形的图标按钮,这时 label 必填
iconPlacement"left""right""left"图标在文字左边还是右边(同 Naive 的 icon-placement)
labelstring—可访问名(aria-label;图标按钮同时作 title)——只有图标的按钮必填,有文字的一般不写
blockbooleanfalse占满容器宽度
pillbooleanfalse胶囊圆角(系统默认直角,只在确需时用)
stripesbooleanfalse危险按钮叠斜纹(只配 variant="danger")
loadingbooleanfalse加载中:文字隐去,居中转圈,不可点
disabledbooleanfalse
hrefstring—有 href 时渲染成 <a>(禁用时 aria-disabled)
type"button""submit""reset""button"
插槽说明
default按钮文字;不写就是图标按钮

AkButtonGroup ​

属性类型默认说明
size"md""sm""lg""xl""xs"—组内按钮的默认尺寸(按钮自己写了 size 以按钮为准)
labelstring—读屏用的组名:一组有意义的动作时写
插槽说明
default若干 AkButton

CSS 实现 ​

模板 / Lua 输出 <button class="ak-btn ak-btn--primary">(或 <a class="ak-btn">)即可;裸 <button>(Widget 直接吐出的、没有 class 的)由皮肤兜底成同样 36px 高的默认外观。

块元素 __修饰 --

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