# Button Development
The **Button** component can be used to set a capsule, circle, text, arc, or download button. For details, see [button](../reference/apis-arkui/arkui-js/js-components-basic-button.md).
## Creating a Button Component
Create a **Button** component in the .hml file under **pages/index**.
```html
```
```css
/* xxx.css */
.container {
width: 100%;
height: 100%;
flex-direction: column;
justify-content: center;
align-items: center;
background-color: #F1F3F5;
}
```

## Setting the Button Type
Set the **type** attribute of the **Button** component to **circle**, **text**, or any other supported value.
```html
```
```css
/* xxx.css */
.container {
width: 100%;
height: 100%;
background-color: #F1F3F5;
flex-direction: column;
align-items: center;
justify-content: center;
}
.circle {
font-size: 120px;
background-color: blue;
radius: 72px;
}
.text {
margin-top: 30px;
text-color: white;
font-size: 30px;
font-style: normal;
background-color: blue;
width: 50%;
height: 100px;
}
```

> **NOTE**
>
>If the icon used by the **Button** component is from the cloud, you must declare the **ohos.permission.INTERNET** permission in the **config.json** file under the **resources** folder.
Sample code for declaring the **ohos.permission.INTERNET** permission in the **config.json** file under the **resources** folder:
```
"module": {
"reqPermissions": [{
"name": "ohos.permission.INTERNET"
}],
}
```
## Showing the Download Progress
Add the **progress** method to the **Button** component to display the download progress in real time.
```html