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