ant-design/components/button/index.en-US.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.1 KiB
Raw Blame History

category title description cover coverDark demo group
Components Button To trigger an operation. 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
General 1

When To Use

A button means an operation (or a series of operations). Clicking a button will trigger its corresponding business logic.

In Ant Design we provide 5 types of button.

  • Primary button: used for the main action, there can be at most one primary button in a section.
  • Default button: used for a series of actions without priority.
  • Dashed button: commonly used for adding more actions.
  • Text button: used for the most secondary action.
  • Link button: used for external links.

And 4 other properties additionally.

  • danger: used for actions of risk, like deletion or authorization.
  • ghost: used in situations with complex background, home pages usually.
  • disabled: used when actions are not available.
  • loading: adds a loading spinner in button, avoids multiple submits too.

Examples

Type Color & Variant Icon Icon Position Debug Icon Debug Block Size Disabled Loading Multiple Buttons Ghost Button Danger Buttons Block Button Deprecated Button Group Loading style bug Component Token Gradient Button

API

Common props refCommon props

Different button styles can be generated by setting Button properties. The recommended order is: type -> shape -> size -> loading -> disabled.

Property Description Type Default Version
autoInsertSpace We add a space between two Chinese characters by default, which can be removed by setting autoInsertSpace to false. boolean true 5.17.0
block Option to fit button width to its parent width boolean false
classNames Semantic DOM class Record<SemanticDOM, string> - 5.4.0
color Set button color default | primary | danger - 5.21.0
danger Set the danger status of button boolean false
disabled Disabled state of button boolean false
ghost Make background transparent and invert text and border colors boolean false
href Redirect url of link button string -
htmlType Set the original html type of button, see: MDN string button
icon Set the icon component of button ReactNode -
iconPosition Set the icon position of button start | end start 5.17.0
loading Set the loading status of button boolean | { delay: number } false
shape Can be set button shape default | circle | round default
size Set the size of button large | middle | small middle
styles Semantic DOM style Record<SemanticDOM, CSSProperties> - 5.4.0
target Same as target attribute of a, works when href is specified string -
type Set button type primary | dashed | link | text | default default
onClick Set the handler to handle click event (event: React.MouseEvent<HTMLElement, MouseEvent>) => void -
variant Set button variant outlined | dashed | solid | filled | text | link - 5.21.0

It accepts all props which native buttons support.

Semantic DOM

Design Token

FAQ

How to choose type and color & variant?

Type is essentially syntactic sugar for colors and variants. It internally provides a set of mapping relationships between colors and variants for the type. If both exist at the same time, the type will be used first.

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

Equivalent

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

How to close the click wave effect?

If you don't need this feature, you can set disabled of wave in ConfigProvider as true.

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