1```eval_rst
2.. include:: /header.rst
3:github_url: |github_link_base|/widgets/core/btn.md
4```
5# Button (lv_btn)
6
7## Overview
8
9Buttons have no new features compared to the [Base object](/widgets/obj). They are useful for semantic purposes and have slightly different default settings.
10
11Buttons, by default, differ from Base object in the following ways:
12- Not scrollable
13- Added to the default group
14- Default height and width set to `LV_SIZE_CONTENT`
15
16## Parts and Styles
17- `LV_PART_MAIN` The background of the button. Uses the typical background style properties.
18
19## Usage
20
21There are no new features compared to [Base object](/widgets/obj).
22
23## Events
24- `LV_EVENT_VALUE_CHANGED` when the `LV_OBJ_FLAG_CHECKABLE` flag is enabled and the object is clicked. The event happens on transition to/from the checked state.
25
26
27Learn more about [Events](/overview/event).
28
29## Keys
30Note that the state of `LV_KEY_ENTER` is translated to `LV_EVENT_PRESSED/PRESSING/RELEASED` etc.
31
32See the events of the [Base object](/widgets/obj) too.
33
34Learn more about [Keys](/overview/indev).
35
36## Example
37```eval_rst
38
39.. include:: ../../../examples/widgets/btn/index.rst
40
41```
42
43## API
44
45```eval_rst
46
47.. doxygenfile:: lv_btn.h
48  :project: lvgl
49
50```
51