# lv_obj_style.h (/api/public/core/lv_obj_style_h)



<RelatedHeaders name="lv_obj_style_private.h" isPrivate="false" />

<ApiSummary functions="43" enums="3" typedefs="1" />

Functions [#functions]

<ApiTabs items="[&#x22;Setters (12)&#x22;,&#x22;Getters (14)&#x22;,&#x22;Other (17)&#x22;]">
  <ApiTab value="Setters (12)">
    <ApiMember kind="function" name="lv_obj_set_style_enabled" file="public/core/lv_obj_style.h" line="185" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L185">
      lv_obj_set_style_enabled [#lv_obj_set_style_enabled]

      Temporary enable or disable a style for a selector. A disabled style will look like it wasn't added at all.

      ```c title=" " lineNumbers=1
      void lv_obj_set_style_enabled(lv_obj_t *obj, const lv_style_t *style, lv_style_selector_t selector, bool en)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                                       | Description                                                         |
      | ---------- | ---------------------------------------------------------- | ------------------------------------------------------------------- |
      | `obj`      | <ApiLink name="lv_obj_t" display="lv_obj_t *" />           | pointer to an object                                                |
      | `style`    | <ApiLink name="lv_style_t" display="const lv_style_t *" /> | pointer to a style                                                  |
      | `selector` | <ApiLink name="lv_style_selector_t" />                     | the selector of a style (e.g. LV\_STATE\_PRESSED \| LV\_PART\_KNOB) |
      | `en`       | `bool`                                                     | true: enable the style, false: disable the style                    |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_style_set_disabled" file="public/core/lv_obj_style.h" line="205" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L205">
      lv_obj_style_set_disabled [#lv_obj_style_set_disabled]

      Temporary disable a style for a selector. It will look like is the style wasn't added

      \> &#x2A;*Deprecated:** Use <ApiLink name="lv_obj_set_style_enabled" display="lv_obj_set_style_enabled()" /> instead (with inverted logic).

      ```c title=" " lineNumbers=1
      void lv_obj_style_set_disabled(lv_obj_t *obj, const lv_style_t *style, lv_style_selector_t selector, bool dis)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                                       | Description                                                         |
      | ---------- | ---------------------------------------------------------- | ------------------------------------------------------------------- |
      | `obj`      | <ApiLink name="lv_obj_t" display="lv_obj_t *" />           | pointer to an object                                                |
      | `style`    | <ApiLink name="lv_style_t" display="const lv_style_t *" /> | pointer to a style                                                  |
      | `selector` | <ApiLink name="lv_style_selector_t" />                     | the selector of a style (e.g. LV\_STATE\_PRESSED \| LV\_PART\_KNOB) |
      | `dis`      | `bool`                                                     | true: disable the style, false: enable the style                    |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_local_style_prop" file="public/core/lv_obj_style.h" line="253" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L253">
      lv_obj_set_local_style_prop [#lv_obj_set_local_style_prop]

      Set local style property on an object's part and state.

      ```c title=" " lineNumbers=1
      void lv_obj_set_local_style_prop(lv_obj_t *obj, lv_style_prop_t prop, lv_style_value_t value, lv_style_selector_t selector)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                             | Description                                                                                    |
      | ---------- | ------------------------------------------------ | ---------------------------------------------------------------------------------------------- |
      | `obj`      | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to an object                                                                           |
      | `prop`     | <ApiLink name="lv_style_prop_t" />               | the property                                                                                   |
      | `value`    | <ApiLink name="lv_style_value_t" />              | value of the property. The correct element should be set according to the type of the property |
      | `selector` | <ApiLink name="lv_style_selector_t" />           | OR-ed value of parts and state for which the style should be set                               |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_style_pad_all" file="public/core/lv_obj_style.h" line="313" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L313">
      lv_obj_set_style_pad_all [#lv_obj_set_style_pad_all]

      Sets padding on all four sides at once by calling <ApiLink name="lv_obj_set_style_pad_top" display="lv_obj_set_style_pad_top()" />, <ApiLink name="lv_obj_set_style_pad_bottom" display="lv_obj_set_style_pad_bottom()" />, <ApiLink name="lv_obj_set_style_pad_left" display="lv_obj_set_style_pad_left()" /> and <ApiLink name="lv_obj_set_style_pad_right" display="lv_obj_set_style_pad_right()" /> with the same value.

      ```c title=" " lineNumbers=1
      void lv_obj_set_style_pad_all(lv_obj_t *obj, int32_t value, lv_style_selector_t selector)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                             | Description                                                                                       |                                                                                             |                    |                      |
      | ---------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------ | -------------------- |
      | `obj`      | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | Pointer to Widget                                                                                 |                                                                                             |                    |                      |
      | `value`    | `int32_t`                                        | Value to submit                                                                                   |                                                                                             |                    |                      |
      | `selector` | <ApiLink name="lv_style_selector_t" />           | A joint type for `lv_part_t` and `lv_state_t`. Example values:<br />- `0`: means \`LV\_PART\_MAIN | LV\_STATE\_DEFAULT`<br/>- `LV\_STATE\_PRESSED`<br/>- `LV\_PART\_KNOB`<br/>- `LV\_PART\_KNOB | LV\_STATE\_PRESSED | LV\_STATE\_CHECKED\` |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_style_pad_hor" file="public/core/lv_obj_style.h" line="326" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L326">
      lv_obj_set_style_pad_hor [#lv_obj_set_style_pad_hor]

      Sets horizontal padding by calling <ApiLink name="lv_obj_set_style_pad_left" display="lv_obj_set_style_pad_left()" /> and <ApiLink name="lv_obj_set_style_pad_right" display="lv_obj_set_style_pad_right()" /> with the same value.

      ```c title=" " lineNumbers=1
      void lv_obj_set_style_pad_hor(lv_obj_t *obj, int32_t value, lv_style_selector_t selector)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                             | Description                                                                                       |                                                                                             |                    |                      |
      | ---------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------ | -------------------- |
      | `obj`      | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | Pointer to Widget                                                                                 |                                                                                             |                    |                      |
      | `value`    | `int32_t`                                        | Value to submit                                                                                   |                                                                                             |                    |                      |
      | `selector` | <ApiLink name="lv_style_selector_t" />           | A joint type for `lv_part_t` and `lv_state_t`. Example values:<br />- `0`: means \`LV\_PART\_MAIN | LV\_STATE\_DEFAULT`<br/>- `LV\_STATE\_PRESSED`<br/>- `LV\_PART\_KNOB`<br/>- `LV\_PART\_KNOB | LV\_STATE\_PRESSED | LV\_STATE\_CHECKED\` |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_style_pad_ver" file="public/core/lv_obj_style.h" line="339" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L339">
      lv_obj_set_style_pad_ver [#lv_obj_set_style_pad_ver]

      Sets vertical padding by calling <ApiLink name="lv_obj_set_style_pad_top" display="lv_obj_set_style_pad_top()" /> and <ApiLink name="lv_obj_set_style_pad_bottom" display="lv_obj_set_style_pad_bottom()" /> with the same value.

      ```c title=" " lineNumbers=1
      void lv_obj_set_style_pad_ver(lv_obj_t *obj, int32_t value, lv_style_selector_t selector)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                             | Description                                                                                       |                                                                                             |                    |                      |
      | ---------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------ | -------------------- |
      | `obj`      | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | Pointer to Widget                                                                                 |                                                                                             |                    |                      |
      | `value`    | `int32_t`                                        | Value to submit                                                                                   |                                                                                             |                    |                      |
      | `selector` | <ApiLink name="lv_style_selector_t" />           | A joint type for `lv_part_t` and `lv_state_t`. Example values:<br />- `0`: means \`LV\_PART\_MAIN | LV\_STATE\_DEFAULT`<br/>- `LV\_STATE\_PRESSED`<br/>- `LV\_PART\_KNOB`<br/>- `LV\_PART\_KNOB | LV\_STATE\_PRESSED | LV\_STATE\_CHECKED\` |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_style_margin_all" file="public/core/lv_obj_style.h" line="353" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L353">
      lv_obj_set_style_margin_all [#lv_obj_set_style_margin_all]

      Sets margin on all four sides at once by calling <ApiLink name="lv_obj_set_style_margin_top" display="lv_obj_set_style_margin_top()" />, <ApiLink name="lv_obj_set_style_margin_bottom" display="lv_obj_set_style_margin_bottom()" />, <ApiLink name="lv_obj_set_style_margin_left" display="lv_obj_set_style_margin_left()" /> and <ApiLink name="lv_obj_set_style_margin_right" display="lv_obj_set_style_margin_right()" /> with the same value.

      ```c title=" " lineNumbers=1
      void lv_obj_set_style_margin_all(lv_obj_t *obj, int32_t value, lv_style_selector_t selector)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                             | Description                                                                                       |                                                                                             |                    |                      |
      | ---------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------ | -------------------- |
      | `obj`      | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | Pointer to Widget                                                                                 |                                                                                             |                    |                      |
      | `value`    | `int32_t`                                        | Value to submit                                                                                   |                                                                                             |                    |                      |
      | `selector` | <ApiLink name="lv_style_selector_t" />           | A joint type for `lv_part_t` and `lv_state_t`. Example values:<br />- `0`: means \`LV\_PART\_MAIN | LV\_STATE\_DEFAULT`<br/>- `LV\_STATE\_PRESSED`<br/>- `LV\_PART\_KNOB`<br/>- `LV\_PART\_KNOB | LV\_STATE\_PRESSED | LV\_STATE\_CHECKED\` |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_style_margin_hor" file="public/core/lv_obj_style.h" line="366" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L366">
      lv_obj_set_style_margin_hor [#lv_obj_set_style_margin_hor]

      Sets horizontal margin by calling <ApiLink name="lv_obj_set_style_margin_left" display="lv_obj_set_style_margin_left()" /> and <ApiLink name="lv_obj_set_style_margin_right" display="lv_obj_set_style_margin_right()" /> with the same value.

      ```c title=" " lineNumbers=1
      void lv_obj_set_style_margin_hor(lv_obj_t *obj, int32_t value, lv_style_selector_t selector)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                             | Description                                                                                       |                                                                                             |                    |                      |
      | ---------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------ | -------------------- |
      | `obj`      | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | Pointer to Widget                                                                                 |                                                                                             |                    |                      |
      | `value`    | `int32_t`                                        | Value to submit                                                                                   |                                                                                             |                    |                      |
      | `selector` | <ApiLink name="lv_style_selector_t" />           | A joint type for `lv_part_t` and `lv_state_t`. Example values:<br />- `0`: means \`LV\_PART\_MAIN | LV\_STATE\_DEFAULT`<br/>- `LV\_STATE\_PRESSED`<br/>- `LV\_PART\_KNOB`<br/>- `LV\_PART\_KNOB | LV\_STATE\_PRESSED | LV\_STATE\_CHECKED\` |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_style_margin_ver" file="public/core/lv_obj_style.h" line="379" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L379">
      lv_obj_set_style_margin_ver [#lv_obj_set_style_margin_ver]

      Sets vertical margin by calling <ApiLink name="lv_obj_set_style_margin_top" display="lv_obj_set_style_margin_top()" /> and <ApiLink name="lv_obj_set_style_margin_bottom" display="lv_obj_set_style_margin_bottom()" /> with the same value.

      ```c title=" " lineNumbers=1
      void lv_obj_set_style_margin_ver(lv_obj_t *obj, int32_t value, lv_style_selector_t selector)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                             | Description                                                                                       |                                                                                             |                    |                      |
      | ---------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------ | -------------------- |
      | `obj`      | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | Pointer to Widget                                                                                 |                                                                                             |                    |                      |
      | `value`    | `int32_t`                                        | Value to submit                                                                                   |                                                                                             |                    |                      |
      | `selector` | <ApiLink name="lv_style_selector_t" />           | A joint type for `lv_part_t` and `lv_state_t`. Example values:<br />- `0`: means \`LV\_PART\_MAIN | LV\_STATE\_DEFAULT`<br/>- `LV\_STATE\_PRESSED`<br/>- `LV\_PART\_KNOB`<br/>- `LV\_PART\_KNOB | LV\_STATE\_PRESSED | LV\_STATE\_CHECKED\` |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_style_pad_gap" file="public/core/lv_obj_style.h" line="393" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L393">
      lv_obj_set_style_pad_gap [#lv_obj_set_style_pad_gap]

      Sets the gap between the children in both directions by calling <ApiLink name="lv_obj_set_style_pad_row" display="lv_obj_set_style_pad_row()" /> and <ApiLink name="lv_obj_set_style_pad_column" display="lv_obj_set_style_pad_column()" /> with the same value.

      ```c title=" " lineNumbers=1
      void lv_obj_set_style_pad_gap(lv_obj_t *obj, int32_t value, lv_style_selector_t selector)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                             | Description                                                                                       |                                                                                             |                    |                      |
      | ---------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------ | -------------------- |
      | `obj`      | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | Pointer to Widget                                                                                 |                                                                                             |                    |                      |
      | `value`    | `int32_t`                                        | Value to submit                                                                                   |                                                                                             |                    |                      |
      | `selector` | <ApiLink name="lv_style_selector_t" />           | A joint type for `lv_part_t` and `lv_state_t`. Example values:<br />- `0`: means \`LV\_PART\_MAIN | LV\_STATE\_DEFAULT`<br/>- `LV\_STATE\_PRESSED`<br/>- `LV\_PART\_KNOB`<br/>- `LV\_PART\_KNOB | LV\_STATE\_PRESSED | LV\_STATE\_CHECKED\` |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_style_size" file="public/core/lv_obj_style.h" line="407" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L407">
      lv_obj_set_style_size [#lv_obj_set_style_size]

      Sets size of Widget by calling <ApiLink name="lv_obj_set_style_width" display="lv_obj_set_style_width()" /> and <ApiLink name="lv_obj_set_style_height" display="lv_obj_set_style_height()" />.

      ```c title=" " lineNumbers=1
      void lv_obj_set_style_size(lv_obj_t *obj, int32_t width, int32_t height, lv_style_selector_t selector)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                             | Description                                                                                       |                                                                                             |                    |                      |
      | ---------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------ | -------------------- |
      | `obj`      | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | Pointer to Widget                                                                                 |                                                                                             |                    |                      |
      | `width`    | `int32_t`                                        | Width value to submit                                                                             |                                                                                             |                    |                      |
      | `height`   | `int32_t`                                        | Height value to submit                                                                            |                                                                                             |                    |                      |
      | `selector` | <ApiLink name="lv_style_selector_t" />           | A joint type for `lv_part_t` and `lv_state_t`. Example values:<br />- `0`: means \`LV\_PART\_MAIN | LV\_STATE\_DEFAULT`<br/>- `LV\_STATE\_PRESSED`<br/>- `LV\_PART\_KNOB`<br/>- `LV\_PART\_KNOB | LV\_STATE\_PRESSED | LV\_STATE\_CHECKED\` |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_style_transform_scale" file="public/core/lv_obj_style.h" line="421" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L421">
      lv_obj_set_style_transform_scale [#lv_obj_set_style_transform_scale]

      Sets the zoom factor of Widget in both directions by calling <ApiLink name="lv_obj_set_style_transform_scale_x" display="lv_obj_set_style_transform_scale_x()" /> and <ApiLink name="lv_obj_set_style_transform_scale_y" display="lv_obj_set_style_transform_scale_y()" /> with the same value.

      ```c title=" " lineNumbers=1
      void lv_obj_set_style_transform_scale(lv_obj_t *obj, int32_t value, lv_style_selector_t selector)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                             | Description                                                                                       |                                                                                             |                    |                      |
      | ---------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------ | -------------------- |
      | `obj`      | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | Pointer to Widget                                                                                 |                                                                                             |                    |                      |
      | `value`    | `int32_t`                                        | Value to submit                                                                                   |                                                                                             |                    |                      |
      | `selector` | <ApiLink name="lv_style_selector_t" />           | A joint type for `lv_part_t` and `lv_state_t`. Example values:<br />- `0`: means \`LV\_PART\_MAIN | LV\_STATE\_DEFAULT`<br/>- `LV\_STATE\_PRESSED`<br/>- `LV\_PART\_KNOB`<br/>- `LV\_PART\_KNOB | LV\_STATE\_PRESSED | LV\_STATE\_CHECKED\` |
    </ApiMember>
  </ApiTab>

  <ApiTab value="Getters (14)">
    <ApiMember kind="function" name="lv_obj_get_style_enabled" file="public/core/lv_obj_style.h" line="194" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L194">
      lv_obj_get_style_enabled [#lv_obj_get_style_enabled]

      Get if a given style is enabled on an object.

      ```c title=" " lineNumbers=1
      bool lv_obj_get_style_enabled(lv_obj_t *obj, const lv_style_t *style, lv_style_selector_t selector)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                                       | Description                                                         |
      | ---------- | ---------------------------------------------------------- | ------------------------------------------------------------------- |
      | `obj`      | <ApiLink name="lv_obj_t" display="lv_obj_t *" />           | pointer to an object                                                |
      | `style`    | <ApiLink name="lv_style_t" display="const lv_style_t *" /> | pointer to a style                                                  |
      | `selector` | <ApiLink name="lv_style_selector_t" />                     | the selector of a style (e.g. LV\_STATE\_PRESSED \| LV\_PART\_KNOB) |

      **Returns:** `bool` — true: the style is enabled, false: the style is disabled
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_style_get_disabled" file="public/core/lv_obj_style.h" line="216" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L216">
      lv_obj_style_get_disabled [#lv_obj_style_get_disabled]

      Get if a given style is disabled on an object.

      \> &#x2A;*Deprecated:** Use <ApiLink name="lv_obj_get_style_enabled" display="lv_obj_get_style_enabled()" /> instead (with inverted logic).

      ```c title=" " lineNumbers=1
      bool lv_obj_style_get_disabled(lv_obj_t *obj, const lv_style_t *style, lv_style_selector_t selector)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                                       | Description                                                         |
      | ---------- | ---------------------------------------------------------- | ------------------------------------------------------------------- |
      | `obj`      | <ApiLink name="lv_obj_t" display="lv_obj_t *" />           | pointer to an object                                                |
      | `style`    | <ApiLink name="lv_style_t" display="const lv_style_t *" /> | pointer to a style                                                  |
      | `selector` | <ApiLink name="lv_style_selector_t" />                     | the selector of a style (e.g. LV\_STATE\_PRESSED \| LV\_PART\_KNOB) |

      **Returns:** `bool` — true: disable the style, false: enable the style
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_style_prop" file="public/core/lv_obj_style.h" line="235" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L235">
      lv_obj_get_style_prop [#lv_obj_get_style_prop]

      Get the value of a style property. The current state of the object will be considered. Inherited properties will be inherited. If a property is not set a default value will be returned.

      ```c title=" " lineNumbers=1
      lv_style_value_t lv_obj_get_style_prop(const lv_obj_t *obj, lv_part_t part, lv_style_prop_t prop)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name   | Type                                                   | Description                                  |
      | ------ | ------------------------------------------------------ | -------------------------------------------- |
      | `obj`  | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | pointer to an object                         |
      | `part` | <ApiLink name="lv_part_t" />                           | a part from which the property should be get |
      | `prop` | <ApiLink name="lv_style_prop_t" />                     | the property to get                          |

      **Returns:** <ApiLink name="lv_style_value_t" /> — the value of the property. Should be read from the correct field of the <ApiLink name="lv_style_value_t" /> according to the type of the property.
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_local_style_prop" file="public/core/lv_obj_style.h" line="256" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L256">
      lv_obj_get_local_style_prop [#lv_obj_get_local_style_prop]

      ```c title=" " lineNumbers=1
      lv_style_res_t lv_obj_get_local_style_prop(lv_obj_t *obj, lv_style_prop_t prop, lv_style_value_t *value, lv_style_selector_t selector)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                                             |
      | ---------- | ---------------------------------------------------------------- |
      | `obj`      | <ApiLink name="lv_obj_t" display="lv_obj_t *" />                 |
      | `prop`     | <ApiLink name="lv_style_prop_t" />                               |
      | `value`    | <ApiLink name="lv_style_value_t" display="lv_style_value_t *" /> |
      | `selector` | <ApiLink name="lv_style_selector_t" />                           |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_style_get_selector_state" file="public/core/lv_obj_style.h" line="289" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L289">
      lv_obj_style_get_selector_state [#lv_obj_style_get_selector_state]

      ```c title=" " lineNumbers=1
      static lv_state_t lv_obj_style_get_selector_state(lv_style_selector_t selector)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                   |
      | ---------- | -------------------------------------- |
      | `selector` | <ApiLink name="lv_style_selector_t" /> |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_style_get_selector_part" file="public/core/lv_obj_style.h" line="294" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L294">
      lv_obj_style_get_selector_part [#lv_obj_style_get_selector_part]

      ```c title=" " lineNumbers=1
      static lv_part_t lv_obj_style_get_selector_part(lv_style_selector_t selector)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                   |
      | ---------- | -------------------------------------- |
      | `selector` | <ApiLink name="lv_style_selector_t" /> |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_style_space_left" file="public/core/lv_obj_style.h" line="431" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L431">
      lv_obj_get_style_space_left [#lv_obj_get_style_space_left]

      Gets the space taken on the left side, i.e. the sum of `pad_left` and the border width. It tells how far the content area starts from the left edge of Widget's bounding box.

      ```c title=" " lineNumbers=1
      int32_t lv_obj_get_style_space_left(const lv_obj_t *obj, lv_part_t part)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name   | Type                                                   | Description                          |
      | ------ | ------------------------------------------------------ | ------------------------------------ |
      | `obj`  | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | Pointer to Widget                    |
      | `part` | <ApiLink name="lv_part_t" />                           | One of the `LV_PART_...` enum values |

      **Returns:** `int32_t` — Space on the left in pixels
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_style_space_right" file="public/core/lv_obj_style.h" line="441" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L441">
      lv_obj_get_style_space_right [#lv_obj_get_style_space_right]

      Gets the space taken on the right side, i.e. the sum of `pad_right` and the border width. It tells how far the content area ends from the right edge of Widget's bounding box.

      ```c title=" " lineNumbers=1
      int32_t lv_obj_get_style_space_right(const lv_obj_t *obj, lv_part_t part)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name   | Type                                                   | Description                          |
      | ------ | ------------------------------------------------------ | ------------------------------------ |
      | `obj`  | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | Pointer to Widget                    |
      | `part` | <ApiLink name="lv_part_t" />                           | One of the `LV_PART_...` enum values |

      **Returns:** `int32_t` — Space on the right in pixels
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_style_space_top" file="public/core/lv_obj_style.h" line="451" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L451">
      lv_obj_get_style_space_top [#lv_obj_get_style_space_top]

      Gets the space taken on the top side, i.e. the sum of `pad_top` and the border width. It tells how far the content area starts from the top edge of Widget's bounding box.

      ```c title=" " lineNumbers=1
      int32_t lv_obj_get_style_space_top(const lv_obj_t *obj, lv_part_t part)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name   | Type                                                   | Description                          |
      | ------ | ------------------------------------------------------ | ------------------------------------ |
      | `obj`  | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | Pointer to Widget                    |
      | `part` | <ApiLink name="lv_part_t" />                           | One of the `LV_PART_...` enum values |

      **Returns:** `int32_t` — Space on the top in pixels
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_style_space_bottom" file="public/core/lv_obj_style.h" line="461" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L461">
      lv_obj_get_style_space_bottom [#lv_obj_get_style_space_bottom]

      Gets the space taken on the bottom side, i.e. the sum of `pad_bottom` and the border width. It tells how far the content area ends from the bottom edge of Widget's bounding box.

      ```c title=" " lineNumbers=1
      int32_t lv_obj_get_style_space_bottom(const lv_obj_t *obj, lv_part_t part)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name   | Type                                                   | Description                          |
      | ------ | ------------------------------------------------------ | ------------------------------------ |
      | `obj`  | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | Pointer to Widget                    |
      | `part` | <ApiLink name="lv_part_t" />                           | One of the `LV_PART_...` enum values |

      **Returns:** `int32_t` — Space on the bottom in pixels
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_style_transform_scale_x_safe" file="public/core/lv_obj_style.h" line="485" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L485">
      lv_obj_get_style_transform_scale_x_safe [#lv_obj_get_style_transform_scale_x_safe]

      Gets the horizontal zoom factor of Widget in a way which is safe to divide or multiply by. Same as <ApiLink name="lv_obj_get_style_transform_scale_x" display="lv_obj_get_style_transform_scale_x()" /> except that `0` is replaced by `1` to avoid division by zero.

      ```c title=" " lineNumbers=1
      int32_t lv_obj_get_style_transform_scale_x_safe(const lv_obj_t *obj, lv_part_t part)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name   | Type                                                   | Description                          |
      | ------ | ------------------------------------------------------ | ------------------------------------ |
      | `obj`  | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | Pointer to Widget                    |
      | `part` | <ApiLink name="lv_part_t" />                           | One of the `LV_PART_...` enum values |

      **Returns:** `int32_t` — The horizontal scale factor, never `0`. `256` (`LV_SCALE_NONE`) means normal size.
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_style_transform_scale_y_safe" file="public/core/lv_obj_style.h" line="496" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L496">
      lv_obj_get_style_transform_scale_y_safe [#lv_obj_get_style_transform_scale_y_safe]

      Gets the vertical zoom factor of Widget in a way which is safe to divide or multiply by. Same as <ApiLink name="lv_obj_get_style_transform_scale_y" display="lv_obj_get_style_transform_scale_y()" /> except that `0` is replaced by `1` to avoid division by zero.

      ```c title=" " lineNumbers=1
      int32_t lv_obj_get_style_transform_scale_y_safe(const lv_obj_t *obj, lv_part_t part)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name   | Type                                                   | Description                          |
      | ------ | ------------------------------------------------------ | ------------------------------------ |
      | `obj`  | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | Pointer to Widget                    |
      | `part` | <ApiLink name="lv_part_t" />                           | One of the `LV_PART_...` enum values |

      **Returns:** `int32_t` — The vertical scale factor, never `0`. `256` (`LV_SCALE_NONE`) means normal size.
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_style_opa_recursive" file="public/core/lv_obj_style.h" line="505" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L505">
      lv_obj_get_style_opa_recursive [#lv_obj_get_style_opa_recursive]

      Get the `opa` style property from all parents and multiply and `>> 8` them.

      ```c title=" " lineNumbers=1
      lv_opa_t lv_obj_get_style_opa_recursive(const lv_obj_t *obj, lv_part_t part)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name   | Type                                                   | Description                                                                                       |
      | ------ | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------- |
      | `obj`  | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | the object whose opacity should be get                                                            |
      | `part` | <ApiLink name="lv_part_t" />                           | the part whose opacity should be get. Non-MAIN parts will consider the `opa` of the MAIN part too |

      **Returns:** <ApiLink name="lv_opa_t" /> — the final opacity considering the parents' opacity too
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_style_recolor_recursive" file="public/core/lv_obj_style.h" line="524" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L524">
      lv_obj_get_style_recolor_recursive [#lv_obj_get_style_recolor_recursive]

      Get the `recolor` style property from all parents and blend them recursively.

      ```c title=" " lineNumbers=1
      lv_color32_t lv_obj_get_style_recolor_recursive(const lv_obj_t *obj, lv_part_t part)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name   | Type                                                   | Description                                                                                                           |
      | ------ | ------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------- |
      | `obj`  | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | the object whose recolor value should be retrieved                                                                    |
      | `part` | <ApiLink name="lv_part_t" />                           | the target part to check. Non-MAIN parts will also consider the `recolor` value from the MAIN part during calculation |

      **Returns:** <ApiLink name="lv_color32_t" /> — the final blended recolor value combining all parent's recolor values
    </ApiMember>
  </ApiTab>

  <ApiTab value="Other (17)">
    <ApiMember kind="function" name="lv_obj_add_style" file="public/core/lv_obj_style.h" line="107" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L107">
      lv_obj_add_style [#lv_obj_add_style]

      Add a style to an object.
      Examples:

      ```c title=" " lineNumbers=1
      lv_obj_add_style(btn, &style_btn, 0); //Default button style

      lv_obj_add_style(btn, &btn_red, LV_STATE_PRESSED); //Overwrite only some colors to red when pressed
      ```

      ```c title=" " lineNumbers=1
      void lv_obj_add_style(lv_obj_t *obj, const lv_style_t *style, lv_style_selector_t selector)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                                       | Description                                                       |
      | ---------- | ---------------------------------------------------------- | ----------------------------------------------------------------- |
      | `obj`      | <ApiLink name="lv_obj_t" display="lv_obj_t *" />           | pointer to an object                                              |
      | `style`    | <ApiLink name="lv_style_t" display="const lv_style_t *" /> | pointer to a style to add                                         |
      | `selector` | <ApiLink name="lv_style_selector_t" />                     | OR-ed value of parts and state to which the style should be added |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_replace_style" file="public/core/lv_obj_style.h" line="123" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L123">
      lv_obj_replace_style [#lv_obj_replace_style]

      Replaces a style of an object, preserving the order of the style stack (local styles and transitions are ignored).
      Examples:

      ```c title=" " lineNumbers=1
      lv_obj_replace_style(obj, &yellow_style, &blue_style, LV_PART_ANY | LV_STATE_ANY); //Replace a specific style

      lv_obj_replace_style(obj, &yellow_style, &blue_style, LV_PART_MAIN | LV_STATE_PRESSED); //Replace a specific style assigned to the main part when it is pressed
      ```

      ```c title=" " lineNumbers=1
      bool lv_obj_replace_style(lv_obj_t *obj, const lv_style_t *old_style, const lv_style_t *new_style, lv_style_selector_t selector)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name        | Type                                                       | Description                                                                                                                    |
      | ----------- | ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
      | `obj`       | <ApiLink name="lv_obj_t" display="lv_obj_t *" />           | pointer to an object                                                                                                           |
      | `old_style` | <ApiLink name="lv_style_t" display="const lv_style_t *" /> | pointer to a style to replace.                                                                                                 |
      | `new_style` | <ApiLink name="lv_style_t" display="const lv_style_t *" /> | pointer to a style to replace the old style with.                                                                              |
      | `selector`  | <ApiLink name="lv_style_selector_t" />                     | OR-ed values of states and a part to replace only styles with matching selectors. LV\_STATE\_ANY and LV\_PART\_ANY can be used |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_remove_style" file="public/core/lv_obj_style.h" line="143" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L143">
      lv_obj_remove_style [#lv_obj_remove_style]

      Remove a style from an object.

      Examples:

      ```c title=" " lineNumbers=1
      lv_obj_remove_style(obj, &style, LV_PART_ANY | LV_STATE_ANY); //Remove a specific style

      lv_obj_remove_style(obj, NULL, LV_PART_MAIN | LV_STATE_ANY); //Remove all styles from the main part

      lv_obj_remove_style(obj, NULL, LV_PART_ANY | LV_STATE_ANY); //Remove all styles
      ```

      ```c title=" " lineNumbers=1
      void lv_obj_remove_style(lv_obj_t *obj, const lv_style_t *style, lv_style_selector_t selector)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                                       | Description                                                                                            |
      | ---------- | ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
      | `obj`      | <ApiLink name="lv_obj_t" display="lv_obj_t *" />           | pointer to a widget                                                                                    |
      | `style`    | <ApiLink name="lv_style_t" display="const lv_style_t *" /> | pointer to a style to remove. **May** be `NULL`. When NULL every style matching `selector` is removed. |
      | `selector` | <ApiLink name="lv_style_selector_t" />                     | OR-ed value of parts and states to remove the style from                                               |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_remove_theme" file="public/core/lv_obj_style.h" line="152" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L152">
      lv_obj_remove_theme [#lv_obj_remove_theme]

      Remove all styles added by a theme from a widget

      ```c title=" " lineNumbers=1
      void lv_obj_remove_theme(lv_obj_t *obj, lv_style_selector_t selector)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                             | Description                                                                                                                   |
      | ---------- | ------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------- |
      | `obj`      | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to a widget                                                                                                           |
      | `selector` | <ApiLink name="lv_style_selector_t" />           | OR-ed values of states and a part to remove only styles with matching selectors. LV\_STATE\_ANY and LV\_PART\_ANY can be used |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_remove_style_all" file="public/core/lv_obj_style.h" line="158" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L158">
      lv_obj_remove_style_all [#lv_obj_remove_style_all]

      Remove all styles from an object

      ```c title=" " lineNumbers=1
      void lv_obj_remove_style_all(lv_obj_t *obj)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name  | Type                                             | Description          |
      | ----- | ------------------------------------------------ | -------------------- |
      | `obj` | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to an object |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_report_style_change" file="public/core/lv_obj_style.h" line="165" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L165">
      lv_obj_report_style_change [#lv_obj_report_style_change]

      Notify all object if a style is modified

      ```c title=" " lineNumbers=1
      void lv_obj_report_style_change(lv_style_t *style)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name    | Type                                                 | Description                                                                                                                   |
      | ------- | ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
      | `style` | <ApiLink name="lv_style_t" display="lv_style_t *" /> | pointer to a style. Only the objects with this style will be notified. **May** be `NULL`. When NULL every object is notified. |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_refresh_style" file="public/core/lv_obj_style.h" line="175" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L175">
      lv_obj_refresh_style [#lv_obj_refresh_style]

      Notify an object and its children about its style is modified.

      ```c title=" " lineNumbers=1
      void lv_obj_refresh_style(lv_obj_t *obj, lv_part_t part, lv_style_prop_t prop)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name   | Type                                             | Description                                                                                                                                                    |
      | ------ | ------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
      | `obj`  | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to an object                                                                                                                                           |
      | `part` | <ApiLink name="lv_part_t" />                     | the part whose style was changed. E.g. `LV_PART_ANY`, `LV_PART_MAIN`                                                                                           |
      | `prop` | <ApiLink name="lv_style_prop_t" />               | `LV_STYLE_PROP_ANY` or an `LV_STYLE_...` property. It is used to optimize what needs to be refreshed. `LV_STYLE_PROP_INV` to perform only a style cache update |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_enable_style_refresh" file="public/core/lv_obj_style.h" line="223" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L223">
      lv_obj_enable_style_refresh [#lv_obj_enable_style_refresh]

      Enable or disable automatic style refreshing when a new style is added/removed to/from an object or any other style change happens.

      ```c title=" " lineNumbers=1
      void lv_obj_enable_style_refresh(bool en)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name | Type   | Description                                        |
      | ---- | ------ | -------------------------------------------------- |
      | `en` | `bool` | true: enable refreshing; false: disable refreshing |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_has_style_prop" file="public/core/lv_obj_style.h" line="244" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L244">
      lv_obj_has_style_prop [#lv_obj_has_style_prop]

      Check if an object has a specified style property for a given style selector.

      ```c title=" " lineNumbers=1
      bool lv_obj_has_style_prop(const lv_obj_t *obj, lv_style_selector_t selector, lv_style_prop_t prop)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                                   | Description                                                                       |
      | ---------- | ------------------------------------------------------ | --------------------------------------------------------------------------------- |
      | `obj`      | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | pointer to an object                                                              |
      | `selector` | <ApiLink name="lv_style_selector_t" />                 | the style selector to be checked, defining the scope of the style to be examined. |
      | `prop`     | <ApiLink name="lv_style_prop_t" />                     | the property to be checked.                                                       |

      **Returns:** `bool` — true if the object has the specified selector and property, false otherwise.
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_remove_local_style_prop" file="public/core/lv_obj_style.h" line="266" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L266">
      lv_obj_remove_local_style_prop [#lv_obj_remove_local_style_prop]

      Remove a local style property from a part of an object with a given state.

      ```c title=" " lineNumbers=1
      bool lv_obj_remove_local_style_prop(lv_obj_t *obj, lv_style_prop_t prop, lv_style_selector_t selector)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                             | Description                                                          |
      | ---------- | ------------------------------------------------ | -------------------------------------------------------------------- |
      | `obj`      | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to an object                                                 |
      | `prop`     | <ApiLink name="lv_style_prop_t" />               | a style property to remove.                                          |
      | `selector` | <ApiLink name="lv_style_selector_t" />           | OR-ed value of parts and state for which the style should be removed |

      **Returns:** `bool` — true the property was found and removed; false: the property was not found
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_style_apply_color_filter" file="public/core/lv_obj_style.h" line="271" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L271">
      lv_obj_style_apply_color_filter [#lv_obj_style_apply_color_filter]

      Used internally for color filtering

      ```c title=" " lineNumbers=1
      lv_style_value_t lv_obj_style_apply_color_filter(const lv_obj_t *obj, lv_part_t part, lv_style_value_t v)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name   | Type                                                   |
      | ------ | ------------------------------------------------------ |
      | `obj`  | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> |
      | `part` | <ApiLink name="lv_part_t" />                           |
      | `v`    | <ApiLink name="lv_style_value_t" />                    |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_fade_in" file="public/core/lv_obj_style.h" line="279" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L279">
      lv_obj_fade_in [#lv_obj_fade_in]

      Fade in an an object and all its children.

      ```c title=" " lineNumbers=1
      void lv_obj_fade_in(lv_obj_t *obj, uint32_t time, uint32_t delay)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name    | Type                                             | Description                  |
      | ------- | ------------------------------------------------ | ---------------------------- |
      | `obj`   | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | the object to fade in        |
      | `time`  | `uint32_t`                                       | time of fade                 |
      | `delay` | `uint32_t`                                       | delay to start the animation |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_fade_out" file="public/core/lv_obj_style.h" line="287" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L287">
      lv_obj_fade_out [#lv_obj_fade_out]

      Fade out an an object and all its children.

      ```c title=" " lineNumbers=1
      void lv_obj_fade_out(lv_obj_t *obj, uint32_t time, uint32_t delay)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name    | Type                                             | Description                  |
      | ------- | ------------------------------------------------ | ---------------------------- |
      | `obj`   | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | the object to fade out       |
      | `time`  | `uint32_t`                                       | time of fade                 |
      | `delay` | `uint32_t`                                       | delay to start the animation |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_calculate_style_text_align" file="public/core/lv_obj_style.h" line="474" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L474">
      lv_obj_calculate_style_text_align [#lv_obj_calculate_style_text_align]

      Gets the text alignment which should be really used. Compared to <ApiLink name="lv_obj_get_style_text_align" display="lv_obj_get_style_text_align()" /> it resolves `LV_TEXT_ALIGN_AUTO` by considering the base direction of Widget and the text itself.

      ```c title=" " lineNumbers=1
      lv_text_align_t lv_obj_calculate_style_text_align(const lv_obj_t *obj, lv_part_t part, const char *txt)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name   | Type                                                   | Description                                                                                                         |
      | ------ | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------- |
      | `obj`  | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | Pointer to Widget                                                                                                   |
      | `part` | <ApiLink name="lv_part_t" />                           | One of the `LV_PART_...` enum values                                                                                |
      | `txt`  | `const char *`                                         | The text to align. Its first strong character determines the direction if the base direction is `LV_BASE_DIR_AUTO`. |

      **Returns:** <ApiLink name="lv_text_align_t" /> — The resolved alignment: `LV_TEXT_ALIGN_LEFT/CENTER/RIGHT` (never `LV_TEXT_ALIGN_AUTO`)
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_style_apply_recolor" file="public/core/lv_obj_style.h" line="515" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L515">
      lv_obj_style_apply_recolor [#lv_obj_style_apply_recolor]

      Apply recolor effect to the input color based on the object's style properties.

      ```c title=" " lineNumbers=1
      lv_color32_t lv_obj_style_apply_recolor(const lv_obj_t *obj, lv_part_t part, lv_color32_t color)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name    | Type                                                   | Description                                           |
      | ------- | ------------------------------------------------------ | ----------------------------------------------------- |
      | `obj`   | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | the target object containing recolor style properties |
      | `part`  | <ApiLink name="lv_part_t" />                           | the part to retrieve recolor styles.                  |
      | `color` | <ApiLink name="lv_color32_t" />                        | the original color to be modified                     |

      **Returns:** <ApiLink name="lv_color32_t" /> — the blended color after applying recolor and opacity
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_bind_style" file="public/core/lv_obj_style.h" line="536" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L536">
      lv_obj_bind_style [#lv_obj_bind_style]

      Disable a style if a subject's value is not equal to a reference value

      ```c title=" " lineNumbers=1
      lv_observer_t * lv_obj_bind_style(lv_obj_t *obj, const lv_style_t *style, lv_style_selector_t selector, lv_subject_t *subject, int32_t ref_value)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name        | Type                                                       | Description                                     |
      | ----------- | ---------------------------------------------------------- | ----------------------------------------------- |
      | `obj`       | <ApiLink name="lv_obj_t" display="lv_obj_t *" />           | pointer to Widget                               |
      | `style`     | <ApiLink name="lv_style_t" display="const lv_style_t *" /> | pointer to a style                              |
      | `selector`  | <ApiLink name="lv_style_selector_t" />                     | pointer to a selector                           |
      | `subject`   | <ApiLink name="lv_subject_t" display="lv_subject_t *" />   | pointer to Subject                              |
      | `ref_value` | `int32_t`                                                  | reference value to compare Subject's value with |

      **Returns:** <ApiLink name="lv_observer_t" display="lv_observer_t *" /> — pointer to newly-created Observer
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_bind_style_prop" file="public/core/lv_obj_style.h" line="547" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L547">
      lv_obj_bind_style_prop [#lv_obj_bind_style_prop]

      Connect a subject's value to a style property of a widget.

      ```c title=" " lineNumbers=1
      lv_observer_t * lv_obj_bind_style_prop(lv_obj_t *obj, lv_style_prop_t prop, lv_style_selector_t selector, lv_subject_t *subject)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                                     | Description                                                              |                      |
      | ---------- | -------------------------------------------------------- | ------------------------------------------------------------------------ | -------------------- |
      | `obj`      | <ApiLink name="lv_obj_t" display="lv_obj_t *" />         | pointer to a Widget                                                      |                      |
      | `prop`     | <ApiLink name="lv_style_prop_t" />                       | a style property                                                         |                      |
      | `selector` | <ApiLink name="lv_style_selector_t" />                   | a selector for which the property should be added, e.g. \`LV\_PART\_KNOB | LV\_STATE\_PRESSED\` |
      | `subject`  | <ApiLink name="lv_subject_t" display="lv_subject_t *" /> | pointer a Subject to which value the property should be bound            |                      |

      **Returns:** <ApiLink name="lv_observer_t" display="lv_observer_t *" /> — pointer to newly-created Observer
    </ApiMember>
  </ApiTab>
</ApiTabs>

Enums [#enums]

<ApiMember kind="enum" name="lv_state_t" file="public/core/lv_obj_style.h" line="32" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L32">
  lv_state_t [#lv_state_t]

  Possible states of a widget. OR-ed values are possible

  | Name                 | Value     | Description                                                      |
  | -------------------- | --------- | ---------------------------------------------------------------- |
  | `LV_STATE_DEFAULT`   | `0`       |                                                                  |
  | `LV_STATE_ALT`       | `1 << 0`  |                                                                  |
  | `LV_STATE_CHECKED`   | `1 << 2`  |                                                                  |
  | `LV_STATE_FOCUSED`   | `1 << 3`  |                                                                  |
  | `LV_STATE_FOCUS_KEY` | `1 << 4`  |                                                                  |
  | `LV_STATE_EDITED`    | `1 << 5`  |                                                                  |
  | `LV_STATE_HOVERED`   | `1 << 6`  |                                                                  |
  | `LV_STATE_PRESSED`   | `1 << 7`  |                                                                  |
  | `LV_STATE_SCROLLED`  | `1 << 8`  |                                                                  |
  | `LV_STATE_DISABLED`  | `1 << 9`  |                                                                  |
  | `LV_STATE_USER_1`    | `1 << 12` |                                                                  |
  | `LV_STATE_USER_2`    | `1 << 13` |                                                                  |
  | `LV_STATE_USER_3`    | `1 << 14` |                                                                  |
  | `LV_STATE_USER_4`    | `1 << 15` |                                                                  |
  | `LV_STATE_ANY`       | `0xFFFF`  | Special value can be used in some functions to target all states |
</ApiMember>

<TypeUsedBy name="lv_state_t" count="14">
  * `lv_obj_add_state` — param `state`
  * `lv_obj_remove_state` — param `state`
  * `lv_obj_set_state` — param `state`
  * `lv_obj_has_state` — param `state`
  * `lv_obj_bind_state_if_eq` — param `state`
  * `lv_obj_bind_state_if_not_eq` — param `state`
  * `lv_obj_bind_state_if_gt` — param `state`
  * `lv_obj_bind_state_if_ge` — param `state`
  * `lv_obj_bind_state_if_lt` — param `state`
  * `lv_obj_bind_state_if_le` — param `state`
  * `lv_obj_style_create_transition` — param `prev_state`
  * `lv_obj_style_create_transition` — param `new_state`
  * `lv_obj_style_state_compare` — param `state1`
  * `lv_obj_style_state_compare` — param `state2`
</TypeUsedBy>

<ApiMember kind="enum" name="lv_part_t" file="public/core/lv_obj_style.h" line="60" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L60">
  lv_part_t [#lv_part_t]

  The possible parts of widgets. The parts can be considered as the internal building block of the widgets. E.g. slider = background + indicator + knob Not all parts are used by every widget

  | Name                   | Value      | Description                                                              |
  | ---------------------- | ---------- | ------------------------------------------------------------------------ |
  | `LV_PART_MAIN`         | `0x000000` | A background like rectangle                                              |
  | `LV_PART_SCROLLBAR`    | `0x010000` | The scrollbar(s)                                                         |
  | `LV_PART_INDICATOR`    | `0x020000` | Indicator, e.g. for slider, bar, switch, or the tick box of the checkbox |
  | `LV_PART_KNOB`         | `0x030000` | Like handle to grab to adjust the value                                  |
  | `LV_PART_SELECTED`     | `0x040000` | Indicate the currently selected option or section                        |
  | `LV_PART_ITEMS`        | `0x050000` | Used if the widget has multiple similar elements (e.g. table cells)      |
  | `LV_PART_CURSOR`       | `0x060000` | Mark a specific place e.g. for text area's cursor or on a chart          |
  | `LV_PART_CUSTOM_FIRST` | `0x080000` | Extension point for custom widgets                                       |
  | `LV_PART_ANY`          | `0x0F0000` | Special value can be used in some functions to target all parts          |
</ApiMember>

<TypeUsedBy name="lv_part_t" count="315">
  * `lv_obj_init_draw_rect_dsc` — param `part`
  * `lv_obj_init_draw_label_dsc` — param `part`
  * `lv_obj_init_draw_image_dsc` — param `part`
  * `lv_obj_init_draw_line_dsc` — param `part`
  * `lv_obj_init_draw_arc_dsc` — param `part`
  * `lv_obj_init_draw_blur_dsc` — param `part`
  * `lv_obj_calculate_ext_draw_size` — param `part`
  * `lv_obj_get_style_property` — param `part`
  * `lv_obj_refresh_style` — param `part`
  * `lv_obj_get_style_prop` — param `part`
  * `lv_obj_style_apply_color_filter` — param `part`
  * `lv_obj_get_style_space_left` — param `part`
  * `lv_obj_get_style_space_right` — param `part`
  * `lv_obj_get_style_space_top` — param `part`
  * `lv_obj_get_style_space_bottom` — param `part`
  * `lv_obj_calculate_style_text_align` — param `part`
  * `lv_obj_get_style_transform_scale_x_safe` — param `part`
  * `lv_obj_get_style_transform_scale_y_safe` — param `part`
  * `lv_obj_get_style_opa_recursive` — param `part`
  * `lv_obj_style_apply_recolor` — param `part`
  * `lv_obj_get_style_recolor_recursive` — param `part`
  * `lv_obj_get_style_width` — param `part`
  * `lv_obj_get_style_min_width` — param `part`
  * `lv_obj_get_style_max_width` — param `part`
  * `lv_obj_get_style_height` — param `part`
  * `lv_obj_get_style_min_height` — param `part`
  * `lv_obj_get_style_max_height` — param `part`
  * `lv_obj_get_style_length` — param `part`
  * `lv_obj_get_style_x` — param `part`
  * `lv_obj_get_style_y` — param `part`
  * `lv_obj_get_style_align` — param `part`
  * `lv_obj_get_style_transform_width` — param `part`
  * `lv_obj_get_style_transform_height` — param `part`
  * `lv_obj_get_style_translate_x` — param `part`
  * `lv_obj_get_style_translate_y` — param `part`
  * `lv_obj_get_style_translate_radial` — param `part`
  * `lv_obj_get_style_transform_scale_x` — param `part`
  * `lv_obj_get_style_transform_scale_y` — param `part`
  * `lv_obj_get_style_transform_rotation` — param `part`
  * `lv_obj_get_style_transform_pivot_x` — param `part`
  * `lv_obj_get_style_transform_pivot_y` — param `part`
  * `lv_obj_get_style_transform_skew_x` — param `part`
  * `lv_obj_get_style_transform_skew_y` — param `part`
  * `lv_obj_get_style_pad_top` — param `part`
  * `lv_obj_get_style_pad_bottom` — param `part`
  * `lv_obj_get_style_pad_left` — param `part`
  * `lv_obj_get_style_pad_right` — param `part`
  * `lv_obj_get_style_pad_row` — param `part`
  * `lv_obj_get_style_pad_column` — param `part`
  * `lv_obj_get_style_pad_radial` — param `part`
  * `lv_obj_get_style_margin_top` — param `part`
  * `lv_obj_get_style_margin_bottom` — param `part`
  * `lv_obj_get_style_margin_left` — param `part`
  * `lv_obj_get_style_margin_right` — param `part`
  * `lv_obj_get_style_bg_color` — param `part`
  * `lv_obj_get_style_bg_color_filtered` — param `part`
  * `lv_obj_get_style_bg_opa` — param `part`
  * `lv_obj_get_style_bg_grad_color` — param `part`
  * `lv_obj_get_style_bg_grad_color_filtered` — param `part`
  * `lv_obj_get_style_bg_grad_dir` — param `part`
  * `lv_obj_get_style_bg_main_stop` — param `part`
  * `lv_obj_get_style_bg_grad_stop` — param `part`
  * `lv_obj_get_style_bg_main_opa` — param `part`
  * `lv_obj_get_style_bg_grad_opa` — param `part`
  * `lv_obj_get_style_bg_grad` — param `part`
  * `lv_obj_get_style_bg_image_src` — param `part`
  * `lv_obj_get_style_bg_image_opa` — param `part`
  * `lv_obj_get_style_bg_image_recolor` — param `part`
  * `lv_obj_get_style_bg_image_recolor_filtered` — param `part`
  * `lv_obj_get_style_bg_image_recolor_opa` — param `part`
  * `lv_obj_get_style_bg_image_tiled` — param `part`
  * `lv_obj_get_style_border_color` — param `part`
  * `lv_obj_get_style_border_color_filtered` — param `part`
  * `lv_obj_get_style_border_opa` — param `part`
  * `lv_obj_get_style_border_width` — param `part`
  * `lv_obj_get_style_border_side` — param `part`
  * `lv_obj_get_style_border_post` — param `part`
  * `lv_obj_get_style_outline_width` — param `part`
  * `lv_obj_get_style_outline_color` — param `part`
  * `lv_obj_get_style_outline_color_filtered` — param `part`
  * `lv_obj_get_style_outline_opa` — param `part`
  * `lv_obj_get_style_outline_pad` — param `part`
  * `lv_obj_get_style_shadow_width` — param `part`
  * `lv_obj_get_style_shadow_offset_x` — param `part`
  * `lv_obj_get_style_shadow_offset_y` — param `part`
  * `lv_obj_get_style_shadow_spread` — param `part`
  * `lv_obj_get_style_shadow_color` — param `part`
  * `lv_obj_get_style_shadow_color_filtered` — param `part`
  * `lv_obj_get_style_shadow_opa` — param `part`
  * `lv_obj_get_style_image_opa` — param `part`
  * `lv_obj_get_style_image_recolor` — param `part`
  * `lv_obj_get_style_image_recolor_filtered` — param `part`
  * `lv_obj_get_style_image_recolor_opa` — param `part`
  * `lv_obj_get_style_image_colorkey` — param `part`
  * `lv_obj_get_style_line_width` — param `part`
  * `lv_obj_get_style_line_dash_width` — param `part`
  * `lv_obj_get_style_line_dash_gap` — param `part`
  * `lv_obj_get_style_line_rounded` — param `part`
  * `lv_obj_get_style_line_color` — param `part`
  * `lv_obj_get_style_line_color_filtered` — param `part`
  * `lv_obj_get_style_line_opa` — param `part`
  * `lv_obj_get_style_arc_width` — param `part`
  * `lv_obj_get_style_arc_rounded` — param `part`
  * `lv_obj_get_style_arc_color` — param `part`
  * `lv_obj_get_style_arc_color_filtered` — param `part`
  * `lv_obj_get_style_arc_opa` — param `part`
  * `lv_obj_get_style_arc_image_src` — param `part`
  * `lv_obj_get_style_text_color` — param `part`
  * `lv_obj_get_style_text_color_filtered` — param `part`
  * `lv_obj_get_style_text_opa` — param `part`
  * `lv_obj_get_style_text_font` — param `part`
  * `lv_obj_get_style_text_letter_space` — param `part`
  * `lv_obj_get_style_text_line_space` — param `part`
  * `lv_obj_get_style_text_decor` — param `part`
  * `lv_obj_get_style_text_align` — param `part`
  * `lv_obj_get_style_text_outline_stroke_color` — param `part`
  * `lv_obj_get_style_text_outline_stroke_color_filtered` — param `part`
  * `lv_obj_get_style_text_outline_stroke_width` — param `part`
  * `lv_obj_get_style_text_outline_stroke_opa` — param `part`
  * `lv_obj_get_style_text_leading_trim` — param `part`
  * `lv_obj_get_style_blur_radius` — param `part`
  * `lv_obj_get_style_blur_backdrop` — param `part`
  * `lv_obj_get_style_blur_quality` — param `part`
  * `lv_obj_get_style_drop_shadow_radius` — param `part`
  * `lv_obj_get_style_drop_shadow_offset_x` — param `part`
  * `lv_obj_get_style_drop_shadow_offset_y` — param `part`
  * `lv_obj_get_style_drop_shadow_color` — param `part`
  * `lv_obj_get_style_drop_shadow_color_filtered` — param `part`
  * `lv_obj_get_style_drop_shadow_opa` — param `part`
  * `lv_obj_get_style_drop_shadow_quality` — param `part`
  * `lv_obj_get_style_radius` — param `part`
  * `lv_obj_get_style_radial_offset` — param `part`
  * `lv_obj_get_style_clip_corner` — param `part`
  * `lv_obj_get_style_opa` — param `part`
  * `lv_obj_get_style_opa_layered` — param `part`
  * `lv_obj_get_style_color_filter_dsc` — param `part`
  * `lv_obj_get_style_color_filter_opa` — param `part`
  * `lv_obj_get_style_recolor` — param `part`
  * `lv_obj_get_style_recolor_opa` — param `part`
  * `lv_obj_get_style_anim` — param `part`
  * `lv_obj_get_style_anim_duration` — param `part`
  * `lv_obj_get_style_transition` — param `part`
  * `lv_obj_get_style_blend_mode` — param `part`
  * `lv_obj_get_style_layout` — param `part`
  * `lv_obj_get_style_base_dir` — param `part`
  * `lv_obj_get_style_bitmap_mask_src` — param `part`
  * `lv_obj_get_style_rotary_sensitivity` — param `part`
  * `lv_obj_get_style_flex_flow` — param `part`
  * `lv_obj_get_style_flex_main_place` — param `part`
  * `lv_obj_get_style_flex_cross_place` — param `part`
  * `lv_obj_get_style_flex_track_place` — param `part`
  * `lv_obj_get_style_flex_grow` — param `part`
  * `lv_obj_get_style_grid_column_dsc_array` — param `part`
  * `lv_obj_get_style_grid_column_align` — param `part`
  * `lv_obj_get_style_grid_row_dsc_array` — param `part`
  * `lv_obj_get_style_grid_row_align` — param `part`
  * `lv_obj_get_style_grid_cell_column_pos` — param `part`
  * `lv_obj_get_style_grid_cell_x_align` — param `part`
  * `lv_obj_get_style_grid_cell_column_span` — param `part`
  * `lv_obj_get_style_grid_cell_row_pos` — param `part`
  * `lv_obj_get_style_grid_cell_y_align` — param `part`
  * `lv_obj_get_style_grid_cell_row_span` — param `part`
  * `lv_scale_section_set_style` — param `part`
  * `lv_obj_calculate_style_text_align_internal` — param `part`
  * `lv_obj_get_style_space_left_internal` — param `part`
  * `lv_obj_get_style_space_right_internal` — param `part`
  * `lv_obj_get_style_space_top_internal` — param `part`
  * `lv_obj_get_style_space_bottom_internal` — param `part`
  * `lv_obj_get_style_transform_scale_x_safe_internal` — param `part`
  * `lv_obj_get_style_transform_scale_y_safe_internal` — param `part`
  * `lv_obj_get_style_width_internal` — param `part`
  * `lv_obj_get_style_min_width_internal` — param `part`
  * `lv_obj_get_style_max_width_internal` — param `part`
  * `lv_obj_get_style_height_internal` — param `part`
  * `lv_obj_get_style_min_height_internal` — param `part`
  * `lv_obj_get_style_max_height_internal` — param `part`
  * `lv_obj_get_style_length_internal` — param `part`
  * `lv_obj_get_style_x_internal` — param `part`
  * `lv_obj_get_style_y_internal` — param `part`
  * `lv_obj_get_style_align_internal` — param `part`
  * `lv_obj_get_style_transform_width_internal` — param `part`
  * `lv_obj_get_style_transform_height_internal` — param `part`
  * `lv_obj_get_style_translate_x_internal` — param `part`
  * `lv_obj_get_style_translate_y_internal` — param `part`
  * `lv_obj_get_style_translate_radial_internal` — param `part`
  * `lv_obj_get_style_transform_scale_x_internal` — param `part`
  * `lv_obj_get_style_transform_scale_y_internal` — param `part`
  * `lv_obj_get_style_transform_rotation_internal` — param `part`
  * `lv_obj_get_style_transform_pivot_x_internal` — param `part`
  * `lv_obj_get_style_transform_pivot_y_internal` — param `part`
  * `lv_obj_get_style_transform_skew_x_internal` — param `part`
  * `lv_obj_get_style_transform_skew_y_internal` — param `part`
  * `lv_obj_get_style_pad_top_internal` — param `part`
  * `lv_obj_get_style_pad_bottom_internal` — param `part`
  * `lv_obj_get_style_pad_left_internal` — param `part`
  * `lv_obj_get_style_pad_right_internal` — param `part`
  * `lv_obj_get_style_pad_row_internal` — param `part`
  * `lv_obj_get_style_pad_column_internal` — param `part`
  * `lv_obj_get_style_pad_radial_internal` — param `part`
  * `lv_obj_get_style_margin_top_internal` — param `part`
  * `lv_obj_get_style_margin_bottom_internal` — param `part`
  * `lv_obj_get_style_margin_left_internal` — param `part`
  * `lv_obj_get_style_margin_right_internal` — param `part`
  * `lv_obj_get_style_bg_color_internal` — param `part`
  * `lv_obj_get_style_bg_color_filtered_internal` — param `part`
  * `lv_obj_get_style_bg_opa_internal` — param `part`
  * `lv_obj_get_style_bg_grad_color_internal` — param `part`
  * `lv_obj_get_style_bg_grad_color_filtered_internal` — param `part`
  * `lv_obj_get_style_bg_grad_dir_internal` — param `part`
  * `lv_obj_get_style_bg_main_stop_internal` — param `part`
  * `lv_obj_get_style_bg_grad_stop_internal` — param `part`
  * `lv_obj_get_style_bg_main_opa_internal` — param `part`
  * `lv_obj_get_style_bg_grad_opa_internal` — param `part`
  * `lv_obj_get_style_bg_grad_internal` — param `part`
  * `lv_obj_get_style_bg_image_src_internal` — param `part`
  * `lv_obj_get_style_bg_image_opa_internal` — param `part`
  * `lv_obj_get_style_bg_image_recolor_internal` — param `part`
  * `lv_obj_get_style_bg_image_recolor_filtered_internal` — param `part`
  * `lv_obj_get_style_bg_image_recolor_opa_internal` — param `part`
  * `lv_obj_get_style_bg_image_tiled_internal` — param `part`
  * `lv_obj_get_style_border_color_internal` — param `part`
  * `lv_obj_get_style_border_color_filtered_internal` — param `part`
  * `lv_obj_get_style_border_opa_internal` — param `part`
  * `lv_obj_get_style_border_width_internal` — param `part`
  * `lv_obj_get_style_border_side_internal` — param `part`
  * `lv_obj_get_style_border_post_internal` — param `part`
  * `lv_obj_get_style_outline_width_internal` — param `part`
  * `lv_obj_get_style_outline_color_internal` — param `part`
  * `lv_obj_get_style_outline_color_filtered_internal` — param `part`
  * `lv_obj_get_style_outline_opa_internal` — param `part`
  * `lv_obj_get_style_outline_pad_internal` — param `part`
  * `lv_obj_get_style_shadow_width_internal` — param `part`
  * `lv_obj_get_style_shadow_offset_x_internal` — param `part`
  * `lv_obj_get_style_shadow_offset_y_internal` — param `part`
  * `lv_obj_get_style_shadow_spread_internal` — param `part`
  * `lv_obj_get_style_shadow_color_internal` — param `part`
  * `lv_obj_get_style_shadow_color_filtered_internal` — param `part`
  * `lv_obj_get_style_shadow_opa_internal` — param `part`
  * `lv_obj_get_style_image_opa_internal` — param `part`
  * `lv_obj_get_style_image_recolor_internal` — param `part`
  * `lv_obj_get_style_image_recolor_filtered_internal` — param `part`
  * `lv_obj_get_style_image_recolor_opa_internal` — param `part`
  * `lv_obj_get_style_image_colorkey_internal` — param `part`
  * `lv_obj_get_style_line_width_internal` — param `part`
  * `lv_obj_get_style_line_dash_width_internal` — param `part`
  * `lv_obj_get_style_line_dash_gap_internal` — param `part`
  * `lv_obj_get_style_line_rounded_internal` — param `part`
  * `lv_obj_get_style_line_color_internal` — param `part`
  * `lv_obj_get_style_line_color_filtered_internal` — param `part`
  * `lv_obj_get_style_line_opa_internal` — param `part`
  * `lv_obj_get_style_arc_width_internal` — param `part`
  * `lv_obj_get_style_arc_rounded_internal` — param `part`
  * `lv_obj_get_style_arc_color_internal` — param `part`
  * `lv_obj_get_style_arc_color_filtered_internal` — param `part`
  * `lv_obj_get_style_arc_opa_internal` — param `part`
  * `lv_obj_get_style_arc_image_src_internal` — param `part`
  * `lv_obj_get_style_text_color_internal` — param `part`
  * `lv_obj_get_style_text_color_filtered_internal` — param `part`
  * `lv_obj_get_style_text_opa_internal` — param `part`
  * `lv_obj_get_style_text_font_internal` — param `part`
  * `lv_obj_get_style_text_letter_space_internal` — param `part`
  * `lv_obj_get_style_text_line_space_internal` — param `part`
  * `lv_obj_get_style_text_decor_internal` — param `part`
  * `lv_obj_get_style_text_align_internal` — param `part`
  * `lv_obj_get_style_text_outline_stroke_color_internal` — param `part`
  * `lv_obj_get_style_text_outline_stroke_color_filtered_internal` — param `part`
  * `lv_obj_get_style_text_outline_stroke_width_internal` — param `part`
  * `lv_obj_get_style_text_outline_stroke_opa_internal` — param `part`
  * `lv_obj_get_style_text_leading_trim_internal` — param `part`
  * `lv_obj_get_style_blur_radius_internal` — param `part`
  * `lv_obj_get_style_blur_backdrop_internal` — param `part`
  * `lv_obj_get_style_blur_quality_internal` — param `part`
  * `lv_obj_get_style_drop_shadow_radius_internal` — param `part`
  * `lv_obj_get_style_drop_shadow_offset_x_internal` — param `part`
  * `lv_obj_get_style_drop_shadow_offset_y_internal` — param `part`
  * `lv_obj_get_style_drop_shadow_color_internal` — param `part`
  * `lv_obj_get_style_drop_shadow_color_filtered_internal` — param `part`
  * `lv_obj_get_style_drop_shadow_opa_internal` — param `part`
  * `lv_obj_get_style_drop_shadow_quality_internal` — param `part`
  * `lv_obj_get_style_radius_internal` — param `part`
  * `lv_obj_get_style_radial_offset_internal` — param `part`
  * `lv_obj_get_style_clip_corner_internal` — param `part`
  * `lv_obj_get_style_opa_internal` — param `part`
  * `lv_obj_get_style_opa_layered_internal` — param `part`
  * `lv_obj_get_style_color_filter_dsc_internal` — param `part`
  * `lv_obj_get_style_color_filter_opa_internal` — param `part`
  * `lv_obj_get_style_recolor_internal` — param `part`
  * `lv_obj_get_style_recolor_opa_internal` — param `part`
  * `lv_obj_get_style_anim_internal` — param `part`
  * `lv_obj_get_style_anim_duration_internal` — param `part`
  * `lv_obj_get_style_transition_internal` — param `part`
  * `lv_obj_get_style_blend_mode_internal` — param `part`
  * `lv_obj_get_style_layout_internal` — param `part`
  * `lv_obj_get_style_base_dir_internal` — param `part`
  * `lv_obj_get_style_bitmap_mask_src_internal` — param `part`
  * `lv_obj_get_style_rotary_sensitivity_internal` — param `part`
  * `lv_obj_get_style_flex_flow_internal` — param `part`
  * `lv_obj_get_style_flex_main_place_internal` — param `part`
  * `lv_obj_get_style_flex_cross_place_internal` — param `part`
  * `lv_obj_get_style_flex_track_place_internal` — param `part`
  * `lv_obj_get_style_flex_grow_internal` — param `part`
  * `lv_obj_get_style_grid_column_dsc_array_internal` — param `part`
  * `lv_obj_get_style_grid_column_align_internal` — param `part`
  * `lv_obj_get_style_grid_row_dsc_array_internal` — param `part`
  * `lv_obj_get_style_grid_row_align_internal` — param `part`
  * `lv_obj_get_style_grid_cell_column_pos_internal` — param `part`
  * `lv_obj_get_style_grid_cell_x_align_internal` — param `part`
  * `lv_obj_get_style_grid_cell_column_span_internal` — param `part`
  * `lv_obj_get_style_grid_cell_row_pos_internal` — param `part`
  * `lv_obj_get_style_grid_cell_y_align_internal` — param `part`
  * `lv_obj_get_style_grid_cell_row_span_internal` — param `part`
  * `lv_obj_style_create_transition` — param `part`
  * `lv_obj_style_state_compare` — param `changed_part`
  * `lv_obj_get_style_prop_internal` — param `part`
  * `lv_obj_style_apply_color_filter_internal` — param `part`
</TypeUsedBy>

<ApiMember kind="enum" name="lv_style_state_cmp_t" file="public/core/lv_obj_style.h" line="74" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L74">
  lv_style_state_cmp_t [#lv_style_state_cmp_t]

  | Name                               | Description                                        |
  | ---------------------------------- | -------------------------------------------------- |
  | `LV_STYLE_STATE_CMP_SAME`          | The style properties in the 2 states are identical |
  | `LV_STYLE_STATE_CMP_DIFF_REDRAW`   | The differences can be shown with a simple redraw  |
  | `LV_STYLE_STATE_CMP_DIFF_DRAW_PAD` | The differences can be shown with a simple redraw  |
  | `LV_STYLE_STATE_CMP_DIFF_LAYOUT`   | The differences can be shown with a simple redraw  |
</ApiMember>

Typedefs [#typedefs]

<ApiMember kind="typedef" name="lv_style_selector_t" file="public/core/lv_obj_style.h" line="88" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/core/lv_obj_style.h#L88">
  lv_style_selector_t [#lv_style_selector_t]

  ```c title=" " lineNumbers=1
  typedef uint32_t lv_style_selector_t
  ```

  A joint type for `lv_part_t` and `lv_state_t`. Example values

  * `0`: means `LV_PART_MAIN | LV_STATE_DEFAULT`
  * `LV_STATE_PRSSED`
  * `LV_PART_KNOB`
  * `LV_PART_KNOB | LV_STATE_PRESSED | LV_STATE_CHECKED`
</ApiMember>

<TypeUsedBy name="lv_style_selector_t" count="154">
  * `lv_obj_add_style` — param `selector`
  * `lv_obj_replace_style` — param `selector`
  * `lv_obj_remove_style` — param `selector`
  * `lv_obj_remove_theme` — param `selector`
  * `lv_obj_set_style_enabled` — param `selector`
  * `lv_obj_get_style_enabled` — param `selector`
  * `lv_obj_style_set_disabled` — param `selector`
  * `lv_obj_style_get_disabled` — param `selector`
  * `lv_obj_has_style_prop` — param `selector`
  * `lv_obj_set_local_style_prop` — param `selector`
  * `lv_obj_get_local_style_prop` — param `selector`
  * `lv_obj_remove_local_style_prop` — param `selector`
  * `lv_obj_style_get_selector_state` — param `selector`
  * `lv_obj_style_get_selector_part` — param `selector`
  * `lv_obj_set_style_pad_all` — param `selector`
  * `lv_obj_set_style_pad_hor` — param `selector`
  * `lv_obj_set_style_pad_ver` — param `selector`
  * `lv_obj_set_style_margin_all` — param `selector`
  * `lv_obj_set_style_margin_hor` — param `selector`
  * `lv_obj_set_style_margin_ver` — param `selector`
  * `lv_obj_set_style_pad_gap` — param `selector`
  * `lv_obj_set_style_size` — param `selector`
  * `lv_obj_set_style_transform_scale` — param `selector`
  * `lv_obj_bind_style` — param `selector`
  * `lv_obj_bind_style_prop` — param `selector`
  * `lv_obj_set_style_width` — param `selector`
  * `lv_obj_set_style_min_width` — param `selector`
  * `lv_obj_set_style_max_width` — param `selector`
  * `lv_obj_set_style_height` — param `selector`
  * `lv_obj_set_style_min_height` — param `selector`
  * `lv_obj_set_style_max_height` — param `selector`
  * `lv_obj_set_style_length` — param `selector`
  * `lv_obj_set_style_x` — param `selector`
  * `lv_obj_set_style_y` — param `selector`
  * `lv_obj_set_style_align` — param `selector`
  * `lv_obj_set_style_transform_width` — param `selector`
  * `lv_obj_set_style_transform_height` — param `selector`
  * `lv_obj_set_style_translate_x` — param `selector`
  * `lv_obj_set_style_translate_y` — param `selector`
  * `lv_obj_set_style_translate_radial` — param `selector`
  * `lv_obj_set_style_transform_scale_x` — param `selector`
  * `lv_obj_set_style_transform_scale_y` — param `selector`
  * `lv_obj_set_style_transform_rotation` — param `selector`
  * `lv_obj_set_style_transform_pivot_x` — param `selector`
  * `lv_obj_set_style_transform_pivot_y` — param `selector`
  * `lv_obj_set_style_transform_skew_x` — param `selector`
  * `lv_obj_set_style_transform_skew_y` — param `selector`
  * `lv_obj_set_style_pad_top` — param `selector`
  * `lv_obj_set_style_pad_bottom` — param `selector`
  * `lv_obj_set_style_pad_left` — param `selector`
  * `lv_obj_set_style_pad_right` — param `selector`
  * `lv_obj_set_style_pad_row` — param `selector`
  * `lv_obj_set_style_pad_column` — param `selector`
  * `lv_obj_set_style_pad_radial` — param `selector`
  * `lv_obj_set_style_margin_top` — param `selector`
  * `lv_obj_set_style_margin_bottom` — param `selector`
  * `lv_obj_set_style_margin_left` — param `selector`
  * `lv_obj_set_style_margin_right` — param `selector`
  * `lv_obj_set_style_bg_color` — param `selector`
  * `lv_obj_set_style_bg_opa` — param `selector`
  * `lv_obj_set_style_bg_grad_color` — param `selector`
  * `lv_obj_set_style_bg_grad_dir` — param `selector`
  * `lv_obj_set_style_bg_main_stop` — param `selector`
  * `lv_obj_set_style_bg_grad_stop` — param `selector`
  * `lv_obj_set_style_bg_main_opa` — param `selector`
  * `lv_obj_set_style_bg_grad_opa` — param `selector`
  * `lv_obj_set_style_bg_grad` — param `selector`
  * `lv_obj_set_style_bg_image_src` — param `selector`
  * `lv_obj_set_style_bg_image_opa` — param `selector`
  * `lv_obj_set_style_bg_image_recolor` — param `selector`
  * `lv_obj_set_style_bg_image_recolor_opa` — param `selector`
  * `lv_obj_set_style_bg_image_tiled` — param `selector`
  * `lv_obj_set_style_border_color` — param `selector`
  * `lv_obj_set_style_border_opa` — param `selector`
  * `lv_obj_set_style_border_width` — param `selector`
  * `lv_obj_set_style_border_side` — param `selector`
  * `lv_obj_set_style_border_post` — param `selector`
  * `lv_obj_set_style_outline_width` — param `selector`
  * `lv_obj_set_style_outline_color` — param `selector`
  * `lv_obj_set_style_outline_opa` — param `selector`
  * `lv_obj_set_style_outline_pad` — param `selector`
  * `lv_obj_set_style_shadow_width` — param `selector`
  * `lv_obj_set_style_shadow_offset_x` — param `selector`
  * `lv_obj_set_style_shadow_offset_y` — param `selector`
  * `lv_obj_set_style_shadow_spread` — param `selector`
  * `lv_obj_set_style_shadow_color` — param `selector`
  * `lv_obj_set_style_shadow_opa` — param `selector`
  * `lv_obj_set_style_image_opa` — param `selector`
  * `lv_obj_set_style_image_recolor` — param `selector`
  * `lv_obj_set_style_image_recolor_opa` — param `selector`
  * `lv_obj_set_style_image_colorkey` — param `selector`
  * `lv_obj_set_style_line_width` — param `selector`
  * `lv_obj_set_style_line_dash_width` — param `selector`
  * `lv_obj_set_style_line_dash_gap` — param `selector`
  * `lv_obj_set_style_line_rounded` — param `selector`
  * `lv_obj_set_style_line_color` — param `selector`
  * `lv_obj_set_style_line_opa` — param `selector`
  * `lv_obj_set_style_arc_width` — param `selector`
  * `lv_obj_set_style_arc_rounded` — param `selector`
  * `lv_obj_set_style_arc_color` — param `selector`
  * `lv_obj_set_style_arc_opa` — param `selector`
  * `lv_obj_set_style_arc_image_src` — param `selector`
  * `lv_obj_set_style_text_color` — param `selector`
  * `lv_obj_set_style_text_opa` — param `selector`
  * `lv_obj_set_style_text_font` — param `selector`
  * `lv_obj_set_style_text_letter_space` — param `selector`
  * `lv_obj_set_style_text_line_space` — param `selector`
  * `lv_obj_set_style_text_decor` — param `selector`
  * `lv_obj_set_style_text_align` — param `selector`
  * `lv_obj_set_style_text_outline_stroke_color` — param `selector`
  * `lv_obj_set_style_text_outline_stroke_width` — param `selector`
  * `lv_obj_set_style_text_outline_stroke_opa` — param `selector`
  * `lv_obj_set_style_text_leading_trim` — param `selector`
  * `lv_obj_set_style_blur_radius` — param `selector`
  * `lv_obj_set_style_blur_backdrop` — param `selector`
  * `lv_obj_set_style_blur_quality` — param `selector`
  * `lv_obj_set_style_drop_shadow_radius` — param `selector`
  * `lv_obj_set_style_drop_shadow_offset_x` — param `selector`
  * `lv_obj_set_style_drop_shadow_offset_y` — param `selector`
  * `lv_obj_set_style_drop_shadow_color` — param `selector`
  * `lv_obj_set_style_drop_shadow_opa` — param `selector`
  * `lv_obj_set_style_drop_shadow_quality` — param `selector`
  * `lv_obj_set_style_radius` — param `selector`
  * `lv_obj_set_style_radial_offset` — param `selector`
  * `lv_obj_set_style_clip_corner` — param `selector`
  * `lv_obj_set_style_opa` — param `selector`
  * `lv_obj_set_style_opa_layered` — param `selector`
  * `lv_obj_set_style_color_filter_dsc` — param `selector`
  * `lv_obj_set_style_color_filter_opa` — param `selector`
  * `lv_obj_set_style_recolor` — param `selector`
  * `lv_obj_set_style_recolor_opa` — param `selector`
  * `lv_obj_set_style_anim` — param `selector`
  * `lv_obj_set_style_anim_duration` — param `selector`
  * `lv_obj_set_style_transition` — param `selector`
  * `lv_obj_set_style_blend_mode` — param `selector`
  * `lv_obj_set_style_layout` — param `selector`
  * `lv_obj_set_style_base_dir` — param `selector`
  * `lv_obj_set_style_bitmap_mask_src` — param `selector`
  * `lv_obj_set_style_rotary_sensitivity` — param `selector`
  * `lv_obj_set_style_flex_flow` — param `selector`
  * `lv_obj_set_style_flex_main_place` — param `selector`
  * `lv_obj_set_style_flex_cross_place` — param `selector`
  * `lv_obj_set_style_flex_track_place` — param `selector`
  * `lv_obj_set_style_flex_grow` — param `selector`
  * `lv_obj_set_style_grid_column_dsc_array` — param `selector`
  * `lv_obj_set_style_grid_column_align` — param `selector`
  * `lv_obj_set_style_grid_row_dsc_array` — param `selector`
  * `lv_obj_set_style_grid_row_align` — param `selector`
  * `lv_obj_set_style_grid_cell_column_pos` — param `selector`
  * `lv_obj_set_style_grid_cell_x_align` — param `selector`
  * `lv_obj_set_style_grid_cell_column_span` — param `selector`
  * `lv_obj_set_style_grid_cell_row_pos` — param `selector`
  * `lv_obj_set_style_grid_cell_y_align` — param `selector`
  * `lv_obj_set_style_grid_cell_row_span` — param `selector`
</TypeUsedBy>

Dependencies [#dependencies]

<FileIncludes includes="[&#x22;lv_bidi.h&#x22;, &#x22;lv_style.h&#x22;, &#x22;lv_types.h&#x22;, &#x22;lv_obj_style_gen.h&#x22;]" includedBy="[&#x22;lv_obj.h&#x22;, &#x22;lv_obj_draw.h&#x22;, &#x22;lv_obj_event.h&#x22;, &#x22;lv_obj_property.h&#x22;, &#x22;lv_obj_style_gen.h&#x22;, &#x22;lvgl.h&#x22;]" transitiveIncludes="[&#x22;lv_anim.h&#x22;, &#x22;lv_area.h&#x22;, &#x22;lv_assert.h&#x22;, &#x22;lv_color.h&#x22;, &#x22;lv_color_op.h&#x22;, &#x22;lv_conf_internal.h&#x22;, &#x22;lv_draw_buf.h&#x22;, &#x22;lv_ext_data.h&#x22;, &#x22;lv_flex.h&#x22;, &#x22;lv_font.h&#x22;, &#x22;lv_grad.h&#x22;, &#x22;lv_grid.h&#x22;, &#x22;lv_image_dsc.h&#x22;, &#x22;lv_layout.h&#x22;, &#x22;lv_log.h&#x22;, &#x22;lv_math.h&#x22;, &#x22;lv_mem.h&#x22;, &#x22;lv_palette.h&#x22;, &#x22;lv_sprintf.h&#x22;, &#x22;lv_string.h&#x22;, &#x22;lv_style_gen.h&#x22;, &#x22;lv_symbol_def.h&#x22;, &#x22;lv_text.h&#x22;]" />
