# Button

> This is a clickable button.

## Definition

* **Type:** Class
* **Namespace:** [UnityEngine.UIElements](/engine/6000.0/script-reference/unityengine/uielements.md)
* **Assembly:** UnityEngine.UIElementsModule
* **Inherits from:** [TextElement](/engine/6000.0/script-reference/unityengine/uielements/textelement.md)
* **Implements:** [IEventHandler](/engine/6000.0/script-reference/unityengine/uielements/ieventhandler.md), [IResolvedStyle](/engine/6000.0/script-reference/unityengine/uielements/iresolvedstyle.md), [ITransform](/engine/6000.0/script-reference/unityengine/uielements/itransform.md), [ITransitionAnimations](/engine/6000.0/script-reference/unityengine/uielements/experimental/itransitionanimations.md), [IVisualElementScheduler](/engine/6000.0/script-reference/unityengine/uielements/ivisualelementscheduler.md), [IBindable](/engine/6000.0/script-reference/unityengine/uielements/ibindable.md), [INotifyValueChanged\<string>](/engine/6000.0/script-reference/unityengine/uielements/inotifyvaluechanged1.md), [ITextEdition](/engine/6000.0/script-reference/unityengine/uielements/itextedition.md), [ITextElementExperimentalFeatures](/engine/6000.0/script-reference/unityengine/uielements/itextelementexperimentalfeatures.md), [IExperimentalFeatures](/engine/6000.0/script-reference/unityengine/uielements/iexperimentalfeatures.md), [ITextSelection](/engine/6000.0/script-reference/unityengine/uielements/itextselection.md)

```csharp
public class Button : TextElement, IEventHandler, IResolvedStyle, ITransform, ITransitionAnimations, IVisualElementScheduler, IBindable, INotifyValueChanged<string>, ITextEdition, ITextElementExperimentalFeatures, IExperimentalFeatures, ITextSelection
```

## Remarks

A Button has a text label element that can respond to pointer and mouse events. You can add an icon to pair it with the text by assigning a Background (Texture, RenderTexture, Sprite or Vector Image) to the iconImage API or icon-image UXML property. Please note that by providing an icon image, this will automatically update the Button's hierarchy to contain an [Image](/engine/6000.0/script-reference/unityengine/uielements/image.md) and a text label element.

By default, a single left mouse click activates the Button's [Clickable](/engine/6000.0/script-reference/unityengine/uielements/clickable.md) property button. To remove this activator, or add more activators, modify the `clickable.activators` property. For details, see [ManipulatorActivationFilter](/engine/6000.0/script-reference/unityengine/uielements/manipulatoractivationfilter.md).

To bind a Button's text value to the contents of a variable, set the `binding-path` property in the UXML file, or the `bindingPath` property in the C# code, to a string that contains the variable name.

For more information, refer to [UXML element Button](/engine/6000.0/manual/uitoolkits/uielements/uie-element-ref/uie-uxml-element-button.md).

## Static Fields

| Value                                                                                                         | Description                                                                            |
| ------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| [iconOnlyUssClassName](/engine/6000.0/script-reference/unityengine/uielements/button/icononlyussclassname.md) | The USS class name for Button elements with an icon only, no text.                     |
| [iconUssClassName](/engine/6000.0/script-reference/unityengine/uielements/button/iconussclassname.md)         | The USS class name for Button elements with an icon.                                   |
| [imageUSSClassName](/engine/6000.0/script-reference/unityengine/uielements/button/imageussclassname.md)       | The USS class name of the image element that will be used to display the icon texture. |
| [ussClassName](/engine/6000.0/script-reference/unityengine/uielements/button/ussclassname.md)                 | USS class name of elements of this type.                                               |

## Constructors

