The properties for the button component
Optional
key?: null | KeyOptional
ref?: Ref<HTMLButtonElement>Allows getting a ref to the component instance.
Once the component unmounts, React will set ref.current
to null
(or call the ref with null
if you passed a callback ref).
Optional
children?: ReactNodeOptional
dangerouslySetInnerHTML?: { __html: string | TrustedHTML }Optional
onCopy?: ClipboardEventHandler<HTMLButtonElement>Optional
onCopyCapture?: ClipboardEventHandler<HTMLButtonElement>Optional
onCut?: ClipboardEventHandler<HTMLButtonElement>Optional
onCutCapture?: ClipboardEventHandler<HTMLButtonElement>Optional
onPaste?: ClipboardEventHandler<HTMLButtonElement>Optional
onPasteCapture?: ClipboardEventHandler<HTMLButtonElement>Optional
onCompositionEnd?: CompositionEventHandler<HTMLButtonElement>Optional
onCompositionEndCapture?: CompositionEventHandler<HTMLButtonElement>Optional
onCompositionStart?: CompositionEventHandler<HTMLButtonElement>Optional
onCompositionStartCapture?: CompositionEventHandler<HTMLButtonElement>Optional
onCompositionUpdate?: CompositionEventHandler<HTMLButtonElement>Optional
onCompositionUpdateCapture?: CompositionEventHandler<HTMLButtonElement>Optional
onFocus?: FocusEventHandler<HTMLButtonElement>Optional
onFocusCapture?: FocusEventHandler<HTMLButtonElement>Optional
onBlur?: FocusEventHandler<HTMLButtonElement>Optional
onBlurCapture?: FocusEventHandler<HTMLButtonElement>Optional
onChange?: FormEventHandler<HTMLButtonElement>Optional
onChangeCapture?: FormEventHandler<HTMLButtonElement>Optional
onBeforeInput?: InputEventHandler<HTMLButtonElement>Optional
onBeforeInputCapture?: FormEventHandler<HTMLButtonElement>Optional
onInput?: FormEventHandler<HTMLButtonElement>Optional
onInputCapture?: FormEventHandler<HTMLButtonElement>Optional
onReset?: FormEventHandler<HTMLButtonElement>Optional
onResetCapture?: FormEventHandler<HTMLButtonElement>Optional
onSubmit?: FormEventHandler<HTMLButtonElement>Optional
onSubmitCapture?: FormEventHandler<HTMLButtonElement>Optional
onInvalid?: FormEventHandler<HTMLButtonElement>Optional
onInvalidCapture?: FormEventHandler<HTMLButtonElement>Optional
onLoad?: ReactEventHandler<HTMLButtonElement>Optional
onLoadCapture?: ReactEventHandler<HTMLButtonElement>Optional
onError?: ReactEventHandler<HTMLButtonElement>Optional
onErrorCapture?: ReactEventHandler<HTMLButtonElement>Optional
onKeyDown?: KeyboardEventHandler<HTMLButtonElement>Optional
onKeyDownCapture?: KeyboardEventHandler<HTMLButtonElement>Optional
onKeyPress?: KeyboardEventHandler<HTMLButtonElement>Optional
onKeyPressCapture?: KeyboardEventHandler<HTMLButtonElement>Optional
onKeyUp?: KeyboardEventHandler<HTMLButtonElement>Optional
onKeyUpCapture?: KeyboardEventHandler<HTMLButtonElement>Optional
onAbort?: ReactEventHandler<HTMLButtonElement>Optional
onAbortCapture?: ReactEventHandler<HTMLButtonElement>Optional
onCanPlay?: ReactEventHandler<HTMLButtonElement>Optional
onCanPlayCapture?: ReactEventHandler<HTMLButtonElement>Optional
onCanPlayThrough?: ReactEventHandler<HTMLButtonElement>Optional
onCanPlayThroughCapture?: ReactEventHandler<HTMLButtonElement>Optional
onDurationChange?: ReactEventHandler<HTMLButtonElement>Optional
onDurationChangeCapture?: ReactEventHandler<HTMLButtonElement>Optional
onEmptied?: ReactEventHandler<HTMLButtonElement>Optional
onEmptiedCapture?: ReactEventHandler<HTMLButtonElement>Optional
onEncrypted?: ReactEventHandler<HTMLButtonElement>Optional
onEncryptedCapture?: ReactEventHandler<HTMLButtonElement>Optional
onEnded?: ReactEventHandler<HTMLButtonElement>Optional
onEndedCapture?: ReactEventHandler<HTMLButtonElement>Optional
onLoadedData?: ReactEventHandler<HTMLButtonElement>Optional
onLoadedDataCapture?: ReactEventHandler<HTMLButtonElement>Optional
onLoadedMetadata?: ReactEventHandler<HTMLButtonElement>Optional
onLoadedMetadataCapture?: ReactEventHandler<HTMLButtonElement>Optional
onLoadStart?: ReactEventHandler<HTMLButtonElement>Optional
onLoadStartCapture?: ReactEventHandler<HTMLButtonElement>Optional
onPause?: ReactEventHandler<HTMLButtonElement>Optional
onPauseCapture?: ReactEventHandler<HTMLButtonElement>Optional
onPlay?: ReactEventHandler<HTMLButtonElement>Optional
onPlayCapture?: ReactEventHandler<HTMLButtonElement>Optional
onPlaying?: ReactEventHandler<HTMLButtonElement>Optional
onPlayingCapture?: ReactEventHandler<HTMLButtonElement>Optional
onProgress?: ReactEventHandler<HTMLButtonElement>Optional
onProgressCapture?: ReactEventHandler<HTMLButtonElement>Optional
onRateChange?: ReactEventHandler<HTMLButtonElement>Optional
onRateChangeCapture?: ReactEventHandler<HTMLButtonElement>Optional
onSeeked?: ReactEventHandler<HTMLButtonElement>Optional
onSeekedCapture?: ReactEventHandler<HTMLButtonElement>Optional
onSeeking?: ReactEventHandler<HTMLButtonElement>Optional
onSeekingCapture?: ReactEventHandler<HTMLButtonElement>Optional
onStalled?: ReactEventHandler<HTMLButtonElement>Optional
onStalledCapture?: ReactEventHandler<HTMLButtonElement>Optional
onSuspend?: ReactEventHandler<HTMLButtonElement>Optional
onSuspendCapture?: ReactEventHandler<HTMLButtonElement>Optional
onTimeUpdate?: ReactEventHandler<HTMLButtonElement>Optional
onTimeUpdateCapture?: ReactEventHandler<HTMLButtonElement>Optional
onVolumeChange?: ReactEventHandler<HTMLButtonElement>Optional
onVolumeChangeCapture?: ReactEventHandler<HTMLButtonElement>Optional
onWaiting?: ReactEventHandler<HTMLButtonElement>Optional
onWaitingCapture?: ReactEventHandler<HTMLButtonElement>Optional
onAuxClick?: MouseEventHandler<HTMLButtonElement>Optional
onAuxClickCapture?: MouseEventHandler<HTMLButtonElement>Optional
onClick?: MouseEventHandler<HTMLButtonElement>Optional
onClickCapture?: MouseEventHandler<HTMLButtonElement>Optional
onContextMenu?: MouseEventHandler<HTMLButtonElement>Optional
onContextMenuCapture?: MouseEventHandler<HTMLButtonElement>Optional
onDoubleClick?: MouseEventHandler<HTMLButtonElement>Optional
onDoubleClickCapture?: MouseEventHandler<HTMLButtonElement>Optional
onDrag?: DragEventHandler<HTMLButtonElement>Optional
onDragCapture?: DragEventHandler<HTMLButtonElement>Optional
onDragEnd?: DragEventHandler<HTMLButtonElement>Optional
onDragEndCapture?: DragEventHandler<HTMLButtonElement>Optional
onDragEnter?: DragEventHandler<HTMLButtonElement>Optional
onDragEnterCapture?: DragEventHandler<HTMLButtonElement>Optional
onDragExit?: DragEventHandler<HTMLButtonElement>Optional
onDragExitCapture?: DragEventHandler<HTMLButtonElement>Optional
onDragLeave?: DragEventHandler<HTMLButtonElement>Optional
onDragLeaveCapture?: DragEventHandler<HTMLButtonElement>Optional
onDragOver?: DragEventHandler<HTMLButtonElement>Optional
onDragOverCapture?: DragEventHandler<HTMLButtonElement>Optional
onDragStart?: DragEventHandler<HTMLButtonElement>Optional
onDragStartCapture?: DragEventHandler<HTMLButtonElement>Optional
onDrop?: DragEventHandler<HTMLButtonElement>Optional
onDropCapture?: DragEventHandler<HTMLButtonElement>Optional
onMouseDown?: MouseEventHandler<HTMLButtonElement>Optional
onMouseDownCapture?: MouseEventHandler<HTMLButtonElement>Optional
onMouseEnter?: MouseEventHandler<HTMLButtonElement>Optional
onMouseLeave?: MouseEventHandler<HTMLButtonElement>Optional
onMouseMove?: MouseEventHandler<HTMLButtonElement>Optional
onMouseMoveCapture?: MouseEventHandler<HTMLButtonElement>Optional
onMouseOut?: MouseEventHandler<HTMLButtonElement>Optional
onMouseOutCapture?: MouseEventHandler<HTMLButtonElement>Optional
onMouseOver?: MouseEventHandler<HTMLButtonElement>Optional
onMouseOverCapture?: MouseEventHandler<HTMLButtonElement>Optional
onMouseUp?: MouseEventHandler<HTMLButtonElement>Optional
onMouseUpCapture?: MouseEventHandler<HTMLButtonElement>Optional
onSelect?: ReactEventHandler<HTMLButtonElement>Optional
onSelectCapture?: ReactEventHandler<HTMLButtonElement>Optional
onTouchCancel?: TouchEventHandler<HTMLButtonElement>Optional
onTouchCancelCapture?: TouchEventHandler<HTMLButtonElement>Optional
onTouchEnd?: TouchEventHandler<HTMLButtonElement>Optional
onTouchEndCapture?: TouchEventHandler<HTMLButtonElement>Optional
onTouchMove?: TouchEventHandler<HTMLButtonElement>Optional
onTouchMoveCapture?: TouchEventHandler<HTMLButtonElement>Optional
onTouchStart?: TouchEventHandler<HTMLButtonElement>Optional
onTouchStartCapture?: TouchEventHandler<HTMLButtonElement>Optional
onPointerDown?: PointerEventHandler<HTMLButtonElement>Optional
onPointerDownCapture?: PointerEventHandler<HTMLButtonElement>Optional
onPointerMove?: PointerEventHandler<HTMLButtonElement>Optional
onPointerMoveCapture?: PointerEventHandler<HTMLButtonElement>Optional
onPointerUp?: PointerEventHandler<HTMLButtonElement>Optional
onPointerUpCapture?: PointerEventHandler<HTMLButtonElement>Optional
onPointerCancel?: PointerEventHandler<HTMLButtonElement>Optional
onPointerCancelCapture?: PointerEventHandler<HTMLButtonElement>Optional
onPointerEnter?: PointerEventHandler<HTMLButtonElement>Optional
onPointerLeave?: PointerEventHandler<HTMLButtonElement>Optional
onPointerOver?: PointerEventHandler<HTMLButtonElement>Optional
onPointerOverCapture?: PointerEventHandler<HTMLButtonElement>Optional
onPointerOut?: PointerEventHandler<HTMLButtonElement>Optional
onPointerOutCapture?: PointerEventHandler<HTMLButtonElement>Optional
onGotPointerCapture?: PointerEventHandler<HTMLButtonElement>Optional
onGotPointerCaptureCapture?: PointerEventHandler<HTMLButtonElement>Optional
onLostPointerCapture?: PointerEventHandler<HTMLButtonElement>Optional
onLostPointerCaptureCapture?: PointerEventHandler<HTMLButtonElement>Optional
onScroll?: UIEventHandler<HTMLButtonElement>Optional
onScrollCapture?: UIEventHandler<HTMLButtonElement>Optional
onScrollEnd?: UIEventHandler<HTMLButtonElement>Optional
onScrollEndCapture?: UIEventHandler<HTMLButtonElement>Optional
onWheel?: WheelEventHandler<HTMLButtonElement>Optional
onWheelCapture?: WheelEventHandler<HTMLButtonElement>Optional
onAnimationStart?: AnimationEventHandler<HTMLButtonElement>Optional
onAnimationStartCapture?: AnimationEventHandler<HTMLButtonElement>Optional
onAnimationEnd?: AnimationEventHandler<HTMLButtonElement>Optional
onAnimationEndCapture?: AnimationEventHandler<HTMLButtonElement>Optional
onAnimationIteration?: AnimationEventHandler<HTMLButtonElement>Optional
onAnimationIterationCapture?: AnimationEventHandler<HTMLButtonElement>Optional
onToggle?: ToggleEventHandler<HTMLButtonElement>Optional
onBeforeToggle?: ToggleEventHandler<HTMLButtonElement>Optional
onTransitionCancel?: TransitionEventHandler<HTMLButtonElement>Optional
onTransitionCancelCapture?: TransitionEventHandler<HTMLButtonElement>Optional
onTransitionEnd?: TransitionEventHandler<HTMLButtonElement>Optional
onTransitionEndCapture?: TransitionEventHandler<HTMLButtonElement>Optional
onTransitionRun?: TransitionEventHandler<HTMLButtonElement>Optional
onTransitionRunCapture?: TransitionEventHandler<HTMLButtonElement>Optional
onTransitionStart?: TransitionEventHandler<HTMLButtonElement>Optional
onTransitionStartCapture?: TransitionEventHandler<HTMLButtonElement>Optional
aria-activedescendant?: stringIdentifies the currently active element when DOM focus is on a composite widget, textbox, group, or application.
Optional
aria-atomic?: BooleanishIndicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute.
Optional
aria-autocomplete?: "none" | "list" | "inline" | "both"Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be presented if they are made.
Optional
aria-braillelabel?: stringDefines a string value that labels the current element, which is intended to be converted into Braille.
Optional
aria-brailleroledescription?: stringDefines a human-readable, author-localized abbreviated description for the role of an element, which is intended to be converted into Braille.
Optional
aria-busy?: BooleanishOptional
aria-checked?: boolean | "true" | "false" | "mixed"Indicates the current "checked" state of checkboxes, radio buttons, and other widgets.
Optional
aria-colcount?: numberDefines the total number of columns in a table, grid, or treegrid.
Optional
aria-colindex?: numberDefines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid.
Optional
aria-colindextext?: stringDefines a human readable text alternative of aria-colindex.
Optional
aria-colspan?: numberDefines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid.
Optional
aria-controls?: stringIdentifies the element (or elements) whose contents or presence are controlled by the current element.
Optional
aria-current?: boolean | "time" | "true" | "false" | "page" | "step" | "location" | "date"Indicates the element that represents the current item within a container or set of related elements.
Optional
aria-describedby?: stringIdentifies the element (or elements) that describes the object.
Optional
aria-description?: stringDefines a string value that describes or annotates the current element.
Optional
aria-details?: stringIdentifies the element that provides a detailed, extended description for the object.
Optional
aria-disabled?: BooleanishIndicates that the element is perceivable but disabled, so it is not editable or otherwise operable.
Optional
aria-dropeffect?: "none" | "link" | "copy" | "execute" | "move" | "popup"Indicates what functions can be performed when a dragged object is released on the drop target.
Optional
aria-errormessage?: stringIdentifies the element that provides an error message for the object.
Optional
aria-expanded?: BooleanishIndicates whether the element, or another grouping element it controls, is currently expanded or collapsed.
Optional
aria-flowto?: stringIdentifies the next element (or elements) in an alternate reading order of content which, at the user's discretion, allows assistive technology to override the general default of reading in document source order.
Optional
aria-grabbed?: BooleanishIndicates an element's "grabbed" state in a drag-and-drop operation.
Optional
aria-haspopup?: boolean | "dialog" | "grid" | "listbox" | "menu" | "tree" | "true" | "false"Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element.
Optional
aria-hidden?: BooleanishIndicates whether the element is exposed to an accessibility API.
Optional
aria-invalid?: boolean | "true" | "false" | "grammar" | "spelling"Indicates the entered value does not conform to the format expected by the application.
Optional
aria-keyshortcuts?: stringIndicates keyboard shortcuts that an author has implemented to activate or give focus to an element.
Optional
aria-label?: stringDefines a string value that labels the current element.
Optional
aria-labelledby?: stringIdentifies the element (or elements) that labels the current element.
Optional
aria-level?: numberDefines the hierarchical level of an element within a structure.
Optional
aria-live?: "off" | "assertive" | "polite"Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region.
Optional
aria-modal?: BooleanishIndicates whether an element is modal when displayed.
Optional
aria-multiline?: BooleanishIndicates whether a text box accepts multiple lines of input or only a single line.
Optional
aria-multiselectable?: BooleanishIndicates that the user may select more than one item from the current selectable descendants.
Optional
aria-orientation?: "horizontal" | "vertical"Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous.
Optional
aria-owns?: stringIdentifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship between DOM elements where the DOM hierarchy cannot be used to represent the relationship.
Optional
aria-placeholder?: stringDefines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value. A hint could be a sample value or a brief description of the expected format.
Optional
aria-posinset?: numberDefines an element's number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.
Optional
aria-pressed?: boolean | "true" | "false" | "mixed"Indicates the current "pressed" state of toggle buttons.
Optional
aria-readonly?: BooleanishIndicates that the element is not editable, but is otherwise operable.
Optional
aria-relevant?: Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified.
Optional
aria-required?: BooleanishIndicates that user input is required on the element before a form may be submitted.
Optional
aria-roledescription?: stringDefines a human-readable, author-localized description for the role of an element.
Optional
aria-rowcount?: numberDefines the total number of rows in a table, grid, or treegrid.
Optional
aria-rowindex?: numberDefines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid.
Optional
aria-rowindextext?: stringDefines a human readable text alternative of aria-rowindex.
Optional
aria-rowspan?: numberDefines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid.
Optional
aria-selected?: BooleanishIndicates the current "selected" state of various widgets.
Optional
aria-setsize?: numberDefines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.
Optional
aria-sort?: "none" | "ascending" | "descending" | "other"Indicates if items in a table or grid are sorted in ascending or descending order.
Optional
aria-valuemax?: numberDefines the maximum allowed value for a range widget.
Optional
aria-valuemin?: numberDefines the minimum allowed value for a range widget.
Optional
aria-valuenow?: numberDefines the current value for a range widget.
Optional
aria-valuetext?: stringDefines the human readable text alternative of aria-valuenow for a range widget.
Optional
defaultChecked?: booleanOptional
defaultValue?: string | number | readonly string[]Optional
suppressContentEditableWarning?: booleanOptional
suppressHydrationWarning?: booleanOptional
accessKey?: stringOptional
autoCapitalize?: "none" | string & {} | "off" | "on" | "sentences" | "words" | "characters"Optional
autoFocus?: booleanOptional
className?: stringOptional
contentEditable?: Booleanish | "inherit" | "plaintext-only"Optional
contextMenu?: stringOptional
dir?: stringOptional
draggable?: BooleanishOptional
enterKeyHint?: "search" | "enter" | "done" | "go" | "next" | "previous" | "send"Optional
hidden?: booleanOptional
id?: stringOptional
lang?: stringOptional
nonce?: stringOptional
slot?: stringOptional
spellCheck?: BooleanishOptional
style?: CSSPropertiesOptional
tabIndex?: numberOptional
title?: stringOptional
translate?: "yes" | "no"Optional
radioGroup?: stringOptional
role?: AriaRoleOptional
about?: stringOptional
content?: stringOptional
datatype?: stringOptional
inlist?: anyOptional
prefix?: stringOptional
property?: stringOptional
rel?: stringOptional
resource?: stringOptional
rev?: stringOptional
typeof?: stringOptional
vocab?: stringOptional
autoCorrect?: stringOptional
autoSave?: stringOptional
color?: stringOptional
itemProp?: stringOptional
itemScope?: booleanOptional
itemType?: stringOptional
itemID?: stringOptional
itemRef?: stringOptional
results?: numberOptional
security?: stringOptional
unselectable?: "off" | "on"Optional
popover?: "" | "auto" | "manual"Optional
popoverTargetAction?: "toggle" | "show" | "hide"Optional
popoverTarget?: stringOptional
inert?: booleanOptional
inputMode?: "none" | "text" | "search" | "tel" | "url" | "email" | "numeric" | "decimal"Hints at the type of data that might be entered by the user while editing the element or its contents
Optional
is?: stringSpecify that a standard HTML element should behave like a defined custom built-in element
Optional
exportparts?: stringOptional
part?: stringOptional
disabled?: booleanOptional
form?: stringOptional
formAction?: string | ((formData: FormData) => void | Promise<void>)Optional
formEncType?: stringOptional
formMethod?: stringOptional
formNoValidate?: booleanOptional
formTarget?: stringOptional
name?: stringOptional
type?: "button" | "submit" | "reset"Optional
value?: string | number | readonly string[]Optional
tw?: stringSpecify styles using Tailwind CSS classes. This feature is currently experimental.
If style
prop is also specified, styles generated with tw
prop will be overridden.
Example:
tw='w-full h-full bg-blue-200'
tw='text-9xl'
tw='text-[80px]'
Optional
size?: null | "sm" | "md"A styled button element with the provided props and styling variants
A reusable button component with customizable styling and size variants.