---
title: UIButton.Configuration
framework: uikit
role: symbol
role_heading: Structure
path: uikit/uibutton/configuration-swift.struct
---

# UIButton.Configuration

A configuration that specifies the appearance and behavior of a button and its contents.

## Declaration

```swift
struct Configuration
```

## Overview

Overview You can configure and update a button with a UIButton.Configuration. A button configuration contains all the customization options available with other methods, such as setTitle(_:for:), and can serve as a replacement for those methods. Alternatively, you can use a configuration in combination with these other methods and adopt new button behaviors and appearance without rewriting your customized UIButton code.

## Topics

### Creating configurations

- [plain()](uikit/uibutton/configuration-swift.struct/plain().md)
- [gray()](uikit/uibutton/configuration-swift.struct/gray().md)
- [tinted()](uikit/uibutton/configuration-swift.struct/tinted().md)
- [filled()](uikit/uibutton/configuration-swift.struct/filled().md)
- [borderless()](uikit/uibutton/configuration-swift.struct/borderless().md)
- [bordered()](uikit/uibutton/configuration-swift.struct/bordered().md)
- [borderedTinted()](uikit/uibutton/configuration-swift.struct/borderedtinted().md)
- [borderedProminent()](uikit/uibutton/configuration-swift.struct/borderedprominent().md)
- [glass()](uikit/uibutton/configuration-swift.struct/glass().md)
- [prominentGlass()](uikit/uibutton/configuration-swift.struct/prominentglass().md)
- [clearGlass()](uikit/uibutton/configuration-swift.struct/clearglass().md)
- [prominentClearGlass()](uikit/uibutton/configuration-swift.struct/prominentclearglass().md)
- [updated(for:)](uikit/uibutton/configuration-swift.struct/updated(for:).md)

### Configuring titles

- [title](uikit/uibutton/configuration-swift.struct/title.md)
- [subtitle](uikit/uibutton/configuration-swift.struct/subtitle.md)
- [attributedTitle](uikit/uibutton/configuration-swift.struct/attributedtitle.md)
- [attributedSubtitle](uikit/uibutton/configuration-swift.struct/attributedsubtitle.md)
- [titleTextAttributesTransformer](uikit/uibutton/configuration-swift.struct/titletextattributestransformer.md)
- [subtitleTextAttributesTransformer](uikit/uibutton/configuration-swift.struct/subtitletextattributestransformer.md)
- [UIConfigurationTextAttributesTransformer](uikit/uiconfigurationtextattributestransformer-swift.struct.md)
- [titlePadding](uikit/uibutton/configuration-swift.struct/titlepadding.md)
- [titleAlignment](uikit/uibutton/configuration-swift.struct/titlealignment-swift.property.md)
- [UIButton.Configuration.TitleAlignment](uikit/uibutton/configuration-swift.struct/titlealignment-swift.enum.md)
- [titleLineBreakMode](uikit/uibutton/configuration-swift.struct/titlelinebreakmode.md)
- [subtitleLineBreakMode](uikit/uibutton/configuration-swift.struct/subtitlelinebreakmode.md)

### Configuring images

- [image](uikit/uibutton/configuration-swift.struct/image.md)
- [imagePadding](uikit/uibutton/configuration-swift.struct/imagepadding.md)
- [imagePlacement](uikit/uibutton/configuration-swift.struct/imageplacement.md)
- [imageReservation](uikit/uibutton/configuration-swift.struct/imagereservation.md)
- [imageColorTransformer](uikit/uibutton/configuration-swift.struct/imagecolortransformer.md)
- [preferredSymbolConfigurationForImage](uikit/uibutton/configuration-swift.struct/preferredsymbolconfigurationforimage.md)

### Configuring layout

- [buttonSize](uikit/uibutton/configuration-swift.struct/buttonsize.md)
- [UIButton.Configuration.Size](uikit/uibutton/configuration-swift.struct/size.md)
- [contentInsets](uikit/uibutton/configuration-swift.struct/contentinsets.md)
- [setDefaultContentInsets()](uikit/uibutton/configuration-swift.struct/setdefaultcontentinsets().md)

### Configuring button colors

- [baseBackgroundColor](uikit/uibutton/configuration-swift.struct/basebackgroundcolor.md)
- [baseForegroundColor](uikit/uibutton/configuration-swift.struct/baseforegroundcolor.md)

### Configuring the button background

- [background](uikit/uibutton/configuration-swift.struct/background.md)
- [cornerStyle](uikit/uibutton/configuration-swift.struct/cornerstyle-swift.property.md)
- [UIButton.Configuration.CornerStyle](uikit/uibutton/configuration-swift.struct/cornerstyle-swift.enum.md)

### Configuring the indicator

- [indicator](uikit/uibutton/configuration-swift.struct/indicator-swift.property.md)
- [UIButton.Configuration.Indicator](uikit/uibutton/configuration-swift.struct/indicator-swift.enum.md)
- [indicatorColorTransformer](uikit/uibutton/configuration-swift.struct/indicatorcolortransformer.md)

### Configuring the activity indicator

- [showsActivityIndicator](uikit/uibutton/configuration-swift.struct/showsactivityindicator.md)
- [activityIndicatorColorTransformer](uikit/uibutton/configuration-swift.struct/activityindicatorcolortransformer.md)

### Configuring selection behavior

- [automaticallyUpdateForSelection](uikit/uibutton/configuration-swift.struct/automaticallyupdateforselection.md)

### Configuring the appearance on macOS

- [macIdiomStyle](uikit/uibutton/configuration-swift.struct/macidiomstyle-swift.property.md)
- [UIButton.Configuration.MacIdiomStyle](uikit/uibutton/configuration-swift.struct/macidiomstyle-swift.enum.md)

### Instance Properties

- [symbolContentTransition](uikit/uibutton/configuration-swift.struct/symbolcontenttransition.md)

## Relationships

### Conforms To

- [Copyable](swift/copyable.md)
- [Equatable](swift/equatable.md)
- [Escapable](swift/escapable.md)
- [Hashable](swift/hashable.md)

## See Also

### Creating buttons from a configuration object

- [init(configuration:primaryAction:)](uikit/uibutton/init(configuration:primaryaction:).md)