| Constructor                                                                                                                                                  | Description                                                                                                                                                                                                                                   |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Button()](/engine/6000.0/script-reference/unityengine/uielements/button/ctor.md#button\(\))                                                                 | Constructs a Button.                                                                                                                                                                                                                          |
| [Button(System.Action)](/engine/6000.0/script-reference/unityengine/uielements/button/ctor.md#button\(action\))                                              | Constructs a button with an Action that is triggered when the button is clicked.                                                                                                                                                              |
| [Button(UnityEngine.UIElements.Background,System.Action)](/engine/6000.0/script-reference/unityengine/uielements/button/ctor.md#button\(background-action\)) | Constructs a button with a [Background](/engine/6000.0/script-reference/unityengine/uielements/background.md) and an Action. The image definition will be used to represent an icon while the Action is triggered when the button is clicked. |

## Properties

| Property                                                                                | Description                                                                              |
| --------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| [clickable](/engine/6000.0/script-reference/unityengine/uielements/button/clickable.md) | Clickable MouseManipulator for this Button.                                              |
| [iconImage](/engine/6000.0/script-reference/unityengine/uielements/button/iconimage.md) | The Texture, Sprite, or VectorImage that will represent an icon within a Button element. |

## Events

| Member                                                                              | Description                                    |
| ----------------------------------------------------------------------------------- | ---------------------------------------------- |
| [clicked](/engine/6000.0/script-reference/unityengine/uielements/button/clicked.md) | Callback triggered when the button is clicked. |

## Inheritance

**Inherited Members:**

* [TextElement.selectableUssClassName](/engine/6000.0/script-reference/unityengine/uielements/textelement/selectableussclassname.md)
* [TextElement.MeasureTextSize(string, float, MeasureMode, float, MeasureMode)](/engine/6000.0/script-reference/unityengine/uielements/textelement/measuretextsize.md)
* [TextElement.MarkDirtyText()](/engine/6000.0/script-reference/unityengine/uielements/textelement/markdirtytext.md)
* [TextElement.text](/engine/6000.0/script-reference/unityengine/uielements/textelement/text.md)
* [TextElement.enableRichText](/engine/6000.0/script-reference/unityengine/uielements/textelement/enablerichtext.md)
* [TextElement.emojiFallbackSupport](/engine/6000.0/script-reference/unityengine/uielements/textelement/emojifallbacksupport.md)
* [TextElement.parseEscapeSequences](/engine/6000.0/script-reference/unityengine/uielements/textelement/parseescapesequences.md)
* [TextElement.displayTooltipWhenElided](/engine/6000.0/script-reference/unityengine/uielements/textelement/displaytooltipwhenelided.md)
* [TextElement.isElided](/engine/6000.0/script-reference/unityengine/uielements/textelement/iselided.md)
* [TextElement.experimental](/engine/6000.0/script-reference/unityengine/uielements/textelement/experimental.md)
* [TextElement.selection](/engine/6000.0/script-reference/unityengine/uielements/textelement/selection.md)
* [BindableElement.binding](/engine/6000.0/script-reference/unityengine/uielements/bindableelement/binding.md)
* [BindableElement.bindingPath](/engine/6000.0/script-reference/unityengine/uielements/bindableelement/bindingpath.md)
* [VisualElement.disabledUssClassName](/engine/6000.0/script-reference/unityengine/uielements/visualelement/disabledussclassname.md)
* [VisualElement.SendEvent(EventBase)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/sendevent.md)
* [VisualElement.SetEnabled(bool)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/setenabled.md)
* [VisualElement.MarkDirtyRepaint()](/engine/6000.0/script-reference/unityengine/uielements/visualelement/markdirtyrepaint.md)
* [VisualElement.ContainsPoint(Vector2)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/containspoint.md)
* [VisualElement.GetClasses()](/engine/6000.0/script-reference/unityengine/uielements/visualelement/getclasses.md)
* [VisualElement.ClearClassList()](/engine/6000.0/script-reference/unityengine/uielements/visualelement/clearclasslist.md)
* [VisualElement.AddToClassList(string)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/addtoclasslist.md)
* [VisualElement.RemoveFromClassList(string)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/removefromclasslist.md)
* [VisualElement.ToggleInClassList(string)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/toggleinclasslist.md)
* [VisualElement.EnableInClassList(string, bool)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/enableinclasslist.md)
* [VisualElement.ClassListContains(string)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/classlistcontains.md)
* [VisualElement.FindAncestorUserData()](/engine/6000.0/script-reference/unityengine/uielements/visualelement/findancestoruserdata.md)
* [VisualElement.SetBinding(BindingId, Binding)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/setbinding.md)
* [VisualElement.GetBinding(BindingId)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/getbinding.md)
* [VisualElement.TryGetBinding(BindingId, Binding)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/trygetbinding.md)
* [VisualElement.GetBindingInfos()](/engine/6000.0/script-reference/unityengine/uielements/visualelement/getbindinginfos.md)
* [VisualElement.HasBinding(BindingId)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/hasbinding.md)
* [VisualElement.ClearBinding(BindingId)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/clearbinding.md)
* [VisualElement.ClearBindings()](/engine/6000.0/script-reference/unityengine/uielements/visualelement/clearbindings.md)
* [VisualElement.GetHierarchicalDataSourceContext()](/engine/6000.0/script-reference/unityengine/uielements/visualelement/gethierarchicaldatasourcecontext.md)
* [VisualElement.GetDataSourceContext(BindingId)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/getdatasourcecontext.md)
* [VisualElement.TryGetDataSourceContext(BindingId, DataSourceContext)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/trygetdatasourcecontext.md)
* [VisualElement.TryGetLastBindingToUIResult(BindingId, BindingResult)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/trygetlastbindingtouiresult.md)
* [VisualElement.TryGetLastBindingToSourceResult(BindingId, BindingResult)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/trygetlastbindingtosourceresult.md)
* [VisualElement.Add(VisualElement)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/add.md)
* [VisualElement.Insert(int, VisualElement)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/insert.md)
* [VisualElement.Remove(VisualElement)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/remove.md)
* [VisualElement.RemoveAt(int)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/removeat.md)
* [VisualElement.Clear()](/engine/6000.0/script-reference/unityengine/uielements/visualelement/clear.md)
* [VisualElement.ElementAt(int)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/elementat.md)
* [VisualElement.IndexOf(VisualElement)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/indexof.md)
* [VisualElement.Children()](/engine/6000.0/script-reference/unityengine/uielements/visualelement/children.md)
* [VisualElement.Sort(Comparison\<VisualElement>)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/sort.md)
* [VisualElement.BringToFront()](/engine/6000.0/script-reference/unityengine/uielements/visualelement/bringtofront.md)
* [VisualElement.SendToBack()](/engine/6000.0/script-reference/unityengine/uielements/visualelement/sendtoback.md)
* [VisualElement.PlaceBehind(VisualElement)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/placebehind.md)
* [VisualElement.PlaceInFront(VisualElement)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/placeinfront.md)
* [VisualElement.RemoveFromHierarchy()](/engine/6000.0/script-reference/unityengine/uielements/visualelement/removefromhierarchy.md)
* [VisualElement.GetFirstOfType\<T>()](/engine/6000.0/script-reference/unityengine/uielements/visualelement/getfirstoftype.md)
* [VisualElement.GetFirstAncestorOfType\<T>()](/engine/6000.0/script-reference/unityengine/uielements/visualelement/getfirstancestoroftype.md)
* [VisualElement.Contains(VisualElement)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/contains.md)
* [VisualElement.FindCommonAncestor(VisualElement)](/engine/6000.0/script-reference/unityengine/uielements/visualelement/findcommonancestor.md)
* [VisualElement.viewDataKey](/engine/6000.0/script-reference/unityengine/uielements/visualelement/viewdatakey.md)
* [VisualElement.userData](/engine/6000.0/script-reference/unityengine/uielements/visualelement/userdata.md)
* [VisualElement.disablePlayModeTint](/engine/6000.0/script-reference/unityengine/uielements/visualelement/disableplaymodetint.md)
* [VisualElement.usageHints](/engine/6000.0/script-reference/unityengine/uielements/visualelement/usagehints.md)
* [VisualElement.transform](/engine/6000.0/script-reference/unityengine/uielements/visualelement/transform.md)
* [VisualElement.scaledPixelsPerPoint](/engine/6000.0/script-reference/unityengine/uielements/visualelement/scaledpixelsperpoint.md)
* [VisualElement.layout](/engine/6000.0/script-reference/unityengine/uielements/visualelement/layout.md)
* [VisualElement.contentRect](/engine/6000.0/script-reference/unityengine/uielements/visualelement/contentrect.md)
* [VisualElement.paddingRect](/engine/6000.0/script-reference/unityengine/uielements/visualelement/paddingrect.md)
* [VisualElement.worldBound](/engine/6000.0/script-reference/unityengine/uielements/visualelement/worldbound.md)
* [VisualElement.localBound](/engine/6000.0/script-reference/unityengine/uielements/visualelement/localbound.md)
* [VisualElement.worldTransform](/engine/6000.0/script-reference/unityengine/uielements/visualelement/worldtransform.md)
* [VisualElement.pickingMode](/engine/6000.0/script-reference/unityengine/uielements/visualelement/pickingmode.md)
* [VisualElement.name](/engine/6000.0/script-reference/unityengine/uielements/visualelement/name.md)
* [VisualElement.enabledInHierarchy](/engine/6000.0/script-reference/unityengine/uielements/visualelement/enabledinhierarchy.md)
* [VisualElement.enabledSelf](/engine/6000.0/script-reference/unityengine/uielements/visualelement/enabledself.md)
* [VisualElement.languageDirection](/engine/6000.0/script-reference/unityengine/uielements/visualelement/languagedirection.md)
* [VisualElement.visible](/engine/6000.0/script-reference/unityengine/uielements/visualelement/visible.md)
* [VisualElement.generateVisualContent](/engine/6000.0/script-reference/unityengine/uielements/visualelement/generatevisualcontent.md)
* [VisualElement.dataSource](/engine/6000.0/script-reference/unityengine/uielements/visualelement/datasource.md)
* [VisualElement.dataSourcePath](/engine/6000.0/script-reference/unityengine/uielements/visualelement/datasourcepath.md)
* [VisualElement.dataSourceType](/engine/6000.0/script-reference/unityengine/uielements/visualelement/datasourcetype.md)
* [VisualElement.hierarchy](/engine/6000.0/script-reference/unityengine/uielements/visualelement/hierarchy-1.md)
* [VisualElement.parent](/engine/6000.0/script-reference/unityengine/uielements/visualelement/parent.md)
* [VisualElement.panel](/engine/6000.0/script-reference/unityengine/uielements/visualelement/panel.md)
* [VisualElement.contentContainer](/engine/6000.0/script-reference/unityengine/uielements/visualelement/contentcontainer.md)
* [VisualElement.visualTreeAssetSource](/engine/6000.0/script-reference/unityengine/uielements/visualelement/visualtreeassetsource.md)
* [VisualElement.this\[int\]](/engine/6000.0/script-reference/unityengine/uielements/visualelement/item.md)
* [VisualElement.childCount](/engine/6000.0/script-reference/unityengine/uielements/visualelement/childcount.md)
* [VisualElement.schedule](/engine/6000.0/script-reference/unityengine/uielements/visualelement/schedule.md)
* [VisualElement.style](/engine/6000.0/script-reference/unityengine/uielements/visualelement/style.md)
* [VisualElement.resolvedStyle](/engine/6000.0/script-reference/unityengine/uielements/visualelement/resolvedstyle.md)
* [VisualElement.customStyle](/engine/6000.0/script-reference/unityengine/uielements/visualelement/customstyle.md)
* [VisualElement.styleSheets](/engine/6000.0/script-reference/unityengine/uielements/visualelement/stylesheets.md)
* [VisualElement.tooltip](/engine/6000.0/script-reference/unityengine/uielements/visualelement/tooltip.md)
* [Focusable.Blur()](/engine/6000.0/script-reference/unityengine/uielements/focusable/blur.md)
* [Focusable.focusController](/engine/6000.0/script-reference/unityengine/uielements/focusable/focuscontroller.md)
* [Focusable.focusable](/engine/6000.0/script-reference/unityengine/uielements/focusable/focusable.md)
* [Focusable.tabIndex](/engine/6000.0/script-reference/unityengine/uielements/focusable/tabindex.md)
* [Focusable.delegatesFocus](/engine/6000.0/script-reference/unityengine/uielements/focusable/delegatesfocus.md)
* [Focusable.canGrabFocus](/engine/6000.0/script-reference/unityengine/uielements/focusable/cangrabfocus.md)
* [CallbackEventHandler.RegisterCallback\<T>(EventCallback\<T>, TrickleDown)](/engine/6000.0/script-reference/unityengine/uielements/callbackeventhandler/registercallback.md)
* [CallbackEventHandler.RegisterCallbackOnce\<T>(EventCallback\<T>, TrickleDown)](/engine/6000.0/script-reference/unityengine/uielements/callbackeventhandler/registercallbackonce.md)
* [CallbackEventHandler.RegisterCallback\<T, U>(EventCallback\<T, T>, T, TrickleDown)](/engine/6000.0/script-reference/unityengine/uielements/callbackeventhandler/registercallback.md)
* [CallbackEventHandler.RegisterCallbackOnce\<T, U>(EventCallback\<T, T>, T, TrickleDown)](/engine/6000.0/script-reference/unityengine/uielements/callbackeventhandler/registercallbackonce.md)
* [CallbackEventHandler.UnregisterCallback\<T>(EventCallback\<T>, TrickleDown)](/engine/6000.0/script-reference/unityengine/uielements/callbackeventhandler/unregistercallback.md)
* [CallbackEventHandler.UnregisterCallback\<T, U>(EventCallback\<T, T>, TrickleDown)](/engine/6000.0/script-reference/unityengine/uielements/callbackeventhandler/unregistercallback.md)
* [CallbackEventHandler.HasTrickleDownHandlers()](/engine/6000.0/script-reference/unityengine/uielements/callbackeventhandler/hastrickledownhandlers.md)
* [CallbackEventHandler.HasBubbleUpHandlers()](/engine/6000.0/script-reference/unityengine/uielements/callbackeventhandler/hasbubbleuphandlers.md)
* [CallbackEventHandler.HandleEventTrickleDown(EventBase)](/engine/6000.0/script-reference/unityengine/uielements/callbackeventhandler/handleeventtrickledown.md)
* [CallbackEventHandler.NotifyPropertyChanged(BindingId)](/engine/6000.0/script-reference/unityengine/uielements/callbackeventhandler/notifypropertychanged.md)
