ant-design/components/button/index.zh-CN.md
ice badfbe3cfe
feat(Button): support variant and color (#50051)
* feat(button): variant & color types

* feat: type -> color/variant

* feat: type -> color/variant

* feat: add variant filled

* test: snap

* refactor(button): rename type -> variant

* docs: add demo

* feat: add danger ghost style

* refactor: remove deprecated

* refactor: eslint

* docs: change color&variant

* test: updated snap

* docs: color-variant

* docs: add debug color&variant

* feat: global token

* refactor: remove comment

* docs: add color&variant docs

* docs: remove default

* docs: add space

* docs: code

* test: update snap

* test: fix snap

* test: btn querySelect

* feat: change filled hoverStyle

* test: fix

* feat: support grey wave

* refactor: enhance

* docs: color/variant -> v 5.21

* test: snap

* feat: add token

* test: to do

* test: fix test

* ci: rebuild

* style: remove

* style: space

* docs: add note & FQA

* feat: add componentsToken

* refactor: remove isNotGrey

* test: add case

* docs: tile button

* test: snap

* docs: site & snap

* Update components/button/index.en-US.md

Co-authored-by: lijianan <574980606@qq.com>
Signed-off-by: ice <49827327+coding-ice@users.noreply.github.com>

* fix: token color & undef

* docs: site

* docs: responsive

* docs: enhance FAQ

* docs: gap middle

* test: snap

* Update components/theme/interface/maps/colors.ts

Co-authored-by: MadCcc <1075746765@qq.com>
Signed-off-by: ice <49827327+coding-ice@users.noreply.github.com>

* Update components/theme/interface/maps/colors.ts

Co-authored-by: MadCcc <1075746765@qq.com>
Signed-off-by: ice <49827327+coding-ice@users.noreply.github.com>

* Update components/theme/interface/maps/colors.ts

Co-authored-by: MadCcc <1075746765@qq.com>
Signed-off-by: ice <49827327+coding-ice@users.noreply.github.com>

* Update components/button/style/token.ts

Co-authored-by: MadCcc <1075746765@qq.com>
Signed-off-by: ice <49827327+coding-ice@users.noreply.github.com>

* Update components/button/style/token.ts

Co-authored-by: MadCcc <1075746765@qq.com>
Signed-off-by: ice <49827327+coding-ice@users.noreply.github.com>

* refactor: rename

* docs: prettier

* chore: eslint

* refactor: cls

* test: add solidTextColor case

* refactor: genVariantButtonStyle

* refactor: genVariantButtonStyle

* refactor: genVariantButtonStyle

* fix: rename

* docs: text

* fix: remove border

* feat: add token colorErrorBgFilledHover

* chore: add size-limit

* refactor: rename

---------

Signed-off-by: ice <49827327+coding-ice@users.noreply.github.com>
Co-authored-by: lijianan <574980606@qq.com>
Co-authored-by: MadCcc <1075746765@qq.com>
2024-09-03 17:39:02 +08:00

5.5 KiB
Raw Blame History

category title subtitle description cover coverDark demo group
Components Button 按钮 按钮用于开始一个即时操作。 https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*7va7RKs3YzIAAAAAAAAAAAAADrJ8AQ/original https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*3T4cRqxH9-8AAAAAAAAAAAAADrJ8AQ/original
cols
2
title order
通用 1

何时使用

标记了一个(或封装一组)操作命令,响应用户点击行为,触发相应的业务逻辑。

在 Ant Design 中我们提供了五种按钮。

  • 主按钮:用于主行动点,一个操作区域只能有一个主按钮。
  • 默认按钮:用于没有主次之分的一组行动点。
  • 虚线按钮:常用于添加操作。
  • 文本按钮:用于最次级的行动点。
  • 链接按钮:一般用于链接,即导航至某位置。

以及四种状态属性与上面配合使用。

  • 危险:删除/移动/修改权限等危险操作,一般需要二次确认。
  • 幽灵:用于背景色比较复杂的地方,常用在首页/产品页等展示场景。
  • 禁用:行动点不可用的时候,一般需要文案解释。
  • 加载中:用于异步操作等待反馈的时候,也可以避免多次提交。

完整设计指南

代码演示

按钮类型 颜色与变体 按钮图标 按钮图标位置 调试图标按钮 调试按钮block属性 按钮尺寸 不可用状态 加载中状态 多个按钮组合 幽灵按钮 危险按钮 Block 按钮 废弃的 Block 组 加载中状态 bug 还原 组件 Token 渐变按钮 移除两个汉字之间的空格

API

通用属性参考:通用属性

通过设置 Button 的属性来产生不同的按钮样式,推荐顺序为:type -> shape -> size -> loading -> disabled

按钮的属性说明如下:

属性 说明 类型 默认值 版本
autoInsertSpace 我们默认提供两个汉字之间的空格,可以设置 autoInsertSpacefalse 关闭 boolean true 5.17.0
block 将按钮宽度调整为其父宽度的选项 boolean false
classNames 语义化结构 class Record<SemanticDOM, string> - 5.4.0
color 设置按钮的颜色 default | primary | danger - 5.21.0
danger 设置危险按钮 boolean false
disabled 设置按钮失效状态 boolean false
ghost 幽灵属性,使按钮背景透明 boolean false
href 点击跳转的地址,指定此属性 button 的行为和 a 链接一致 string -
htmlType 设置 button 原生的 type 值,可选值请参考 HTML 标准 string button
icon 设置按钮的图标组件 ReactNode -
iconPosition 设置按钮图标组件的位置 start | end start 5.17.0
loading 设置按钮载入状态 boolean | { delay: number } false
shape 设置按钮形状 default | circle | round default
size 设置按钮大小 large | middle | small middle
styles 语义化结构 style Record<SemanticDOM, CSSProperties> - 5.4.0
target 相当于 a 链接的 target 属性href 存在时生效 string -
type 设置按钮类型 primary | dashed | link | text | default default
onClick 点击按钮时的回调 (event: React.MouseEvent<HTMLElement, MouseEvent>) => void -
variant 设置按钮的变体 outlined | dashed | solid | filled | text | link - 5.21.0

支持原生 button 的其他所有属性。

Semantic DOM

主题变量Design Token

FAQ

类型和颜色与变体如何选择?

类型本质上是颜色与变体的语法糖,内部为其提供了一组颜色与变体的映射关系。如果两者同时存在,优先使用类型。

<Button type="primary">click</Button>

等同于

<Button color="primary" variant="solid">
  click
</Button>

如何关闭点击波纹效果?

如果你不需要这个特性,可以设置 ConfigProviderwavedisabledtrue

<ConfigProvider wave={{ disabled: true }}>
  <Button>click</Button>
</ConfigProvider>

设计指引